我继承了一个水晶报表,用于从数据库中提取统计数据(Crystal Reports 2016)。我已经尝试了一个星期,但无法完成最后的修改,我不明白为什么。话虽这么说,我才进入水晶三周,所以请明目张胆地回复。
领域:
字段 1 和 2 正在运行总计字段,这些字段通过 SQL 从数据库中提取不同的计数。
Field 3 是一个公式字段,如果 Field1 不为 0,则从 Field2 中减去 Field1。
我只是想获得字段 3 的总和。
我发现我不能只插入一个运行总计字段来进行求和,因为似乎只有直接从数据库中提取数字才能做到这一点,所以我发现我必须创建一个手动运行计数,我做了(下面突出显示的字段)
这些都是公式字段,公式是:
whileprintingrecords;
Shared numberVar SumTotalTestPerf:=0;
whileprintingrecords;
Shared numberVar SumTotalTestPerf;
if {@TotalTestsPerformed} <> 0 then SumTotalTestPerf:=SumTotalTestPerf + 1 else 0;
whileprintingrecords;
Shared numberVar SumTotalTestPerf;
SumTotalTestPerf
根据我的理解,每次
{@TotalTestsPerformed}
的计数增加,我的变量也应该增加。但我的结果不对。
我能想到的最后一件事是,
{@TotalTestsPerformed}
是立即填充的,而不是每条记录......如果这有意义的话。
如果有人能告诉我我做错了什么,我将不胜感激。
根据我的理解,每当 {@TotalTestsPerformed} 的计数增加时,我的变量也应该增加。
这并不完全正确。事实上,每次“打印”执行增加操作的公式时,您的变量都会增加。在您的情况下,它位于详细信息部分,因此它将针对结果集中的每个详细信息或行运行。