0

私の会社のコンサルタントの何人かは、カスタムJRDataSourceを使用してプログラムで入力される複数のジャスパーレポートを(iReportsを使用して)作成しました。

問題は、対応するWebサービスを呼び出すことができるように、レポートにどの要素が存在するかを知る必要があることです。そのため、私の質問は次のとおりです。Javaでプログラムでレポートを読み取り、必要なすべての要素を特定するにはどうすればよいですか。いっぱいになりますか?

レイアウトは常に変更されるため、プログラムですべてのレポートを作成することはできません。また、この変更のいずれかが発生するたびにソフトウェアを更新することはできません。

4

2 に答える 2

2

XMLなので、もちろんすべてを読んで情報を解析することができます。

JasperReportsは逆に機能し、JRDataSourceを介してデータをプルするので、構造化データが出力をプッシュして制御する代わりに、データソースをインターセプトできればより良いでしょう。したがって、データソースから必要な情報を取得できる場合は、データソースを置き換える(元のデータに委任する)か、AOPを実行できます。

あなたの質問の正確な要件がわかりません。たぶん、問題が正確に何であるかについてあなたの答えを編集してください。

于 2012-05-03T12:52:55.177 に答える
2

次のコードを使用して、レポートに必要なすべての要素(フィールド)を取得することができました。

JasperReport report = (JasperReport) JRLoader.loadObjectFromFile(path + "MyTestReport.jasper");
JRField[] gf = report.getFields();
于 2012-05-04T08:34:14.253 に答える