我写了一个公式如下
whileprintingrecords;
shared numbervar level1;
level1:=level1+1;
ToText(level1,0);
并将其放入报告中:
Report Header a | {formula} {Text:Introduction}
Report Header b | {formula} {Text: Scope}
Report Header c | {formula} {Text: Overview}
Group Header a | {formula} {Group Header text}
打印结果是
1 Introduction
1 Scope
1 Overview
2 Group Header text
我希望看到
1 Introduction
2 Scope
3 Overview
4 Group Header text
对于整个报表头部分,似乎正在评估公式一次,并且正在打印单个结果,每个公式都被放置。有没有办法在报表出现时强制评估公式,而不是依赖某些缓存值?
当然,也欢迎其他实施建议。
提前致谢,
三叶草
答案 0 :(得分:1)
选项:
您可以使用“运行总计公式”获得创意。
如果你没有压制群体,你也可以尝试GroupNumber+3
作为你的公式,但是当你考虑排序,抑制等时,这会让你感到困惑。
如果只有3个Report Header子部分,那么我建议只在那里进行硬编码。在代码中再添加1行:
whileprintingrecords;
shared numbervar level1;
if level1=0 then level1:=3;
level1:=level1+1;
totext(level1,0);
我推荐这个。
答案 1 :(得分:0)
由于报告标题部分仅在每个报告中发生一次,因此不要在标题部分中包含公式 - 而是将硬编码(即包含为文本)的数字1,2和3用于三个报告标题子-sections。仅在组头中包含公式,修改如下:
whileprintingrecords;
shared numbervar level1;
level1:=level1+1;
ToText(level1+3,0);
像这样:
Report Header a | 1 {Text:Introduction}
Report Header b | 2 {Text: Scope}
Report Header c | 3 {Text: Overview}
Group Header a | {formula} {Group Header text}