微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Crystal Reports中水平显示列的内容?

如何解决如何在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 举报,一经查实,本站将立刻删除。