かえでBlog

色々なことを徒然と……

【iReport&JasperReports】複数レポートの結合方法

      2015/05/18

iReport&JasperReportsで複数ページの結合方法がわからなかったので備忘録

こちらを参考にしました。

※メインレポートのサイズを基準に2つ目3つ目と作成されるので、大きさがバラバラのレポートはおかしくなる場合があります。

//メインレポートのフィールド作成
ArrayList<ArrayList<String>> メインレポートのデータソース = new ArrayList<ArrayList<String>>();
ArrayList<String> サブレポートのフィールド  = new ArrayList<String>();
メインレポートのフィールド.add("テスト");
メインレポートのフィールド.add("テスト2");
メインレポートのフィールド.add("テスト3");
サブレポートのデータソース.add(メインレポートのフィールド);<br /><br />//結合レポートのフィールド作成
ArrayList<ArrayList<String>> 結合レポートのデータソース = new ArrayList<ArrayList<String>>();
ArrayList<String> 結合レポートのフィールド  = new ArrayList<String>();
結合レポートのフィールド.add("test");
結合レポートのフィールド.add("test2");
結合レポートのフィールド.add("test3");
結合レポートのデータソース.add(結合レポートのフィールド);// レポートのパラメータを作成する
HashMap parameters = new HashMap<String, String>();List<JRPrintPage> pages = null;//データソースの作成
dataSource = new JRBeanCollectionDataSource(メインレポートのデータソース);//メインレポート出力処理
JasperPrint print = JasperFillManager.fillReport(テンプレートパス+テンプレートファイル名, parameters, メインレポートのデータソース);//サブレポートの出力処理
JasperPrint print2 = JasperFillManager.fillReport(テンプレートパス+テンプレートファイル名, parameters, 結合レポートのデータソース);// 追加する帳票をメイン帳票に追加
pages = print2.getPages();
for(JRPrintPage page : pages ){
	print.addPage(page);
}// PDFファイルへ出力する
//直接出力の場合
//JasperExportManager.exportReportToPdf(print,"pdf/output/sample_report2.pdf");
//byteにて格納する場合
byte[] bytes = JasperExportManager.exportReportToPdf(print);


 - JAVA, 備忘録 , , , ,