JAVA 備忘録

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

2013年3月13日

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

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

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

//メインレポートのフィールド作成
ArrayList<ArrayList<String>> メインレポートのデータソース = new ArrayList<ArrayList<String>>();
ArrayList<String> サブレポートのフィールド = new ArrayList<String>();

メインレポートのフィールド.add("テスト");
メインレポートのフィールド.add("テスト2");
メインレポートのフィールド.add("テスト3");
サブレポートのデータソース.add(メインレポートのフィールド);

//結合レポートのフィールド作成
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, 備忘録
-, , , ,