gpt4 book ai didi

java - 创建没有数据源的动态报告并将数据与页脚和页眉一起放入详细信息带中

转载 作者:搜寻专家 更新时间:2023-11-01 02:12:10 25 4
gpt4 key购买 nike

我正在使用 JasperReportBuilder 并将报告导出为 PDF。报告的全部内容由 MultiPageListBuilderHorizo​​ntalListBuilderVerticalListBuilder 生成,我不想在数据即将到来时传递数据源来自各种数据源。我想利用页脚和页眉添加到每个页面上的静态页眉和页脚以及页码。如果我尝试使用 addDetail(componentBuilder) 方法来添加MultiPageListBuilder 在 *Detail& 带中(因为此 MultiPageListBuilder 包含多个页面数据),生成空白报告。如果我在 TitleSummary 中添加 MultiPageListBuilder,报告会完美生成,但 Page HeaderPage Footer strip 消失。

示例代码片段如下

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); 生成报告,但页面标题不会出现在每个页面上。

请帮忙。提前致谢。

最佳答案

我找到了页眉和页脚只能与详细信息带一起使用的解决方案。要使用详细信息带,您需要一个附加到报告的数据源。因此,设置一个空数据源来报告并获取可以放置数据的详细信息带,还可以使用页眉和页脚。可以将空数据源设置为 rpt.setDataSource(new JREmptyDataSource()); 然后使用 rpt.addDetail(multiPageList); 生成报告。谢谢大家。

关于java - 创建没有数据源的动态报告并将数据与页脚和页眉一起放入详细信息带中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com