使用 JasperReports 子报表后的空白页
Blank Pages After Subreport Using JasperReports
我构建了一个报告模板;它使用 headers 和页脚的基础报告,然后是可以注入报告的子报告。一般来说,这很好用;但是我注意到子报表在主报表中完成生成后有空白页。
我想这只是由于分页时主报表模板和子报表不在同一页上造成的;例如,我正在测试的子报表使用其自己的数据源并进行了分组。
有没有办法去掉无关的页面?我的主报告模板设置了以下 属性(无用):
When No Data Type: No Pages
子报表具有相同的设置。
我在这里找到了一个有用的 post:
JasperReports: How to remove new page blank in subreport
这建议将以下参数添加到实际 subreport
的 reportElement
标记中:
isRemoveLineWhenBlank="true"
这样做实际上删除了所有内容,只留下了一个额外的空白页;这是一个巨大的成功。但是,还是留了一页空白。
这是更改后源的样子:
<subreport overflowType="Stretch">
<reportElement x="-20" y="0" width="792" height="20" isRemoveLineWhenBlank="true" uuid="e6d4ec67-6ce6-4bbb-b40b-edfb1cfb4722">
由于问题的一般性质;特别是在阐明标题中的问题时,我发现很难找到与该主题相关的文章。如果有任何相关的 pages/blog posts/articles,将不胜感激。
如果您使用 Java 生成报告,您可以删除最后一个空白页作为解决方法。
JasperPrint jp = JasperFillManager.fillReport(report, params, dataSource);
for (Iterator<JRPrintPage> iterator = jp.getPages().iterator(); iterator.hasNext();) {
JRPrintPage page = iterator.next();
if (!iterator.hasNext() && page.getElements().isEmpty()) {
iterator.remove();
}
}
我构建了一个报告模板;它使用 headers 和页脚的基础报告,然后是可以注入报告的子报告。一般来说,这很好用;但是我注意到子报表在主报表中完成生成后有空白页。
我想这只是由于分页时主报表模板和子报表不在同一页上造成的;例如,我正在测试的子报表使用其自己的数据源并进行了分组。
有没有办法去掉无关的页面?我的主报告模板设置了以下 属性(无用):
When No Data Type: No Pages
子报表具有相同的设置。
我在这里找到了一个有用的 post: JasperReports: How to remove new page blank in subreport
这建议将以下参数添加到实际 subreport
的 reportElement
标记中:
isRemoveLineWhenBlank="true"
这样做实际上删除了所有内容,只留下了一个额外的空白页;这是一个巨大的成功。但是,还是留了一页空白。
这是更改后源的样子:
<subreport overflowType="Stretch">
<reportElement x="-20" y="0" width="792" height="20" isRemoveLineWhenBlank="true" uuid="e6d4ec67-6ce6-4bbb-b40b-edfb1cfb4722">
由于问题的一般性质;特别是在阐明标题中的问题时,我发现很难找到与该主题相关的文章。如果有任何相关的 pages/blog posts/articles,将不胜感激。
如果您使用 Java 生成报告,您可以删除最后一个空白页作为解决方法。
JasperPrint jp = JasperFillManager.fillReport(report, params, dataSource);
for (Iterator<JRPrintPage> iterator = jp.getPages().iterator(); iterator.hasNext();) {
JRPrintPage page = iterator.next();
if (!iterator.hasNext() && page.getElements().isEmpty()) {
iterator.remove();
}
}