概要
JasperReportsで帳票を作成するにあたり、Jaspersoft Studio(JSS)を使用して帳票テンプレートを作成したが、色々と実現に苦慮した個所などを備忘的に本稿にまとめる。
JasperReportsとは?
- JasperReportsとは、Javaで動作するオープンソースの帳票出力ライブラリ
- 米Jaspersoft社により開発されていたが、Jaspersoft社が米TIBCO Softwareに買収された事により、現在はTIBCO社により開発が続けられている
- JasperReports LibraryはLGPL、Jaspersoft StudioはEclipse Licenseで利用可能。したがって通常の利用範囲であれば商用利用可能
Jaspersoft Studio(JSS)インストール関連
- Jaspersoft Studio(JSS)とは、Eclipse上で動作するJasperReportsのレイアウト作成ツール(2019/12/01 時点での最新は v6.10.0)
- 導入にはJSSを直接インストールする方法と、既存のEclipseにJSSプラグインをインストールする方法がある(参考:Jaspersoft Studioとは)
- インストール手順は以下を参照(参考の手順は対象バージョンがやや古いため、適時読み替えて実施すること)
- Eclipse部分については一部日本語化が出来る(Jaspersoft Studio 機能自体は日本語化できないが、それでもだいぶマシにはなる)
-
日本語化手順
※ Eclipse バージョン確認
上記サイトの方法では確認が出来なかったので、Help > About TIBCO Jaspersoft Studio より Eclipse RCP のバージョンで確認、→ 4.7.3(Oxygen)
-
日本語化手順
日本語(マルチバイト文字)出力対応
- 日本語の帳票出力に対応するためには、日本語フォントを導入する必要がある
- 殆どの例では、無償で商用利用可能なIPAフォントを採用している(IPAフォント入手先)
- Jaspersoft Studio でフォントを追加するには、Window → Preferences → Fonts から行う
- PDFファイルにフォントを埋め込みか否かを Embed this font in PDF document にて指定できる。フォントを埋め込む場合は表示PCにフォントファイルがなくとも表示可能となるが、その分ファイルサイズが大きくなる。また、埋め込む場合はフォントの配布にあたるため、ライセンスを確認する必要がある(IPAフォントは配布OK)。
- 設定したフォント情報は Window → Preferences → Fonts の Export からjarファイル形式でエクスポート可能。テンプレートファイルと共に稼働環境に配置する。
帳票テンプレート作成関連
-
明細を縦2列以上で表示する
Report プロパティ > Page Columns > Column Count に 列数を設定し、Column Width に 列幅を設定する。 -
カラムフッターを明細の直後に出力する
Report プロパティ> Float Column Footer にチェックを入れる。 -
縦書きを実現する
残念ながら縦書きを素直に実現する方法は無いため、TextField を文字数分、縦に並べて用意し、それぞれに1文字つずつ切り出して出力する。
1文字目:($P{param}.length()>0?($P{param}.substring(0,1)):"")
2文字目:($P{param}.length()>1?($P{param}.substring(1,2)):"")
: -
NULLを空文字として表示する(NULLを表示しない)
TextField プロパティ> Blank When NULL を true にする。 -
合計欄等の最後に値が確定する項目は、評価タイミング(TextField プロパティ> Evaluation Time )を Report 等にする事で不確定状態のまま表示されることを回避できる。
(例:Evaluation Time : Now)この例では合計金額欄を評価するタイミングでは小計、消費税が評価されていないため、nullとして表示されてしまう。