为每个组选择组标题部分增加一个数字

时间:2012-05-08 18:17:16

标签: crystal-reports

我有一个独特的问题,我不确定是否可能。

我有一个报告,每组有几个Group Headers。我想要做的是选择组标题(GH1a,GH1p,GH1w ...)有一个自动递增的数字,然后我将使用罗马(@function)变成罗马数字。编号将独立于实际组的数量,仅与组标题无关。可能有一到100,000个记录(组)返回到报告,但对于每个记录(组),每个组中的组标题将具有编号相同的选择组标题

EX:

GROUP A

GH1a:  I
GH1b:  
GH1c:  II
GH1d:  III
GH1e:
GH1f:
GH1g:  IV

GROUP B

GH1a:  I
GH1b:  
GH1c:  II
GH1d:  III
GH1e:
GH1f:
GH1g:  IV

等...

任何帮助将不胜感激。我试图在报告标题和我希望使用以下代码增加的每个GH中使用全局变量x:

在reportheader和/或GH1a // @ iCountreset

    Global NumberVar iCount:=1;

在每个GH中我想要增加// @ iCounted

    Global Numbervar iCount;
    iCount:= iCount+1;

然后第二个将它罗马化// @ RomanCount

    roman(@iCounted);

我目前对它们进行了硬编码但是我试图将几个rpt文件合并到一个文件中,唯一不同的是某些GH部分会被抑制,因此不计入编号。

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

//{@reset}
WhilePrintingRecords;
Global Numbervar G1:=1;

//{@increment}
WhilePrintingRecords;
Global Numbervar G1:=G1+1;

//{@roman}
Roman({@increment})

**编辑**

瑞安的评论是正确的。我的新方法使用子报表来递增共享变量,这是有效的。

步骤:

添加{@reset} GH1a' main'报告;抑制

//{@reset}
WhilePrintingRecords;
Shared Numbervar G1:=0;

创建子报告;把它放在GH1b;将这些公式添加到其中:

添加到详细信息部分;抑制:

//{@increment}
WhilePrintingRecords;
Shared Numbervar G1:=G1+1;

添加到详细信息部分:

//{@roman}
Roman({@increment})

您需要将此子报表添加到需要进行罗马数字计算的每个部分。要使此过程不那么痛苦,请导出子报表('将子报表另存为'),然后重新插入。