2013-03-28 32 views
0

新對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

在這種情況下,運行總計字段不起作用,它們被設計爲將一個字段相加(或計數,或平均等)並自動給出小計。但是,我們可以做一些自定義功能,以提供您需要的結果。假設你的第一個50是一個靜態值,你可以設置一個變量爲這個值,然後在你輸入時加上IN和OUT值(打印那個結果)。

首先,像式初始化在報告報頭中的值:

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

然後,計算並顯示新的平衡,在酒吧式,其中的數據是:

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

最後一行既計算新值,又說明公式的結果應該是什麼。

如果以某種方式計算「50」,那麼必須在計算新餘額的公式之前完成。如果它基於讀入的第一條記錄,則需要使用包含If PreviousIsNull({tableName.Balance}) Then ...的公式,這通常是數據集中第一條記錄的良好指示器(除非該字段可以爲空)。