Crystal reports Crystal报告中的垂直记录编号,有两列

Crystal reports Crystal报告中的垂直记录编号,有两列,crystal-reports,Crystal Reports,我有一个2列的报告,我尝试使用多列格式,在布局中,我被选中,然后被选中,因为我想显示每列的记录余额: +----+------------+----+------------+ |No. | Data |No. | Data | +----+------------+----+------------+ |1 | Data1 |2 | Data2 | |3 | Data1 |4 | Data2 | |5 | Da

我有一个2列的报告,我尝试使用多列格式,在布局中,我被选中,然后被选中,因为我想显示每列的记录余额:

+----+------------+----+------------+
|No. | Data       |No. | Data       |
+----+------------+----+------------+
|1   | Data1      |2   | Data2      |
|3   | Data1      |4   | Data2      |
|5   | Data1      |6   | Data2      |
+----+------------+----+------------+

但我想垂直显示连续的记录编号,如下所示:

+----+------------+----+------------+
|No. | Data       |No. | Data       |
+----+------------+----+------------+
|1   | Data1      |4   | Data2      |
|2   | Data1      |5   | Data2      |
|3   | Data1      |6   | Data2      |
+----+------------+----+------------+

我试图创建一个公式,但结果不是我想要的。你能帮我解决我的问题吗?

好的,请遵循以下方法:

  • 获取两个子报告并详细放置:

    first sub report for Data1 //limit the size of sub report to number of columns
    Second sub report for Data2 // place adjacent to sub report 1 and limit size
    
  • 在分报告1中

  • 创建一个公式
    @Reset
    并放入
    报告标题

    Shared NumberVar count;
    count:=0;
    
    再创建一个公式
    @Display
    ,并将详细信息放在问题的
    No
    字段中

    Shared Numbervar count;
    Shared Numbervar store;
    count:=count+1;
    store:=count;
    count;
    
    Shared Numbervar store;
    store:=store+1;
    
    现在,您已经对第1列的数据进行了编号

  • 转到coulmn2测量的第二个子报告
    Data2
    。在你的问题中
  • 再创建一个公式
    @Display
    ,并将详细信息放在问题的
    No
    字段中

    Shared Numbervar count;
    Shared Numbervar store;
    count:=count+1;
    store:=count;
    count;
    
    Shared Numbervar store;
    store:=store+1;
    
    现在您有了编号
    数据2


    如果有任何问题,请告诉我。

    我找到了答案,公式如下:

    NumberVar nMidData := RoundUp(count({Table.data})/2);
    NumberVar nRecord := count({Table.data});
    
    WhilePrintingRecords;
    if ((RecordNumber>=1) and (RecordNumber mod 2)=1) then
    (
        NumberVar RecNoLeft:=RecNoLeft+1;
    )
    else if ((Recordnumber>=2) and (RecordNumber mod 2)=0) then
    (
        NumberVar RecNoRight:=RecNoRight+1;
        nMidData+RecNoRight;
    )
    

    我把这个公式放在了详细栏
    No

    你们把这两栏放在报告的什么地方?@Siva在详细栏谢谢你们的回答,如果我反应晚了,很抱歉。但我自己找到了答案。没有使用两个子报告,因为我在设计子报告时遇到了困难。我用的是公式,没问题。。。你能发布解决方案吗…只是好奇地想知道方法。