カスタム検索

2009年4月14日火曜日

Grailsで帳票!JasperReport ざっくり評価編

Javaで帳票といえば長い事BIRTを愛用してきたんだけど、食わず嫌いもよくないと言う事で有名なJasperReportを使ってみた、せっかくなんでGrailsで。

まずJasperReportの仕組み。

jasperReportは jrxml というXMLファイルをコンパイルして jasper ファイルを生成して、そこにパラメーターやらデータソースやらを与えて帳票を出力してくれる

出力形式は XLSやPDF、HTML、CSV等が出せる(XLSはPOI、PDFはiTextを使用)

XMLファイルを作成するには iReport というGUIソフトがある
iReportには Classic 扱いの 3.0 と 現行の 3.5 がある
3.5 はNetBeansベースのアプリ(NetBeans用のPluginもある)でマルチプラットフォームなので良さげな感じだが、
Classicに比べると設定出来る項目が少なかったりする
でもMacな自分には選択肢がないので設定出来ない項目はXMLに直接書く事にする :(

一応メニューもマルチランゲージになっているが、ほとんど英語
とりあえず iReport を立ち上げて適当に帳票作ってみて Preview すると日本語もちゃんと通るっぽい

ざーっくり使ってみた感じ、BIRTとの比較等
レポート的に出来る事、出来ない事の比較はあんまりしてないです、とりあえずJavaで帳票出すって所を視野に入れての感想です

ここが○
・データソースがレポート内部と外部がちゃんと別れている所
XMLをURLから動的に生成していたので、BIRTではデータソースから動的に設定する必要があった
そうするとサンプルデータの準備も面倒だし、動的なURLを解析してXMLをパースしてくれないので、設定に不便だった・・・
iReportではアプリ上に別データソースとしてサンプルファイルをセットしておけばいいのですごくらくちん!
データソースを複数用意しといて切替も簡単、実際にコードから生成する時もデータソースを別であてるだけなので、これは凄くいい!

・ファイルがコンパイル出来る
xmlファイルをコンパイルにしてjasperにしておけば印刷時にコンパイルがいらないのでちょっと早いかも?

・テーブルの部分が別エディタとなっている
BIRTでは同じ帳票上でグリッドとか細かく触らないといけない&重たくて反応が遅れるのでイライラする
でも使いかっては今の所BIRTの方が良い(なれてるだけか)

・プログラムに組み込むのが簡単
BIRTではライブラリも含め色々と仕掛けが必要だったが、JasperReportはいくつかのライブラリいれるだけで後はソース上からさくっと作れた、そのままストリーム返しも出来そうだしいい感じ

・PDF周りの設定がしっかり出来る
PDF上のフォントのエンコード、フォント毎にPDFヘの埋め込みするしない、
PDFのバージョン、セキュリティ関係などなど今なら指定し放題!
BIRTではあるのかもしれないけど、触ってる範囲では出来ないっぽい

ここが×
・幅の%指定がない?
BIRTでは大きさに%指定ができ、ものによって大きくなったり小さくなったりが出来たがjasperReportではないっぽい

・iReportが微妙すぎる
NetBeans版は色々と微妙・・・まだこれからなのかな、Classic版を使ったらもっとハッピーになれるのかしら


次回はBIRTでXMLから帳票を出力しているのがあったので、XMLから帳票を作ってみる編
(ああ、次回ネタが溜まりすぎ・・・)

4 件のコメント:

Yupa さんのコメント...

GrailsとJasperReportsの連携。。。
私がやりたかったことを先にやられている方がいらっしゃるとは。
参考にさせていただきます。

Ponytail.The.S さんのコメント...

Yupaさん
はじめまして :)
JasperReportsはBIRTと比べて処理がサクサクなんで気に入っています
実線で使う事があったらpluginにしたいですね〜
Grailsユーザが居て凄く嬉しいです!

Yupa さんのコメント...

私はどっちらかというとJasperReports屋さんなんですが、GrailsはJGGUGの勉強会などで個人的に勉強しております。

Ponytail.The.Sさんは名古屋支部の方に参加されてるんですね。
機会があったら東京にも来てください。
こちらも名古屋にいければ。。。と思っていますが。

JasperReportsのプラグイン、できたら面白いですね。

こんなの主催しているので、是非除いてみてください。
Japan JasperServer User Group
http://groups.google.co.jp/group/japan-jasperserver-user-group
JasperReportsについてもできればやりたいと思っています。

Ponytail.The.S さんのコメント...

JGGUGにいらしてるんですね!
初期の頃は東京にも何度か顔を出してたのですが最近はなかなか行けずに居ます・・・
tyamaとmkawaに聞いたらJGGUGでYupaさんとお話した事があるらしいです、繋がるもんですね(笑)
JasperReportにはとても興味があるので機会がありましたら是非お話し聞かせて下さい :)