Crystal 报告 - 手动运行总计中的数字不正确

问题描述 投票:0回答:1

我继承了一个水晶报表,用于从数据库中提取统计数据(Crystal Reports 2016)。我已经尝试了一个星期,但无法完成最后的修改,我不明白为什么。话虽这么说,我才进入水晶三周,所以请明目张胆地回复。

领域:

  1. 规格已收到
  2. 不满意/拒绝
  3. 执行的测试数量

字段 1 和 2 正在运行总计字段,这些字段通过 SQL 从数据库中提取不同的计数。

Field 3 是一个公式字段,如果 Field1 不为 0,则从 Field2 中减去 Field1。

我只是想获得字段 3 的总和。

我发现我不能只插入一个运行总计字段来进行求和,因为似乎只有直接从数据库中提取数字才能做到这一点,所以我发现我必须创建一个手动运行计数,我做了(下面突出显示的字段)

这些都是公式字段,公式是:

  1. 重置
    • whileprintingrecords;
    • Shared numberVar SumTotalTestPerf:=0;
  2. 计算迭代次数(其中 @totaltestsperformed = 字段 3)
    • whileprintingrecords;
    • Shared numberVar SumTotalTestPerf;
    • if {@TotalTestsPerformed} <> 0 then SumTotalTestPerf:=SumTotalTestPerf + 1 else 0; 
  3. 返回结果
    • whileprintingrecords;
    • Shared numberVar SumTotalTestPerf;
    •  SumTotalTestPerf

根据我的理解,每次

{@TotalTestsPerformed}
的计数增加,我的变量也应该增加。但我的结果不对。

我能想到的最后一件事是,

{@TotalTestsPerformed}
是立即填充的,而不是每条记录......如果这有意义的话。

如果有人能告诉我我做错了什么,我将不胜感激。

crystal-reports
1个回答
0
投票

根据我的理解,每当 {@TotalTestsPerformed} 的计数增加时,我的变量也应该增加。

这并不完全正确。事实上,每次“打印”执行增加操作的公式时,您的变量都会增加。在您的情况下,它位于详细信息部分,因此它将针对结果集中的每个详细信息或行运行。

© www.soinside.com 2019 - 2024. All rights reserved.