BIRTでJavaオブジェクトの埋め込み

| コメント(0) | トラックバック(0)

今のプロジェクトではBIRTというオープンソースのレポートエンジンを使っている。

BIRTは色々便利なんだけど、欠かせない機能としてレポート内でJavaScriptを使う事が出来、さらにそのJavaScriptからJavaオブジェクトを呼び出す事が出来る。ビジネスロジック(及びDAO)はJavaで実装して、BIRTはデータの表示だけを行うようにすると良い感じ。(Beanを生成して、getterメソッドでStringとかfloatの値を取り出してレポートに表示する)

Javaオブジェクトの呼び出し方だけど、今まで2通りやった事がある。
スクリプトの使い方についてはこの辺(英語)。

1.「Packages」キーワードを使う。
importPackage(Packages.java.util)
var myList = new ArrayList();

2.Javaサイドでオブジェクトを生成し、レポートタスクにそのオブジェクトを渡す。

IReportEngine engine;
// (ここでengineを初期化する。詳しくはBIRTのページを参照)

//taskの作成
IReportRunnable design = engine.openReportDesign("/path/to/design.rptdesign");
IRunAndRenderTask rnrTask = engine.createRunAndRenderTask(design);

//オブジェクトを渡す
rnrTask.getAppContext().putAll(objects);

かなり端折ったコードだけど大体okのはず。

2.の方法は最初中々上手くいかなかったんだけど、以下のページのコードを色々試してたら何とかok。

Report Engine APIのページ (サンプルコードはちょっと分かりにくい)
とあるフォーラムの書き込み

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/672

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2008年6月27日 18:39に書いたブログ記事です。

ひとつ前のブログ記事は「Eclipseでsubversion」です。

次のブログ記事は「SQL 最大値を持つ列を取得」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