我正在使用JasperReportBuilder并将报告导出为PDF。报告的全部内容由MultiPageListBuilder、 Horizo ntalListBuilder和VerticalListBuilder生成,我不想传递数据源,因为数据来自各种数据源。我想利用页脚和页眉添加到每个页面上的静态页眉和页脚以及页码。如果我尝试使用addDetail(componentBuilder)方法 在 *Detail& 带中添加 MultiPageListBuilder(因为此MultiPageListBuilder包含多个页面数据),则会生成空白报告。如果我添加MultiPageListBuilder在标题或摘要带中,报表生成完美,但页眉和页脚带消失。
示例代码片段如下
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;
}
但这不起作用。它生成空白报告。如果我使用rpt.addTitle(multiPageList);
而不是rpt.addDetail(multiPageList);
报告生成,但页眉不会出现在每一页上。
请帮忙。提前致谢。