2

この質問は、JasperReportsに関するものです。

このように使用してJasperReportを作成するとしますJRBeanCollectionDataSource...

jasperPrint = JasperFillManager.fillReport(JRLoader.getInputStream(fileName), parameters, new JRBeanCollectionDataSource(aList));

そして、私が使用しているPoJoにList型のプロパティがあるとします。

どうすればアクセスできますか

  1. このリストの個々のアイテム、
  2. このアイテム自体がPojoアクセスである場合は、JasperReportXMLファイルのプロパティにアクセスします。

たとえば、JasperXMLファイルでは次のようになります。

...field name="?????" class="java.lang.String" ...

ご協力いただきありがとうございます ...

4

1 に答える 1

6

データソースにList型(より一般的にはjava.util.Collection型)のフィールドがある場合は、Table、List、またはSubreportコンポーネントを使用してそれらを反復処理できます。これらの要素の1つを使用して、そのデータソースを次のように設定します。

new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($F{myListField})

これらのフィールドを適切に処理するために、静的メソッドを使用して独自のヘルパークラスを追加することもできます。

これはMongoDBでよく起こります。JasperReportsにコレクションに関する記事を書きました。データソースとしてMongoDBを使用しますが、POJOデータソースにも同様に適用できます。

于 2012-04-26T23:17:40.667 に答える