2016-09-15 8 views
0

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です。他の日付範囲のレポートを実行しましたが、合計は常に最終行の値と同じになります。

変数が正しく宣言されていることがわかります。なぜ私は合計行の最後の値が不足しているか考えてみましょうか?ここで

+0

レポートはどのように一般的に見えますか?あなたが使っている詳細バンドはありますか? – tobi6

+0

はい、マスターの列タイトルを持つページヘッダーがあり、サブレポートは詳細バンドで単独で実行されます。前述のように、私は総計を要約に入れました - しかし私は実験としてページヘッダーでも試しましたが、同じ値を示しました。私はすべての可能なオプションに評価時間を変更しようとしましたが、最後の行を決して拾わなかった。しかし、私はそれをページに設定できるのだろうかと思っていますが、レポートに設定された評価時間ですべてのページ合計を合計する別の変数を使用しますか?道に沿ってすべての列を拾ったと仮定します。私はそれが傷つけることができなかったと思います。私は月曜日にそれを試みるつもりです。 – djailer

+0

動作しない場合は、質問を編集し、jrxmlのソースコードやスクリーンショットのような詳細を追加してください。 – tobi6

答えて

1

は、私はこれを解決するために使用jrxmlです:

<variable name="page_total" class="java.lang.Integer" resetType="Page" calculation="Sum"> 
    <variableExpression><![CDATA[$V{day_rounded}]]></variableExpression> 
</variable> 
<variable name="paged_summed" class="java.lang.Integer" incrementType="Page" calculation="Sum"> 
    <variableExpression><![CDATA[$V{page_total}]]></variableExpression> 
</variable> 

私はページごとに私の日の値を合計し、その変数のための「ページ」に設定RESETを持っていました。私はそれらを合計し、INCREMENTを「他の変数のページ」に設定しました。

今、私の合計はすべて加算されています。ありがとう@ tobi6 !!

+0

心配しないで、喜んで助けてください。 – tobi6

関連する問題