今のプロジェクトではBIRTというオープンソースのレポートエンジンを使っている。
BIRTは色々便利なんだけど、欠かせない機能としてレポート内でJavaScriptを使う事が出来、さらにそのJavaScriptからJavaオブジェクトを呼び出す事が出来る。ビジネスロジック(及びDAO)はJavaで実装して、BIRTはデータの表示だけを行うようにすると良い感じ。(Beanを生成して、getterメソッドでStringとかfloatの値を取り出してレポートに表示する)
Javaオブジェクトの呼び出し方だけど、今まで2通りやった事がある。
スクリプトの使い方についてはこの辺(英語)。
1.「Packages」キーワードを使う。
var myList = new ArrayList();
2.Javaサイドでオブジェクトを生成し、レポートタスクにそのオブジェクトを渡す。 IReportEngine engine; //taskの作成 //オブジェクトを渡す
// (ここでengineを初期化する。詳しくはBIRTのページを参照)
IReportRunnable design = engine.openReportDesign("/path/to/design.rptdesign");
IRunAndRenderTask rnrTask = engine.createRunAndRenderTask(design);
rnrTask.getAppContext().putAll(objects);
コメントする