Crystal Reports中的条件运行总计

时间:2010-11-02 12:47:17

标签: crystal-reports running-total

使用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的结果。

今天适当 - 想想它就像选举团一样 - 赢得选举的人不取决于总票数,而是取决于选举团的票数。

2 个答案:

答案 0 :(得分:3)

我正在解释您的问题,意味着您希望将所有负值加在一个总计( RT_Neg )中,将所有正值加到另一个中( RT_Pos )。怎么样:

  1. 使 RT_Neg 运行总计。在要汇总的字段下,汇总{Tbl1}。{Amount}。在评估下,输入“{Tbl1}。{Amount}< 0”作为您的自定义公式。永远不要重置。

  2. 使 RT_Pos 运行总计。在要汇总的字段下,汇总{Tbl1}。{Amount}。在评估下,输入“{Tbl1}。{Amount}> 0”作为您的自定义公式。永远不要重置。

  3. 在组页脚中插入两个运行总计(如果将它们放在标题中,则可能无法正确汇总)

  4. 或者,您可以:

    1. 制作自定义公式“If {Tbl1}。{Amount}< 0 then {Tbl1}。{Amount} else 0”并根据该值制作一个总计。
    2. 我认为这两个选项中的一个可以帮助您实现目标。

答案 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;