2011-01-12 16 views
0

私は100のレポートのリストからレポートを選択し、マスターレポートを要求できるレポートアプリケーションを開発しています。このマスタレポートには、選択したすべてのレポートが正確な順序で表示され、マスタレポートに含まれるレポートが一覧表示されます。ユーザーが選択できるレポート(100秒)はデータベースに保存されます。Pentahoでレポートを動的に生成し、レポート定義をデータベースに格納する

私の質問は以下のとおりです。 -

  1. ユーザーが選択したレポートをマスターレポートを生成するには、私が見ることができる唯一の解決策は、私が追加する必要がありその中に動的なレポートを生成するレポートエンジンのAPIを使用していますユーザーが選択したレポートをサブレポートとして表示します。これは、この問題に近づける最も簡単で正しい方法ですか?特に、マスターレポートにサブレポートを挿入するには、レポートエンジンAPIの使用例のサンプルがありますか?
  2. 私はdb(blobs)にレポートを格納しているので、ResourceManager.createDirectly(url, MasterReport.class)に指定されたURLではなく、入力ストリームでサブレポートを生成する方法を見つけようとしていますが、これまで成功していません。データベースに格納された定義からレポートを生成するにはどうすればよいですか?いくつかのリソース抽象化があるはずです。

答えて

1

レポートをバイト配列に読み込んだ後、いつものようにResourceManager.createDirectlyメソッドを使用します。それはレポートの解析の問題を解決します。

あなたは

ResourceManager.createDirectly(バイト、SubReport.class)

これらのサブレポートはその後、バンドサブレポートとしてあなたのマスターレポートに追加することができますを使用してサブレポートにそれらを直接解析することができます。選択したレポートを新しいページで開始する場合は、サブレポートのレポートヘッダーに「改ページ前」スタイルを設定してください。

「LibLoader」と呼ばれるリソース抽象化があり、データベースからデータをRawストリームとして取り込む問題を処理する独自のResourceLoaderを作成して、ResourceFactory実装で生データ。

しかし、すべてのデータベースのデザインが異なるため、のシステムインテグレータは、グルーコードを書き込む必要があります。私たちはインターフェイスを提供するだけです。

+0

あなたは正しいです。私は昨日、ソースコードを見てこれを実現しました。バイト[]の場合、RawResourceLoaderが起動します。新しいページでレポートを開始する方法を理解しようとしていました。あなたのおかげで今私は知っている。 – Vineeth

関連する問題