Crystal Reports公式评估 - 每个部分一次?

时间:2010-09-21 19:45:45

标签: crystal-reports

我写了一个公式如下

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

对于整个报表头部分,似乎正在评估公式一次,并且正在打印单个结果,每个公式都被放置。有没有办法在报表出现时强制评估公式,而不是依赖某些缓存值?

当然,也欢迎其他实施建议。

提前致谢,

三叶草

2 个答案:

答案 0 :(得分:1)

选项:

  1. 您可以使用“运行总计公式”获得创意。

  2. 如果你没有压制群体,你也可以尝试GroupNumber+3作为你的公式,但是当你考虑排序,抑制等时,这会让你感到困惑。

  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}