0

CR は初めてで、CR v10 と SQL Server 2000 を使用しています。

最初のレコード、つまり Beginning Balance の場合、計算は SP で BegDateSum として計算した入力日付からの sum(field) です。

ただし、グループの下の残りのレコードについては、計算は前の(残高)+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

どうすればこれを達成できますか?

実行方法が必要な場合に備えて、実行中の合計を使用するかどうかはわかりません。

4

1 に答える 1

0

この場合、現在の合計フィールドは機能しません。これらは、1 つのフィールドを合計 (またはカウント、平均など) し、小計を自動的に表示するように設計されています。ただし、必要な結果が得られるカスタム関数をいくつか実行できます。最初の 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 ...これは通常、データ セットの最初のレコードの適切な指標です (そのフィールドが null になる可能性がある場合を除きます)。

于 2013-03-28T22:03:46.900 に答える