我是水晶报表的新手。我正在为服装店应用程序创建账单报告。
我有像这样的数据
prodID prodName qty rate amount salesmanID
101 saree 1 500 500 5
108 Legging 1 500 500 7我想将报告显示为,
prodID prodName qty rate amount
101 saree 1 500 500
108 Legging 1 500 500
sid : 5 7我该如何实现这一点?
发布于 2020-10-20 17:42:36
简而言之:使用共享变量在报表的详细信息部分收集salespersonIds,并在其末尾打印共享变量的内容。
详细说明:
将一个公式字段添加到报表中,并将其拖到详细信息部分。公式应如下所示(替换字段名{Befehl.salesmanID}):
// @AddToArrayVar
whileprintingrecords;
numbervar array salespersonArray;
numbervar counter;
// add only new lines
if not({Befehl.salesmanID} in salespersonArray) then
(
counter := counter + 1;
//The line below ensures that the size of the array does
//not exceed 1000 values. An array can contain a maximum
//of 1000 values.
if counter <= 1000
then (
Redim Preserve salespersonArray[counter];
salespersonArray[counter] := {Befehl.salesmanID}
)
);公式字段必须是明细节的一部分,您可以通过字段格式将其隐藏。
然后添加第二个用于打印数组内容的公式字段,并将其放在详细信息页脚后面的部分中,例如report :
// @PrintFromArrayVar
whileprintingrecords;
numbervar array salespersonArray;
numbervar Counter;
stringvar salespersonslist;
numbervar i;
for i := 1 to Counter do
(
if i > 1 then salespersonslist := salespersonslist + ',';
salespersonslist := salespersonslist + ToText(salespersonArray[i],0,'');
);
salespersonslist;附言:我不确定当前版本的Crystal Reports中是否还存在1000个条目的限制。
https://stackoverflow.com/questions/64439876
复制相似问题