「オープンソース」を使ってみよう (第31回 iReport Designerで帳票作成)

No Comments
このエントリーをはてなブックマークに追加

はじめに
iReport Designerはオープンソースの帳票設計ツールです。
帳票は身近なところで行くと請求書や領収書というのも帳票の一種です。
多くは紙で出力されます。

Jasperreports LibraryというJavaのライブラリを使用しておりますので、
Javaのプログラムに組み込むのに便利かと思います。
また、JasperReports Serverで表示するグラフや表の編集にも使われます。
まずは、簡単に設計して出力するところまで行きましょう。

用意するもの

=環境=
● Java Runtime
● iReport Designer
● Excel か LibreOffice Calc
 ○ データソースの編集に使用

=ファイル=
yodobash i nohinsho . xls
header logo . jpg
footer logo . jpg
JJSUG のサイトからダウンロードして下さい。

作成する帳票
丁度、ヨドバシカメラの納品書がありました。
↓これを作成することにしましょう。

差し込むデータを用意
PostgreSQLやMySQLのデータの差し込みもできるのですが、
お手軽で作成が容易なExcelデータにします。

ヨドバシカメラの納品書を眺めて印字する項目を拾っていきます。
差し込むデータとして必要になるデータは以下の項目になります。

● ご注文番号
● 受注日
● 受注時刻
● お届け先名
● 郵便番号
● 住所1(町名まで)
● 住所2(番地)
● 住所3(マンション名と部屋番号)
● ご依頼人様名
● 商品cd
● 商品名
● 数量

ここにサンプルデータを用意しておきました。

用紙設定
まずは用紙設定を行います。
今回はA4縦の帳票です。

1. [File] > [New]を押す

2. [New file]ウインドウで[Blank A4]を選択し、[Open this Template]を押す

3. [Name and location]ウインドウで

4. [Report name]を「yodobashi_nohinsho」
5. [Location] を[Browse]をクリックして、ご自分のお好きな場所に設定します。
→ a. ここでは、デスクトップにしてあります。
6. [次へ]を押す
7. [Finish]ウインドウで
8. [完了]を押します。

背景画像の設定
印字合わせしたい帳票のJPGイメージを背景に設定すれば
印字位置の調整が非常にやりやすくなります。

1. [表示] > [Report Designer] > [Import Background Image…]

2. [Select an image file]ウインドウで
■ 背景にしたい画像を選択します。
■ ここでは、yodobashi_nohinshoのJPGイメージです。

3. [表示] > [Report Designer] > [Transform Background Image]にチェックを入れます。

4. 表示されているイメージの上で右クリックし、[Fit page width]を選択します。

■ 設定した用紙サイズぴったりになりました。
■ 位置がずれないように固定しておきましょう。

5. [表示] > [Report Designer] > [Transform Background Image]のチェックを外します。

不要なBandの削除
今回使用するBandは
■ Page Header
■ Detail1
■ Page Footer
だけです。
これら以外は全て削除しておきます。

[Report Inspector]で

■ Title
■ Column Header
■ Column Footer
■ Summary
■ Background
を選択して、右クリック
[Delete Band]を押します。

Band位置の調整
Page HeaderとDetail、Page Footerの位置を調整します。

Page Headerの位置
実際の納品書を眺めて下さい。
大抵の帳票はHeader(ヘッダー)、Footer(フッター)、Details(詳細)に分かれています。
どこがどのBandに該当するか整理しましょう。

Header
HeaderはHead(頭)
用紙の最初の部分に必ず1回現れる部分です。
ご依頼人様までの項目までがこのBandに入ります。

● ご注文番号
● 受注日
● 受注時刻
● お届け先名
● 郵便番号
● 住所1(町名まで)
● 住所2(番地)
● 住所3(マンション名と部屋番号)
● ご依頼人様名
● yodobashi.comのlogo

Footer
FooterはFoot(足)
用紙の最後の部分に必ず1回現れます。
下部にある
● 会社名
● ロゴ
● 住所
が入ります。

