使用VS 2008 Crystal Reports,我想对基于组更改计算的公式执行总计运行总计。当我单击添加运行总计时,此公式不会出现在“可用表和字段”列表中。
这是逻辑:
On Change Group of group
if CalculatedValue > 0 then
ReportRunningTotal1 += CalculatedValue
else
ReportRunningTotal2 += CalculatedValue
我可以在运行总计中指定条件吗?如果没有,我怎么能这样做?
更多信息:我正在执行一个名为GroupRunningTotal
的运行总计,其值为db field BillableHours
。在更改组时,我将GroupRunningTotal
与该组MaxHours
的db字段进行比较,并在组级别显示MaxHours - GroupRunningTotal
的结果。
今天适当 - 想想它就像选举团一样 - 赢得选举的人不取决于总票数,而是取决于选举团的票数。
答案 0 :(得分:3)
我正在解释您的问题,意味着您希望将所有负值加在一个总计( RT_Neg )中,将所有正值加到另一个中( RT_Pos )。怎么样:
使 RT_Neg 运行总计。在要汇总的字段下,汇总{Tbl1}。{Amount}。在评估下,输入“{Tbl1}。{Amount}< 0”作为您的自定义公式。永远不要重置。
使 RT_Pos 运行总计。在要汇总的字段下,汇总{Tbl1}。{Amount}。在评估下,输入“{Tbl1}。{Amount}> 0”作为您的自定义公式。永远不要重置。
在组页脚中插入两个运行总计(如果将它们放在标题中,则可能无法正确汇总)
或者,您可以:
我认为这两个选项中的一个可以帮助您实现目标。
答案 1 :(得分:1)
您很可能无法使用一个RT字段作为其他RT字段的条件。您可以使用公式,放在组页脚上并评估'whileprintingrecords()';在这些公式中,您可以为一些变量赋值/求和,并在报告的末尾显示这些变量。关于下一个(仅限通用创意,您还需要初始化和显示例程):
numbervar rtcurrent := sum({somefield}, {groupfield});
numbervar rtplus;
numbervar rtminus;
if (rtcurrent > 0)
then rtplus := rtplus + rtcurrent
else rtminus := rtminus + rtcurrent;