2

VS 2008 Crystal Reports を使用して、グループの変更で計算される式で累計を実行したいと考えています。[現在の合計を追加] をクリックすると、この式が [使用可能なテーブルとフィールド] リストに表示されません。

これはロジックです:

グループのグループ変更時

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

累計で条件を指定できますか? そうでない場合、他にどのようにこれを行うことができますか?

詳細: GroupRunningTotaldb field の値の実行中の合計を実行していますBillableHoursGroupRunningTotalグループの変更時に、そのグループの db フィールドと比較し、グループ レベルでの MaxHours結果を表示します。MaxHours - GroupRunningTotal

今日は適切 - 選挙人団のように考えてください - 選挙に勝つ人は総投票数に依存するのではなく、選挙人団の投票数に依存します。

4

2 に答える 2

3

私はあなたの質問を、ある現在の合計 ( RT_Neg ) のすべての負の値と別の ( RT_Pos ) のすべての正の値を合計したいという意味に解釈しています。これはどう:

  1. RT_Neg実行中の合計を作成します。[集計するフィールド] で、{ Tbl1 }.{Amount} を合計します。[評価] の下に、カスタム数式として「{Tbl1}.{Amount}<0」と入力します。リセットしないでください。

  2. RT_Posの現在の合計を作成します。[集計するフィールド] で、{ Tbl1 }.{Amount} を合計します。[評価] の下に、カスタム数式として「{Tbl1}.{Amount}>0」と入力します。リセットしないでください。

  3. グループフッターに両方の現在の合計を挿入します (ヘッダーに挿入すると、正しく合計されない場合があります)。

または、次のこともできます。

  1. カスタム式「If {Tbl1}.{Amount}<0 then {Tbl1}.{Amount} else 0」を作成し、それに基づいて累計を作成します。

これらの 2 つのオプションのいずれかで、目標を達成できると思います。

于 2010-11-02T13:07:26.207 に答える
1

ほとんどの場合、1 つの RT フィールドを他の RT フィールドの条件として使用することはできません。グループフッターに配置され、評価された「whileprintingrecords()」;式を使用できます。これらの数式では、いくつかの変数に割り当て/合計し、これらの変数をレポートの最後に表示できます。次のように(一般的なアイデアのみ。初期化と表示ルーチンも必要です):

numbervar rtcurrent := sum({somefield}, {groupfield});
numbervar rtplus;
numbervar rtminus;
if (rtcurrent > 0)
then rtplus := rtplus + rtcurrent
else rtminus := rtminus + rtcurrent;
于 2010-11-02T13:28:53.457 に答える