レポートを作成する際には明細行の合計値を計算し表示するという要件は、よくあります。そこで、ここではJasperReports(ジャスパーレポート)で明細行の合計値を計算し、表示する方法について調査及び研究し、その成果をまとめています。
まずは単純に明細行の合計値を計算し、表示する方法です。受注伝票の”行合計(LineNetAmt)”を合計する"総合計(Total)"を例に説明します。
変数(Variable)の追加とプロパティ設定
![Outlineビュー](https://image.jimcdn.com/app/cms/image/transf/dimension=335x1024:format=png/path/sfe3be30db12270da/image/i5b096aeec1002258/version/1459174443/outline%E3%83%93%E3%83%A5%E3%83%BC.png)
OutlineビューのVariablesの所で右クリクし、表示されるメニューの中から"Create Variable"を選択します。
![Prepertiesビュー](https://image.jimcdn.com/app/cms/image/transf/dimension=335x1024:format=png/path/sfe3be30db12270da/image/i0c1a17c9000f7d93/version/1459174804/preperties%E3%83%93%E3%83%A5%E3%83%BC.png)
追加した変数のプロパティを編集します。Nameの項目を"total"とし、クラスにBigDecimalを選択します。
そして、Calculationは"Sum"を選択し、Expression欄に合計するフィールドを選択します。
変数(Variable)をレポートへ配置する
変数をドラッグ&ドロップして、レポート内に配置します。ここでは例としてSummaryバンドに配置しています。
以上で設定は終了です。プレビューして確認して下さい。
先の例では、単純に明細行の合計値を計算し、表示する方法を説明しましたが、実際には、伝票毎に明細行の合計を計算し表示する必要があります。ここでは、次のステップとして、伝票番号毎に明細行の合計値を計算し表示する方法を説明します。伝票番号でグループ化して、グループ毎に合計値を計算する方法です。
![Outlineビュー](https://image.jimcdn.com/app/cms/image/transf/dimension=335x1024:format=png/path/sfe3be30db12270da/image/ib034628aa87dd28b/version/1459177719/outline%E3%83%93%E3%83%A5%E3%83%BC.png)
アウトラインビューのレポートを右クリックし、Create Groupを選択します。
グループバンドの名称を入力し、伝票番号でグループ化したいので、DocumentNoを選択します。
グループバンドのフッターだけを今回は使用したいので、フッターのチェックボックスをONにします。
![](https://image.jimcdn.com/app/cms/image/transf/dimension=670x10000:format=png/path/sfe3be30db12270da/image/ie57193e11fa3a7f7/version/1459177866/image.png)
グループバンドが追加されるので、そこに先に追加している変数を配置します。
![変数のプロパティの修正](https://image.jimcdn.com/app/cms/image/transf/dimension=335x1024:format=png/path/sfe3be30db12270da/image/i983adf319595943c/version/1459178424/%E5%A4%89%E6%95%B0%E3%81%AE%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AE%E4%BF%AE%E6%AD%A3.png)
明細行を合計している変数の、Reset TypeをDocumentNoのグループに設定し直します。
これで、DocumentNoが変更になるたびに、合計値がリセットされ、結果的に伝票番号ごとに合計値を計算する事ができます。
先の例では、1枚の用紙の中に、複数の伝票の情報が含まれています。そこで最後に補足として伝票番号が変更になった場合に、改ページする方法を説明します。
方法1:グループバンドのプロパティを設定する方法
![](https://image.jimcdn.com/app/cms/image/transf/dimension=335x1024:format=png/path/sfe3be30db12270da/image/i36e3bdb3a35d274d/version/1459196006/image.png)
1つ目の方法は、グループバンドのプロパティで、Start New PageのフラグをONにする事で、これで伝票番号が変更になると改ページしてくれます。
方法2:Breakのエレメントを使用する方法
Breakエレメントを使用する事でも、伝票番号毎に改ページさせる事ができます。