【问题标题】:JasperReport- best approach for multiple pages static reportsJasperReport - 多页静态报告的最佳方法
【发布时间】:2014-03-11 00:13:59
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: java jasper-reports


    【解决方案1】:

    我们使用 jrxml 模板,我们只有一个 jrxml。您不需要多个文件,只需将静态文本拆分为多个 DETAILS(段落),如果第一页与几行重叠,它将紧接着是下一个细节。

    在我们的应用程序中,我们使用来自 java 的 jasper,并使用 JasperFillManager 传递参数。

    我们创建模板:

    compiledTemplate = JasperCompileManager.compileReport(...);
    

    然后我们填充变量

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

    然后我们将其导出为pdf:

    ret = JasperExportManager.exportReportToPdf(jasperPrint);
    

    就是这样。

    【讨论】:

    • 如果单个 JRXML 包含 2 个 DETAIL 并且第一个在填充后超过 A4 页面的大小几行会怎样?第二页是否只包含几行?
    • 我删除了带有详细信息的推荐。你甚至可以使用一个细节。拥有多个细节并不重要
    • 我不能使用一个细节,因为我没有足够的空间...我必须生成一个几乎是静态文本的 3 页报告(A4 格式)
    • 我现在看到了问题。一种解决方案是将静态文本拆分为许多细节(可能按段落)。然后,当第一页与第一页重叠几行时,它将跟随下一个细节。这会是您正在寻找的解决方案吗?
    • 是的!非常感谢!
    【解决方案2】:

    我需要将报告拆分为几张主要用于 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 2018-07-24
      • 1970-01-01
      • 2017-05-23
      相关资源
      最近更新 更多