3

JasperReportはJavaBeanコレクションをデータソースとして持つことができるため。複数のSetCollectionへの参照を持つ単一のオブジェクトでSetCollectionを送信できますか?そして、これらの参照を使用して、異なるSetCollectionを渡すたびにJasperFillManager.fillReport()への複数の呼び出しを使用してコンパイルされたjrxmlファイルに渡します。コンパイルされたjrxmlファイルが最後の呼び出しで埋められるのか、それともJasperFillManager.fillReport()への各呼び出しのデータが含まれるのかを知りたいだけです。

4

2 に答える 2

5

これは最後のもので埋められます。そのように複数のデータソースを使用することはできません。それを行うには他の方法がありますが。コレクションをparamMapに渡すこともその1つです。

于 2012-07-25T13:52:06.490 に答える
2

最後に!!..タスクを達成しました。サブレポートのみを使用して達成した@Vycussに感謝します。

mainreport = JasperCompileManager.compileReport(//path of mainreport.jrxml);
subreport = JasperCompileManager.compileReport(//path of subreport.jrxml);
Map<String, Object> params = new HashMap<String, Object>();
params.put("SUB_REPORT", subreport);
params.put("DATA_SOURCE", empService.getEmpProject());

jprint1 = JasperFillManager.fillReport(mainreport,params,new JRBeanCollectionDataSource(empService.getEmpBean()));
JasperExportManager.exportReportToPdfFile(jprint1, "C://Test.pdf");

アプローチ:OSGiバンドルを作成していたときに、Activator.javaで上記のコードを実行した後。MainReport.jrxmlに2つのパラメーターを作成します。1つ目はタイプのない「SUB_REPORT」で、2つ目はjava.util.collectionタイプの「DATA_SOURCE」です。MainReportで、詳細バンドに配置されたサブレポート要素のデータソース式として新しいnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource($ P {DATA_SOURCE})を提供します。また、サブレポートに列ヘッダー、詳細、および列フッターバンドのみが含まれていることを確認してください。また、サブレポートのフィールドは、javabeansの対応するメンバー用に作成されます。

于 2012-07-26T13:41:35.893 に答える