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
我如何实现这一目标?
我不确定是否要使用总计,以防我必须如何操作。
答案 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 ...
的公式,这通常是数据集中第一条记录的良好指标(除非该字段可以是空)。