JasperReport-多页静态报告的最佳方法

时间:2014-03-10 14:42:08

标签: java jasper-reports

我需要创建一个3页的静态报告,每个页面都包含静态文本和使用数据库查询检索的字段。

在阅读类似问题之后,我的第一种方法是创建3个独立的报告文件(page1.jrxml,page2.jrxml和page3.jrxml),然后将生成的报告合并为一个。 它工作正常,但有时会发生一个字段包含一个非常长的字符串和一个文件报告生成2页,导致可怕的打印,因为第一页已满 第二行包含一行或几行。

你能建议我一个更好的方法吗?

由于

2 个答案:

答案 0 :(得分:2)

我们使用jrxml模板,我们只有一个jrxml。您不需要将多个文件只需将静态文本拆分为多个DETAILS(段落),如果第一个页面与几行重叠,则会在中间跟随下一个细节。

在我们的应用程序中,我们使用java中的jasper,并使用JasperFillManager传递params。

我们创建模板:

compiledTemplate = JasperCompileManager.compileReport(...);

然后我们填充变量

jasperPrint = JasperFillManager.fillReport(compiledTemplate, map with params, dto implementing JRDataSource);

然后我们将其导出为pdf:

ret = JasperExportManager.exportReportToPdf(jasperPrint);

就是这样。

答案 1 :(得分:1)

我需要将报表拆分为几张主要用于Excel导出的报表。它似乎在JasperServer预览时也有效:

  • 将报告属性 net.sf.jasperreports.export.xls.one.page.per.sheet 设置为 true
  • 添加属性 net.sf.jasperreports.export.xls.break.after.row 设置为 true 您需要分页后的文本字段(有类似的一个打破之前)

你也可以为你的床单命名。请看这里: http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.export.xls.one.page.per.sheet