Abh*_*lke 4 java jasper-reports dynamic-reports
我正在使用JasperReportBuilder并将报告导出为PDF.报告的全部内容由MultiPageListBuilder,HorizontalListBuilder和VerticalListBuilder生成,我不想传递数据源,因为数据来自各种数据源.我想利用页面页脚和页眉来添加到每页的静态页眉和页脚以及页码.如果我尝试使用addDetail(componentBuilder)方法添加 MultiPageListBuilder在*详情&乐队(因为这MultiPageListBuilder包含多个页面数据),空白报表生成.如果我在Title或Summary band中添加MultiPageListBuilder,则报告生成完美,但Page Header和Page Footer band消失.
示例代码段如下
JasperReportBuilder rpt = net.sf.dynamicreports.report.builder.DynamicReports.report();
MultiPageListBuilder multiPageList = cmp.multiPageList();
HorizontalListBuilder hrbld = cmp.horizontalList();
try {
rpt.addTitle(cmp.text("REPORT TITLE"));
rpt.addTitle(cmp.text("--------------"));
rpt.addPageHeader(cmp.pageXofY());
for (int i = 0; i < 200; i++) {
hrbld = cmp.horizontalList();
hrbld.add(cmp.text("ABC " + i)).newRow();
multiPageList.add(hrbld);
}
rpt.addDetail(multiPageList);
rpt.summaryOnANewPage();
rpt.addSummary(cmp.text("REPORT SUMMARY"));
JasperPdfExporterBuilder pdfExporter = Exporters.pdfExporter("report.pdf");
rpt.toPdf(pdfExporter);
File file = new File("report.pdf");
response.setContentType("application/pdf");
return SUCCESS;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return ERROR;
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.它会生成空白报告.如果我使用rpt.addTitle(multiPageList);而不是rpt.addDetail(multiPageList);报告生成但页面标题不会出现在每个页面上.
请帮忙.提前致谢.
我找到了一个解决方案,页眉和页脚只能用于细节带.要使用详细信息频段,您需要附加到报告的数据源.因此,设置一个空数据源进行报告,并获取可以放置数据的详细信息带,并使用页眉和页脚.可以将空数据源设置为" rpt.setDataSource(new JREmptyDataSource());然后报告" rpt.addDetail(multiPageList);.谢谢大家.
| 归档时间: |
|
| 查看次数: |
3123 次 |
| 最近记录: |