0

1 つの棒グラフと 1 つのテーブルを含むレポートがあります。これら 2 つの要素は、Javaアプリケーションからレポートに渡されるオブジェクトのリストによって埋められます。

これら 2 つの要素を 2 つの異なるサブレポートに入れたいのですが、オブジェクトのリストをサブレポートに渡す方法がわかりません。各オブジェクトのフィールドをマスター レポートのフィールドとして、サブレポートのパラメーターとして追加しましたが、機能しません。

誰でもこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

0

このようなもの:

コレクションをパラメーターとしてメイン レポートに渡し、サブレポートの DataSource でこのパラメーターを使用します。

// メイン レポートの Java コード

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listOfObject);
Map<String, Object> params = new HashMap<String, Object>();
params.put("myList", listOfObject);
jasperPrint = JasperFillManager.fillReport(jasperReport, params, ds);

// Java コードの終了

(多分

JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource())

メインレポートにデータを表示する必要がない場合)

main.jrxml レポート パラメーター myList で java.util.Collection として定義します。

サブレポートをメイン レポートに追加します (サマリー バンドに)
メイン レポートでサブレポートのプロパティを設定します:
接続タイプ = データソース式を使用
データ ソース式 = new JRBeanCollectionDataSource($P{myList})

サブレポートで目的のフィールドを定義します (listOfObjects に基づく)。

于 2013-05-29T13:07:59.920 に答える