Crystal reports 在crystal报表的一列中串联不同的值

Crystal reports 在crystal报表的一列中串联不同的值,crystal-reports,concatenation,Crystal Reports,Concatenation,我在细节部分有一个记录集 例如: Column1----Column2 value_1----5678976 value_2----7263535 value_1----1938773 value_2----3333445 value_3----2848465 因此,在报告标题处,我需要指定Column1中所有不同的值,以逗号分隔。根据上述示例,正确的字符串为: value_1,value_2,value_3 我试着用公式 WhilePrintingRecords; shared strin

我在细节部分有一个记录集

例如:

Column1----Column2
value_1----5678976
value_2----7263535
value_1----1938773
value_2----3333445
value_3----2848465
因此,在报告标题处,我需要指定Column1中所有不同的值,以逗号分隔。根据上述示例,正确的字符串为:

value_1,value_2,value_3
我试着用公式

WhilePrintingRecords;
shared stringvar final_result;
shared stringvar current_value;

if len(final_result) = 0 then final_result = "";

current_value:= {Column1};
final_result := final_result+ "," + current_value;
这是行不通的

试过不同的

WhilePrintingRecords;
stringVar final_result := "";
final_result = final_result + (
if InStr(final_result, {Column1}) > 0 then ""
else final_result := "," + {Column1};
);
也没有结果。 我哪里出错了


谢谢

为了使公式显示任何内容,您需要在声明值后调用这些值。 所以你的公式应该更像这样:

WhilePrintingRecords; 
shared stringvar final_result; 
shared stringvar current_value := {Column1};
if len(final_result) < 1 then final_result := {Column2}; 
final_result + ", " + current_value
公式2(放置在报告标题中):


希望现在能奏效-Chris

为了使公式显示任何内容,您需要在声明值后调用这些值。 所以你的公式应该更像这样:

WhilePrintingRecords; 
shared stringvar final_result; 
shared stringvar current_value := {Column1};
if len(final_result) < 1 then final_result := {Column2}; 
final_result + ", " + current_value
公式2(放置在报告标题中):


希望现在能奏效-克里斯

只是克里斯第二个公式中的一个小语法错误。分号应在FOR循环的右括号后下移一行,因此最后三行为:

fin := fin + a[j] + ", "
);
fin

只是Chris第二个公式中的一个小语法错误。分号应在FOR循环的右括号后下移一行,因此最后三行为:

fin := fin + a[j] + ", "
);
fin

当我继承这份报告时,我让它工作起来。但偶尔我会删除报告的原始版本。因此,我非常确信,在报表标题级别使用公式,而不使用子报表,可以解决这个问题。谢谢你给我一个提示,在申报后再计算价值。克里斯,无论何时你在莫斯科,啤酒都由我负责!谢谢。当我继承这份报告时,我让它工作了。但偶尔我会删除报告的原始版本。因此,我非常确信,在报表标题级别使用公式,而不使用子报表,可以解决这个问题。谢谢你给我一个提示,在申报后再计算价值。克里斯,无论何时你在莫斯科,啤酒都由我负责!非常感谢。