さまざまなフィールドを持つiReport(4.0.1)のレポートには、$F{value}
(整数)および$F{created_at}
が含まれています。条件付き合計(可変)
:
$F{value}
の合計$F{created_at}
は、指定した日付$F{value}
の合計の前にあるとき$F{created_at}
は、指定した日付
どのようにこれを行うことができますか?
さまざまなフィールドを持つiReport(4.0.1)のレポートには、$F{value}
(整数)および$F{created_at}
が含まれています。条件付き合計(可変)
:
$F{value}
の合計$F{created_at}
は、指定した日付$F{value}
の合計の前にあるとき$F{created_at}
は、指定した日付どのようにこれを行うことができますか?
これを行うには、2つの異なる変数を使用する必要があります。あなたの変数については、「変数式」の中でこのようなものを使用してください。 Dateクラスには、after()関数もあります。式が真と評価された場合は$ F {value}が追加され、そうでない場合は0が追加されます。
$ F {created_at} .before($ P {givenDate})? $ F {value}:0
変数を合計するには、計算タイプを「合計」に変更する必要があります。デフォルトのリセットタイプのレポートは、レポート全体の値を合計します。他のリセットタイプは、レポートの異なるセクション(列、ページまたはグループ)のまま同じ方法で機能します。
<variable name="sumValueCreatedBefore" class="java.lang.Integer" calculation="Sum"> <variableExpression><![CDATA[F{created_at}.before($P{givenDate}) ? $F{value} : 0]]></variableExpression> </variable>
そのための別の解決策がある:
のような選択なステートメント
内のサブクエリを記述 を選択します(ここで
はケース "前" のためのXMLですtablenameからtabnameを選択します。日付はどこにあるか)aftersum
tablename 条件は
です。計算タイプを「合計」に設定するとそのトリックが実行されます。 – LapinLove404