使用JasperReports子报表后的空白页

时间:2015-12-29 21:54:33

标签: java jasper-reports

我建立了一个报告模板;它使用页眉和页脚的基本报告,然后使用可以注入报告的子报告。一般来说这很好用;但是我注意到子报表在主报表中生成完成后有空白页。

我觉得这只是由于主报表模板和子报表在分页时不在同一页面上而引起的;例如,我正在测试的子报告使用自己的数据源并进行分组。

有没有办法切断无关页面?我的主报告模板具有以下属性集(无效):

When No Data Type: No Pages

子报表具有相同的设置。

我在这里发现了一条有用的帖子: JasperReports: How to remove new page blank in subreport

建议将以下参数添加到实际reportElement的{​​{1}}标记中:

subreport

这样做实际上除去了一个额外的空白页面;这是一个巨大的成功。但是,还剩下一页空白页。

这是改变之后源的样子:

isRemoveLineWhenBlank="true"

由于问题的一般性质;特别是在标题中阐述问题时,我发现很难找到有关该主题的相关文章。如果有任何相关的页面/博客文章/文章,将非常感谢信息。

1 个答案:

答案 0 :(得分:2)

如果使用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();
     }
 }