2

使用 VS 2008 Crystal Reports,我想对根据组更改计算的公式进行汇总。当我单击添加运行总计时,此公式不会出现在可用表和字段列表中。

这是逻辑:

On Change Group of group

if CalculatedValue > 0 then
    ReportRunningTotal1 += CalculatedValue  
else
    ReportRunningTotal2 += CalculatedValue  

我可以在运行总计中指定一个条件吗?如果没有,我还能怎么做?

更多信息:我正在GroupRunningTotal对 db field 的值进行运行总计BillableHours。在更改组时,我正在与GroupRunningTotal该组的 db 字段进行比较,并在组级别 MaxHours显示结果。MaxHours - GroupRunningTotal

Appropriate today - Think of it like the electoral college - the person who wins the election does not depend on total number of votes, but of number of votes in the electoral college.

4

2 回答 2

3

我将您的问题解释为您想要将一个运行总计(RT_Neg)中的所有负值和另一个(RT_Pos)中的所有正值相加。这个怎么样:

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

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

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

或者,您可以:

  1. 制作一个自定义公式“如果 {Tbl1}.{Amount}<0 then {Tbl1}.{Amount} else 0”并以此为基础计算总计。

我认为这两个选项之一将使您实现目标。

于 2010-11-02T13:07:26.207 回答
1

您很可能不能将一个 RT 字段用作其他 RT 字段的条件。您可以使用公式,放置在组页脚并评估“whileprintingrecords()”;在这些公式中,您可以分配/求和一些变量并在报告末尾显示这些变量。大约像下一个(仅通用想法,您还需要初始化和显示例程):

numbervar rtcurrent := sum({somefield}, {groupfield});
numbervar rtplus;
numbervar rtminus;
if (rtcurrent > 0)
then rtplus := rtplus + rtcurrent
else rtminus := rtminus + rtcurrent;
于 2010-11-02T13:28:53.457 回答