Crystal Reports /根据重复字段值的更改来连接行

时间:2013-07-02 20:19:59

标签: arrays crystal-reports concatenation crystal-reports-2008 transpose

我一直把头发拉出来。我不擅长编码公式。

我有一个两列数据库,如下所示:

USERID1     1/1/2000
USERID1     2/1/2000
USERID1     3/3/2001
USERID2     1/5/2000
USERID2     2/7/2001
USERID2     3/30/2009
USERID2     3/10/2013
USERID3     2/5/2000
USERID3     3/7/2001
USERID3     5/30/2009
USERID3     9/10/2013

我认为我需要一些东西来逐步浏览与USERID1相关的所有行,并将它们全部写入一行:

USERID1 1/1/2000 2/1/2000 3/3/2001

然后转到下一个USERID值并写下相关日期:

USERID2 1/5/2000 2/7/2001 3/30/2009 3/10/2013

如上所示,每个USERID值的记录总数不同。

结果可以用逗号或单独的字段连接。

我尝试使用Section Expert中的“multiple columns”选项,并尝试了各种连接公式,但无法获得数据类型的正确语法,并且还没有看到如何遍历A列并更改当列a中的值发生变化时的数组输入。

1 个答案:

答案 0 :(得分:3)

USERID上添加一个群组。

将此公式添加到组的标题部分并禁止它:

// {@reset}
WhilePrintingRecords;
StringVar Array reset;
StringVar Array dates:=reset;
True; // return a dummy value

将此公式添加到详细信息部分并禁止它:

// {@serialize}
WhilePrintingRecords;
StringVar Array dates;

Redim Preserve dates[Ubound(dates)+1];
dates[Ubound(dates)]:=ToText({table.date_field,"MM/dd/yyyy");

将此公式添加到组的页脚部分:

//{@display}
WhilePrintingRecords;
StringVar Array dates;
Join(dates, ",");