JasperReports(ジャスパーレポート)はオープンソースの帳票を作成するためのソフトウェア、元になるテンプレートにcsvなどのデータを流し込んで帳票を作成できる物です
このページではJasperReportsの利用方法について解説します
JasperReportsを利用するには、まず帳票のテンプレートを作成するためのJaspersoft Studioをインストールします
単体版とEclipseのプラグイン版の2通りがありますが、今回は単体版のインストールをしていきます
Jaspersoft Studioのダウンロードページにアクセス
基本的に最新版のJasperReport Stadio(画像では6.13.0)をインストールしてください
Windows環境であればTIB_js-studiocomm_X.XX.X_windows_x86_64.exeのリンクをクリックします
Jaspersoft StudioをインストールするにはJaspersoftのコミュニティにアカウント登録が必要なため、Register with Emailのところから必要事項を入力、アカウントを作成してください
作成したアカウントでログイン後、再度リンクをクリックすればダウンロードが始まります
Jaspersoft Studioには、デフォルトでは日本語を利用できるフォントが入っていません
帳票で日本語を利用する場合は、日本語の入っているフォントを導入しましょう。今回はIPAが提供しているフォントを利用します
IPAフォントダウンロードサイトにアクセス
ページ下部のリンクをクリックすることでダウンロードが可能です。
今回は2書体パックをダウンロードしますので、IPAexfont00301.zipのリンクをクリックします。
ダウンロードが完了したら、zipファイルを適当な場所に解凍しておきます。
Jaspersoft Studioにフォント追加をしていきます。ダウンロードしたJaspersoft Studioを起動したら、Window -> Preferencesを開きます
Preferencesのポップアップウインドウで、Jaspersoft StudioのFontsメニューを開きAddボタンをクリックします。
追加フォントの設定ウィンドウに下記を参考に値を入力していきます。入力が完了したら [Finish] ボタンをクリックします。
ttfファイルは「ipaexg.ttf」がIPAexゴシック、「ipaexm.ttf」がIPAex明朝のファイルになりますので間違えないようにしてください
Family Name | 追加フォントの名称、任意で分かりやすい名前を入力 |
---|---|
TrueType(.ttf) | 「Browse…」ボタンからダウンロードしたttfファイルを選択 |
PDF Encoding | [Identity-H (Unicode with horizontal writing)] を指定 |
Embed this font in PDF Document | チェックボックスにチェックを入れる |
フォント追加が完了したら、[Apply] ボタンをクリックして反映させます。その後 [OK] ボタンをクリックしてウィンドウを閉じます。
新規帳票テンプレートのプロジェクトを作成します
File -> New -> Jasper Reportをクリックします。
帳票のテンプレートを選択します、今回はBlank A4を選択し白紙から帳票を作成していきます。選択したら「Next>」ボタンで次のページへ進みます
File Nameに対象テンプレートのファイル名を任意の名前で入力します。入力が終わったら「Finish」をクリックすれば対象ファイルのプロジェクトが作成されます
作成完了するとこのような画面が表示されます。中央が帳票のデザインを行う領域です。
JasperReportでは帳票の中がBandという領域で分けられた構造になっています。各Bandの大まかな内容は以下のようになります。
不要なBand領域は削除も可能です。今回はTitle、Column Header、Detailしか利用しませんので、それ以外は領域を右クリックしてDeleteで削除しておきましょう
Titel | タイトル部分、帳票の先頭に表示されます |
---|---|
Header、Footer | ヘッダとフッタ部分、Page HeaderとPage Footerは各ページごとに、Column HeaderとColumn Footerは帳票の前後に一回のみ表示されます。 |
Detail | 帳票のデータ繰り返し部分はここに表示されます |
実際に帳票を作成していきます。今回は例として商品のリストを出す帳票を作成してみましょう
帳票のタイトルなど、固定の値で出力する文字列はText Fieldを利用します。右上のBasic Elements領域から、Text Fieldの項目をドラック&ドロップで中央の帳票領域まで持っていくとテキストフィールドが作成されます
テキストフィールドクリックしてから、右下のPropertiesのText Fieldを開きます。
Experssionに入力した内容が表示される内容になります。
Fontの下部分が利用するフォントです、右の下矢印をクリックするとプルダウンからフォントの切り替えができます。日本語を利用する場合は登録したIPAのフォントに切り替えて下さい。
日付など、変化する値を出力する場合にはParametersを利用します。左下のOutlineからParametersを右クリック、Create Parametersをクリックし新規作成します。
作成したプロパティをクリックしてから右下のPropertiesのObjectを開きます。
Nameがパラメーターの名称になります、任意の名称を入力します
Class項目でパラメーターの型を指定できます
設定が完了したら、Text Fieldと同様に対象プロパティをドラッグアンドドロップで表示させることができます。
また、帳票上の項目は自由に移動や領域のサイズ変更ができますので、見栄えを整えてください
帳票の繰り返し項目にはFieldsを利用します。例として以下のCSVを出力するFieldsを作成してみます(先頭行がヘッダ)
code,itenname,price
001,りんご,100
002,みかん,50
003,キャベツ,200
OutlineからFieldsを右クリック、Create Fieldを選択
新規フィールドが作成されたら、パラメータと同様に名称や型を変更する。変更が完了したら、ドラッグアンドドロップでDetailのBandに配置する
Detailにフィールドの表示領域、Column Headerに列見出し用のテキストフィールドが追加される。見出しの文字の修正や見栄えの整形などを行ってください
フィールド1件が1列対応になるため、必要な列の分同じ内容を繰り返してフィールド追加を行います
帳票作成が完了したら、実際の表示をプレビューして確認することができます。プレビューを行うにはデータセットを作成し、csvからどのようにデータを受け取る、といった内容を指定する必要があるため、まずはデータセットを作成します
左上ウィンドウを「Repository Explorer」タブに切り替え、「Data Adapters」を右クリックしてCreate Data Adapterを選択
利用するデータの種類の選択になります、今回は「CSV File」を選択して次へ
データアダプターの設定画面が開きますので、各項目を以下のように設定します。設定が完了したら「Finish」をクリックでデータアダプターが作成されます
Name | データアダプターの名前を入力 |
---|---|
File/URL | 右の「File」ボタンから利用するcsvファイルを選択 |
File/URL | 右の「File」ボタンから利用するcsvファイルを選択 |
Skip the First line | 項目にチェックを入れることで、1行目はヘッダ行としてデータ読み込みをしなくなります |
データセット作成が完了したらプレビューをします。中央ウィンドウの左下にある「Preview」タブをクリック
プレビュー画面に移動したら、Input Parameters欄に各パラメーターに入れる値を入力します。その後ウィンドウ左上をクリックし、プルダウンから作成したデータソースを選択します
帳票とデータソースが正しく作成されていれば、帳票の結果がプレビューで表示されます。デザインに問題がある場合は再度調整を行ってください。
帳票の表示をプレビューし問題なければ、帳票をコンパイルし実際に出力してみます。様々な利用方法がありますが、今回はJapserStarterを利用してコマンドラインから実行してみます。
まずは作成したjrxmlファイルをコンパイルします。Projectタブ -> Build Projectを選択すると、コンパイルされた.jasperファイルが作成されます
JasperStarterをダウンロードします。ダウンロードページを開き、「Download Latest Version」ボタンをクリックすることで最新版のJasperStarterをダウンロードします。
.exeのファイルがダウンロードされますので、実行し画面の案内に従ってJasperStarterをダウンロードしてください。
コマンドプロンプトを開き、JasperStarterをコマンドラインから実行します。以下のコマンドを実行してください(ファイルパスなどは各自の環境に読み替えてください)
jasperstarter pr ".jasperのコンパイルした帳票のファイルパス" -o "ファイルの出力先" -f pdf -P XXX=XXX -t csv --data-file "読み込むデータCSVのパス" --csv-first-row
-fで出力方法を指定(例ではpdfとして出力)↑ ↑-Pの後に、パラメータ名=値でパラメータの値を指定 ↑csvの一行目をヘッダ行として読み込まない指定
コマンド実行すると、PDFファイル形式の帳票が出力先指定された場所に作成されます。pdf以外にもHTMLやExcelのxls形式で出力したり、今回は取り扱いませんがcsv以外のデータをソースとして帳票を作成することもできます。
以上でJasperReportsの基本的な使い方の解説を終わります。
JasperReportsはコマンドラインでの実行以外にも、Javaのライブラリを利用して出力するなど様々な環境で利用が可能ですので、帳票作成のツールとして利用してみてください。