2016年2月22日月曜日

iReportで固定行数明細を作成する

iReportで、明細帳票を作成したい場合、シンプルにやろうとした場合にはDetailの各オブジェクトに罫線を引いて作成することが多いかと思いますが、ページの下段まで計算を引きたい場合などにはこの方法は利用できません。

Backgroundオブジェクトを利用すると、固定行数の表を持つ帳票を作ることが可能です。


【Backgroundオブジェクトの利用方法】

・Report Inspectorから、「BackGround」を選択して、「Maximize Background」をクリック
 自動でBackground用のレイアウト領域が表示されます。

その後、必要に応じてオブジェクトを配置します。

これだけで、実際のデータと関係なく、Backgroundに配置した情報が表示されるようになります。




【罫線の引き方】


もしかしたらもっと良い方法があるかもしれません。が、現状やった方法

1) 必要行数分の、横罫線をコピーペーストなどで作成する。
2) 一番上と、一番下に罫線を正規の位置(Topプロパティできっちり調整)に配置し、あとは適当においておく。
3) 全部の罫線を選択し、メニューバーの「Format」->「Vertical Spacing」->「Equal Vert Space」を選択すると、均等に配置される。



ページごとに【Background】を変える。


あまりたくさんあると大変かもしれませんが、以下のような設定で可能です。

1) 両方のオブジェクトを貼っておく。
2) Print When Expressinonに評価式を設定
  例) ($V{PAGE_NUMBER}.toString()).equals("1") ? Boolean.FALSE : Boolean.TRUE
  ⇒TRUEまたはFALSEを返す条件式が必要です。
  この式を設定した場合、2ページ目以降にしか出ないオブジェクトとなります。



【その他】

・ページ計を出したい場合
 Variablesを作成。
 例) 数量計
   Variable名:SURYO_TOTAL
   Variable Expression:$F{SURYO}.equals(null)?0:new Double($F{SURYO})
Calculation:Sum
Reset Type:Page
あとは未指定

Page Footerに、テキストを配置し、Text Field Expressionに、上記名前を割当
Text Field Expression:$V{SURYO_TOTAL}

0 件のコメント: