0

カスタム アプリケーションでレポートを実行したいと考えています (birt ビューアーではなく、アプリケーション コードにレポート エンジンを直接統合して、内部でレポートをレンダリングし、最終的なドキュメントへのリンクを提供します)。

レポートをレンダリングした後、レポートで計算された特定の値を読み戻す必要があります。たとえば、レポートを別のアプリケーションの Web サービスにプッシュする場合などです。

マスターセクションで計算し、すべての請求書の詳細の合計支払額を計算するマスターと詳細を含む請求書レポートを想像してみてください。計算された支払額をアプリケーションから (レポートではなく) 支払サービスに渡す必要がある場合、どのようにすればよいですか?

  • Birt API で DataExtractionTasks を見てきました。ただし、私が見つけたまれな例では、それらはクエリに大きく関連しているようであり、結果セット以外のデータでも何らかの形で機能するかどうかはわかりません。

  • GlobalPersistentReportVariables を使用して、API 経由でレポートをレンダリングした後にアクセスしようとしましたが、API 経由では常に null のように見えます。これが計算されたレポート値にアクセスするための「正しい方法」であるかどうかはわかりません。主に、テーブルなどの異なるレポート要素間でデータを共有するために提供されていると思います。

支払い総額を再計算するためだけに、アプリケーションでレポート ロジックを複製したくはありません。

4

2 に答える 2

1

理論的には、DataExtraction タスクは正しいことだと思いますが、単純なレポート要素 (動的テキスト要素など) の値を別の場所に公開することはできませんでした。

必要なデータをアプリケーションに戻すために、神聖な appContext (汎用のスローイン何でも) を悪用することで、現在は機能しています (レポートは計算された値を appcontext に書き込みます - アプリケーションはレポートのレンダリング後に読み取ります)。

于 2012-04-24T17:36:05.650 に答える
0

最初は統合です --> http://wiki.eclipse.org/Birt_3.7_Migration_Guide

次に、BIRT 用のカスタム XML プラグインを作成する必要があります。

そのプラグインをウル統合BIRTに追加しました。

次に、レポートを XML 形式でレンダリングします (XML 形式はプラグインで定義されることを忘れないでください。そのため、javascript、jquery、または Java ファイルのみで簡単に読み取ることができる形式を指定してください)。

次に、好きな計算/操作を行います。

私の場合、2つのコンテキストファイルがありました

Context-1(Myapplication.war)--calling-->> Context-2(カスタマイズされた XML プラグインを使用した BIRT.war)

URL「http://localhost:8080/birt/framset?_ report=GraphReport1.rptdesign& _format=xml」で JavaScript XMLRequest メソッドを使用して BIRT レポートを呼び出しました。

そして、javascript で xml 形式を読み取り、データに従ってカスタマイズされた jquery グラフを表示します。

于 2012-04-23T10:28:33.033 に答える