Play FrameworkでJasperReportを使う

僕の中で話題のPlay Frameworkで、JasperReportを使う方法をご紹介します。

 

環境とかバージョン

開発環境はOSX10.9で、既存でPlay Frameworkを利用したWebシステムがあります。
今回は、このシステムにJasperReportを利用して、帳票出力機能を追加してみようと思います。

 

バージョンとかは以下。

 

Java1.6
Play Framework 1.2.5
JasperReport Library 5.6.0
Jaspersoft Studio 5.6.0

 

Jasper関連のダウンロードとインストール

Jasper関連は、こちらからダウンロードします。

Download_Jaspersoft_Business_Intelligence_Suite___Jaspersoft_Community

 

 

JasprtReport Libraryは、解凍後、jarファイルなどをPlay Frameworkに組込みます。
Jaspersoft Studioは、帳票作成用エディタなのでインストールします。

 

Jaspersoft Studioでレポート定義ファイルを作る

インストールしたJaspersoft Studioを起動します。

そしてレポートを適当に作ります。
※今回はPlay Frameworkシステムに入れこむことが目的なのでレポート作成方法は割愛します(・ω<)

スクリーンショット 2014-07-25 12.02.32

 

DBからレコードを取得したかったので、商品一覧を表示するレポートを作ってみました。(超適当です。。。

PDFなどに日本語を表示する場合は、フォントを組み込む必要があります。
組込み方法は以下サイトに詳しく書いてあったので、そちらをご参照ください。

 

JasperReportsで帳票出力してみた

 

レポート定義をPlay Frameworkとガッチャンコ!

Jaspersoft Studioで作成したレポート定義ファイルをPlay Frameworkに組込みます。

必要になるのは、.jaspertファイルです。

Jaspersoft_Studio
実際の定義ファイルは、「.jrxml」ファイルなのですが、それをコンパイルしたものが、.jasperファイルになります。
今回の流れとして、Jaspersoft Studioで定義ファイル作成→コンパイルまでを行ってから、Play Framework側に持っていくようにしました。

 

PlayFramework側に、以下の様な感じで必要なファイル群を配置します。

Java_-_Eclipse_-__Users_yakisake_Documents_eclipse4_3play_workspace

 

 

基本はフォントファイルとjasperファイルになります。(ゴミファイルもありますが、気にしないでください( ˘ω˘)

 

フォント設定ファイルは以下の様な感じになります。

 

<normal>の部分のパスがフォントファイルの配置ディレクトリになります。

 

帳票を出力する

では最後に帳票を出力してみます。

コードは以下の様な感じです。

とりあえずPDFでの出力をやってみました。
最後はPlayのステキポイント、renderBinaryでブラウザで保存ダイアログが表示されるになってます。
※第三引数を、trueにするとインライン表示されます。

 

モザイクかかってる部分にはDBから取得したデータがリスト形式で表示されてます。

 

test2_pdf

 

ちなみにExcel出力する場合は以下。

Excelの場合は 一旦ローカルにxlsファイルを保存します。
記述していませんが、保存後にそこからStream読みだししてrenderBinaryすれば良いと思います。

xlsxの場合は、「JRXlsxExporter」を使用すれば出力されます。

test_xlsx

 

ぱっと見、行列がすごいことになってますね。。。
PDFよりかは少し癖があるかもなんですが、直接Excelファイルを出せるのは良いことです。

 

Play FrameworkとJasperReportの良い関係

以上で、とりあえずPlay FrameworkからJasperReportを使用して、
PDF、Excel帳票を出力することが出来ました。

 

以下に良かった点をまとめます。

 

  • JasperReportにPlayのDBコネクションを渡せる
  • renderBinaryがあるので、バイナリファイル(PDF、Excel)をブラウザに簡単に返せる
  • JasperReportからはコンパイル済の.jasperファイルのみを持ってくれば良いので分業できる
  • JaspersoftStudioがGUIで帳票作れるのでプログラマじゃなくても帳票を作れる

 

Play Frameworkでは帳票出力機能が標準で搭載されてないのが唯一の不満点でしたが
これでPDF、Excel系が出せることになったので業務システムとかにも使えるんじゃないかなと思っています。

 



❏❏ TOPIC ❏❏ ------------------------------------------------------------

カスタム自由!フリーECサイトパッケージ
チャットボット導入サービス
WEBシステム開発・スマホアプリ開発はSRIAへ