如何解决如何在Crystal Reports中水平显示列的内容?
我是水晶报告的新手。我正在为服装店应用程序创建账单报告。
我有类似的数据
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
我该如何实现?
解决方法
简而言之:使用共享变量来收集报表详细信息部分中的salespersonId,并在报告末尾打印共享变量的内容。
详细信息:
在您的报告中添加一个公式字段并将其拖到详细信息部分。公式应如下所示(替换字段名称{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}
)
);
公式字段必须是详细信息部分的一部分,您可以通过字段格式将其隐藏。
然后添加第二个公式字段以打印数组内容,并将其放在详细信息之后的部分,例如报告页脚:
// @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],'');
);
salespersonslist;
P.S .:我不确定当前版本的Crystal Reports中是否仍然存在1000项限制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。