Details
Detailsは詳細
Detailsの部分は用紙の高さが続く限り繰り返します。
この項目は繰り返されてる項目を探せばいいのです。
納品明細から先が繰り返されていますね。
なので、
● 商品cd
● 商品名
● 数量
がDetails Bandに入ります。

下記のように調整します。

データ登録
データの登録を行います。

1. データソースをクリック

2. [Connections/Data sources] ウインドウで[New]を押す

3. [Data source] ウインドウで[Microsoft Excel(xls) data source]を選んで[Next]

4. [Microsoft Excel (xls) data source]ウインドウで
a. [Name]に「納品書」と入力

b. [Browse]ボタンを押します。
c. データソースになるExcelファイルを選択します。

d. ここでは、yodobashi_nohinsho.xlsを選択します。

5. [Microsoft Excel (xls) data source]ウインドウに戻ってきます。

a. [Get colums name form the first row of the file] ボタンを押します。
b. Column Name が表示されていることを確認し、[Save]ボタンを押します。

6. [Connections/Data sources] ウインドウで
「納品書」がDefaultにチェックが入っているのを確認します。
a. [Close]を押します。
データソースは登録できましたが、Fieldに何も出てきていません。

Fieldを取得するために以下の操作を行います。
1. Report Queriesボタンをクリック

2. Report Queries ウインドウで[Excel Data source]タブを選択し、

3. [Get fields from data source] を押します。

4. Field nameが取得されていることを確認して[OK]を押します。

やっとFieldsに商品コードや商品名、数量がでてきました。
Excelデータソースの場合Fieldは全てString型で取得してしまいます。
数量は元々数値型でないといけませんね。
数量のFieldsをInteger型にします。

1. Report Inspectorで数量を選択
2. プロパティを選択し、[Fields Class]を[ java.lang.Integer ]に変更します。

以上でデータソースの登録は終わります。

Fieldsやテキストを並べる
必要なElementsを配置していきます。

Page Header部分の作成
Page Header Bandを広げます
Page Header Bandに以下のFieldsをドラッグします。
● ご注文番号
● 受注日
● 受注時刻
● お届け先名
● 郵便番号
● 住所1(町名まで)
● 住所2(番地)
● 住所3(マンション名と部屋番号)
● ご依頼人様名

一つ一つドラッグしていきます。
右下のようなポップアップが出てきますが、
[The field value] のまま[OK]を押します。
きれいに配置しましょう。
パレットからStatic Textをドラッグします。
ダブルクリックして書き換えます。
「納品書」と入力して配置します。
他の必要な項目も追加していきます。

パレットからLineをドラッグして線を引きます。
4本引きます。
所定の場所に並べます。
Static Textで納品明細を作ります。
横幅一杯に伸ばします。
[右クリック] > [Padding and Borders]を選択します。
上下だけに線を引きます。
[OK]を押します。

右上にyodobashi.comのLogoを入れます。
パレットからイメージをドラッグし、
header_log.jpgを選びます。
大きさを調整します。

Detail部分の作成
下図のように配置が完了したでしょうか?
次は、Detail部分を作成します。
Detail Bandに以下のFieldsをまとめてドラッグします。
■ 商品cd
■ 商品名
■ 数量
きれいに並べましょう。

Footer部分
footer_logo.jpgを追加します。
住所や電話番号が書かれた部分をStatic Textで追加します。

表示
Previewで表示してみましょう。
サンプルとそっくりな納品書が出来上がっていると思います。

最後に
JJSUGのサイトにはより詳しい使い方を説明しております。
興味のある方は見て頂けると幸いです。

JJSUGはJaspersoftのJasperReports Serverに代表されるツールのノウハウを蓄積、
共有することでよりJaspersoftの製品群を使いこなすことを目的としております。

関西でも私たちが中心となってJapan JasperServer Users Groupの勉強会を
開催しております。ご関心を持って頂けたらぜひ下記サイトにアクセス下さい。

日本 JasperServer ユーザ会 Web サイト
Google Group ( ML )

Comments are closed.