2010-11-02 78 views
2

使用VS 2008 Crystal Reports,我想对一组计算出的组更改计算出一个公式。当我点击添加运行总计时,此公式不会显示在“可用表和字段”列表中。Crystal Reports中的条件运行总计

这是逻辑:

在更改组组

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

的我可以指定一个运行总的情况?如果不是,我还能怎么做?

更多信息:我正在做一个运行总数为GroupRunningTotal的db字段BillableHours的值。在组更改时,我将GroupRunningTotal与该组MaxHours的db字段进行比较,并在组级别上显示MaxHours - GroupRunningTotal的结果。

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

+0

这并不完全回答你的问题(我不太明白你的),但是是你可以指定一个条件你的跑步总数。在** Edit Running Total Field **菜单中,使用** Evaluate **部分进行游戏。 – PowerUser 2010-11-02 12:52:48

+0

我意识到我错误地问了这个问题。我想对一个根据组更改计算的公式进行总计。当我点击添加运行总计时,此公式不会显示在“可用表和字段”列表中。 – 2010-11-02 13:41:00

+0

“我正在做一个名为GroupRunningTotal的运行总​​计,其值为db字段BillableHours。在组更改时,我将GroupRunningTotal与该组MaxHours的db字段进行比较,并在组级别显示MAxHours - GroupRunningTotal的结果。 “你的意思是你**想要**做到这一点,但不能,或者你**正在做这件事,并想做其他事情?如果是后者,你究竟想要做什么? – 2010-11-03 10:56:43

回答

1

您很可能无法使用一个RT字段作为其他RT字段的条件。您可以使用公式,放在组页脚上并评估'whileprintingrecords()';在这些公式中,您可以将一些变量赋值/汇总到报告末尾并显示这些变量。关于未来像(通用唯一的想法,你需要初始化和显示程序以及):

numbervar rtcurrent := sum({somefield}, {groupfield}); 
numbervar rtplus; 
numbervar rtminus; 
if (rtcurrent > 0) 
then rtplus := rtplus + rtcurrent 
else rtminus := rtminus + rtcurrent; 
3

我解释你的问题意味着你要在一个运行总数(RT_Neg)和所有其他的正值(RT_Pos)加起来所有的负值。这个怎么样:

  1. 充分利用RT_Neg运行总和。在字段中汇总,计算您的{Tbl1}。{金额}。在评估下,输入“{Tbl1}。{Amount} < 0”作为您的自定义公式。永不重置。

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

  3. 插入在组页脚都运行总计(如果你把他们的头,它可能无法正常总和)

或者,您可以:

  1. 创建自定义公式“如果{Tbl1}。{Amount} < 0 then {Tbl1}。{Amount} else 0”并基于此计算总跑步总数。

我认为这2个选项中的一个可以帮助您达到目标。

相关问题