我正在使用Crystal Reports,我有这样的输出:
NumberId ART_No InkColor
------------------------------------------
0010 23003 BLUE
0010 23003 RED
0010 23003 GREEN
0013 23004 ORANGE
0013 23004 PINK
0013 23004 WHITE
0015 23007 GREEN
0015 23007 PINK
有什么方法可以使输出(在Crystal Reports中)像这样甚至不使用SQL脚本:
NumberId ART_No InkColor
------------------------------------------
0010 23003 BLUE, RED, GREEN
0013 23004 ORANGE, PINK, WHITE
0015 23007 GREEN, PINK
由于
答案 0 :(得分:2)
你需要做一些事情来实现这一点。
为NumberId
创建一个组。
取消群组标题。
创建一个FormulaField;我们称之为@ColorReset
。它应包含以下代码:
WhilePrintingRecords; stringVar Colors := "";
将其放在您的群组标题中。每次击中组标题时,这将重置Colors
stringVar。
取消详细信息部分。
创建另一个FormulaField;我们称之为@ColorAppend
。它应该连接像这样的值:
WhilePrintingRecords; stringVar Colors := Colors + ", " + {YourTable.InkColor};
将其放入您的详细信息部分。每次细节部分循环时,这将构建您的颜色字符串。
再创建一个FormulaField来显示颜色,称为@ColorsShow
。它将显示如下颜色:
WhilePrintingRecords; StringVar Colors; RIGHT(Colors, LEN(Colors) - 2); // Strip off the leading comma and space
将其与NumberId
和ART_No
您的最终结果应该是:
---------- Group Header 1 ----------
/////////// @ColorReset ////////////
------------- Details --------------
////////// @ColorAppend ////////////
---------- Group Footer 1 ----------
[NumberId] [ART_No] [@ColorsShow]
看起来有点初衷,但它非常简单。