我有一个报告子报告,其中包含一个组和选项"在每个页面中重复组标题"检查。但我需要用户能够选择是否在每个页面上显示组标题,或者只是第一次出现组。
我设置了一个复选框让他们选择,但我如何使用它来告诉报告不要在运行时重复标题?
更新
Beeing a Subreport我不知道哪个页面会首次出现,我无法重新开始编号,因为报告是必要的。
我在VS2005中使用CrystalReports并在VS2010中编写C#,我在公司工作但无法升级。
我试图在C#中使用FormulaFieldDefinition,但我不知道如何。
答案 0 :(得分:0)
我不确定您使用的是哪个版本的Crystal Reports,但看起来不能为每个页面上的"重复组标题指定公式"在Crystal 2011的集团专家下。
相反,您可能需要做一些解决方法:
{?GroupHeader}
,其中true表示"在每个页面上显示组头。" if PageNumber > 1 and {?GroupHeader} = true then false else true
。答案 1 :(得分:0)
这可以通过子报告中的变量来完成。
创建一个包含以下内容的公式字段,并将其放在详细信息部分的某个位置:
WhilePrintingRecords;
booleanVar headerPrinted := True;
在group-header的suppresion-formula中放置以下代码:
WhilePrintingRecords;
booleanVar headerPrinted;
只要打印出第一个细节,公式就会将变量设置为True
。
因此,抑制公式仅在第一次打印组标题时评估为False
,并在每个后续时间评估为True
。
因此,使用布尔参数{?GroupHeader}
来选择是否应该打印标题,抑制公式将如下所示:
WhilePrintingRecords;
booleanVar headerPrinted;
If {?GroupHeader} And headerPrinted Then
True
Else
False
{?GroupHeader}
= True
意味着:只显示一次group-header。