【发布时间】:2012-04-19 08:59:55
【问题描述】:
我在 Crsystal report9 中运行 Total 时遇到问题 如果它们对于特定字段没有可用的值,我们如何将运行总计返回为“0”
【问题讨论】:
标签: crystal-reports
我在 Crsystal report9 中运行 Total 时遇到问题 如果它们对于特定字段没有可用的值,我们如何将运行总计返回为“0”
【问题讨论】:
标签: crystal-reports
不要直接在报表中显示运行总计,而是基于运行总计创建一个公式字段并将其拖到报表中。
您的公式应如下所示(Crystal 语法)...
if ISNULL({#RunningTotalField}) then
"0.00"
else
ToText(RunningTotalField, 2)
【讨论】:
如果没有该特定组的数据,Crystal 将不会轻易显示。您的选择是:
1) 使用子报表显示特定组的值,并让主报表只查看包含组标题的表。
2) 使用存储过程作为源,这样您就可以完全控制正在运行的 SQL。
问题在于,一旦您使用字段进行分组,Crystal 将仅返回已使用该字段的记录。如果只是在“详细信息”部分中,您可以将链接修改为 LEFT JOIN,这无关紧要,但组会强制执行 INNER JOIN,这意味着不返回没有数据的组。
【讨论】:
很遗憾,如果没有符合您条件的记录,则不会显示运行总计。另一种方法是使用在报告的各个部分计算的一组公式。 Crystal 文献中广泛描述了该技术。例如,this TekTips 非常简洁地概述了您的选项。
您使用评估时间指令“WhilePrintingRecords”在每个标题中设置了一个初始化公式。这种方法是在 RunningTotal 对象可用之前的“好日子”中唯一可用于运行总计的方法。
【讨论】: