首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Crystal Reports中水平显示列的内容?

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

Stack Overflow用户
提问于 2020-10-20 14:50:33
回答 1查看 42关注 0票数 0

我是水晶报表的新手。我正在为服装店应用程序创建账单报告。

我有像这样的数据

代码语言:javascript
复制
prodID prodName qty rate amount salesmanID
101      saree    1   500   500   5
108      Legging  1   500   500   7

我想将报告显示为,

代码语言:javascript
复制
prodID prodName qty rate amount
101      saree    1   500   500
108      Legging  1   500   500
sid : 5   7

我该如何实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-10-20 17:42:36

简而言之:使用共享变量在报表的详细信息部分收集salespersonIds,并在其末尾打印共享变量的内容。

详细说明:

将一个公式字段添加到报表中,并将其拖到详细信息部分。公式应如下所示(替换字段名{Befehl.salesmanID}):

代码语言:javascript
复制
// @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

代码语言:javascript
复制
// @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个条目的限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64439876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档