计算前一个字段

时间:2013-03-28 08:01:04

标签: crystal-reports

CR新手并使用CR v10和SQL Server 2000。

对于第一个记录,即开始余额,计算是输入日期的总和(字段),我在SP中计算为BegDateSum

但是对于组下的其他记录,计算应该是先前的(余额)+ IN + OUT

已提供样本:

Date      Doc Descrip IN   OUT  Balance
Group Header--------    Beginning Balance-------------- 50    <---- sum(field) from my inputdate
3/2/2012  A           -1    0    49 <-- (50+(-1)+0)
4/2/2012  B           -2    0    47 <-- (49+(-2)+0)
5/2/2012  C            0    3    50
6/2/2012  D           -2    3    51

我如何实现这一目标?

我不确定是否要使用总计,以防我必须如何操作。

1 个答案:

答案 0 :(得分:0)

在这种情况下,运行总计字段不起作用,它们旨在将一个字段加起来(或计数或平均等)并自动为您提供小计。但是,我们可以做一些自定义函数来提供您需要的结果。假设您的初始值50是静态值,您可以将变量设置为该值,然后在进行时添加IN和OUT值(打印该结果)。

首先,使用如下公式初始化报告标题中的值:

WhilePrintingRecords;
Global NumberVar Balance;
Balance := 50;
""; //print nothing on the screen

然后,计算并显示新余额的公式,在数据所在的栏中:

WhilePrintingRecords;
Global NumberVar Balance;
Balance := Balance + {tableName.IN} + {tableName.OUT};

最后一行都计算新值,并告诉公式的结果应该是什么。

如果&#34; 50&#34;以某种方式计算,然后必须在计算新余额的公式之前完成。如果它基于读入的第一条记录,您将要使用包含If PreviousIsNull({tableName.Balance}) Then ...的公式,这通常是数据集中第一条记录的良好指标(除非该字段可以是空)。