Jaspersoft Studio 5.6.2を使用していて、2つの日付間の経過日数を示す列のレポートがあります。Jasper Sumに最後の値が含まれていません
日付の範囲が24時間未満の場合は少なくとも1日表示したいので、フィールド値を変換するための変数を作成しました。私はまた、負の値を避けたい:ここ
Name: day_rounded
Class: java.lang.Integer
Calculation: No Calculation
Expression: $F{days}==0?1:$F{days}<0?0:$F{days}
Increment: None
Reset: Report
は、私はそれらを合計するために作成した変数です:
Name: totals
Class: java.lang.Integer
Calculation: Sum
Expression: $V{day_rounded}
Increment: None
Reset: Report
$ F {日}は、クエリからの2つの日付の差です。
...
DATEDIFF(dd,irr.xxxstart_dt, ISNULL(irr.xxxend_dt,$P{end_dt})) AS days
...
私は、$ Vと一緒に$ F {日} {値} day_rounded値でレポートを実行したと、彼らはOKに見えます。
$ V {トータル}をサマリーバンドに入れると(ページヘッダーにもあります)、最後の行の値は値に含まれません。たとえば、私が電卓を使用して列挙したすべての日数を合計すると、1494が得られます。レポートには1485が表示され、最後の行の日のの値は9です。他の日付範囲のレポートを実行しましたが、合計は常に最終行の値と同じになります。
変数が正しく宣言されていることがわかります。なぜ私は合計行の最後の値が不足しているか考えてみましょうか?ここで
レポートはどのように一般的に見えますか?あなたが使っている詳細バンドはありますか? – tobi6
はい、マスターの列タイトルを持つページヘッダーがあり、サブレポートは詳細バンドで単独で実行されます。前述のように、私は総計を要約に入れました - しかし私は実験としてページヘッダーでも試しましたが、同じ値を示しました。私はすべての可能なオプションに評価時間を変更しようとしましたが、最後の行を決して拾わなかった。しかし、私はそれをページに設定できるのだろうかと思っていますが、レポートに設定された評価時間ですべてのページ合計を合計する別の変数を使用しますか?道に沿ってすべての列を拾ったと仮定します。私はそれが傷つけることができなかったと思います。私は月曜日にそれを試みるつもりです。 – djailer
動作しない場合は、質問を編集し、jrxmlのソースコードやスクリーンショットのような詳細を追加してください。 – tobi6