Crystal reports 为每个组的“选择组标题”节增加一个数字

Crystal reports 为每个组的“选择组标题”节增加一个数字,crystal-reports,Crystal Reports,我有一个独特的问题,我甚至不确定是否可能 我有一个报告,每个组有几个组标题。我想做的是选择组标题GH1a、GH1p、GH1w。。。有一个自动递增的数字,然后我将使用roman@function. 编号与实际组的数量无关,仅与组标题有关。可能会有一到100000个记录组返回到报告中,但对于每个记录组,每个组中的组标题将具有相同编号的选择组标题 例: A组 GH1a: I GH1b: GH1c: II GH1d: III GH1e: GH1f: GH1g: IV B组 GH1a:

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

我有一个报告,每个组有几个组标题。我想做的是选择组标题GH1a、GH1p、GH1w。。。有一个自动递增的数字,然后我将使用roman@function. 编号与实际组的数量无关,仅与组标题有关。可能会有一到100000个记录组返回到报告中,但对于每个记录组,每个组中的组标题将具有相同编号的选择组标题

例:

A组

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

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

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

在reportheader和/或GH1a/@IConTest中

    Global NumberVar iCount:=1;
在我想要递增的每个GH中//@I计数

    Global Numbervar iCount;
    iCount:= iCount+1;
然后是第二个将其罗马化//@RomanCount

    roman(@iCounted);
我目前有他们硬编码,但正试图将几个rpt文件合并成一个唯一的区别是一些GH部分将被抑制,因此不计入编号

先谢谢你

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

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

//{@roman}
Roman({@increment})
**编辑**

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

步骤:

在“主”报告中添加{@reset}GH1a;压制

//{@reset}
WhilePrintingRecords;
Shared Numbervar G1:=0;
创建子报表;将其置于GH1b中;添加以下公式:

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

//{@increment}
WhilePrintingRecords;
Shared Numbervar G1:=G1+1;
添加到详细信息部分:

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

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

我不确定这是否可行。我不认为CR会对每个GH部分评估相同的公式,如果你将其放在报告中多次。它会一次又一次地打印II。你说得对,Ryan。{@increment}函数有这个致命的缺陷。我知道它是如何工作的,但是有没有办法不使用子报告呢?我真的很讨厌依赖结果集以外的外部变量。不是挑剔我只是确定有更干净的方法?