【问题标题】:jasperreports subreport not splittingjasperreports 子报表不拆分
【发布时间】:2011-06-07 22:29:57
【问题描述】:

我有一个包含多个子报告的 jasper-report。它们中的大多数都可以正常工作,但是由于某种原因,如果我的一个子报表变得足够长以到达页面末尾,它不会拆分,而是跳回到其详细信息部分的顶部并继续在那里写入,覆盖前一个文本。我看不出这个子报表和正常工作的子报表有什么区别。目前我的项目使用 jasper-reports 1.2.5,但我尝试升级到 4.0.1(仅针对此报告),结果相同。

这是 jrxml 的部分,其中包含我不起作用的子报告:

<subreport  isUsingCache="true">
<reportElement
    x="0"
    y="172"
    width="468"
    height="21"
    key="subreport-3"
    positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourcePreviousYukonLicence}]]></dataSourceExpression>
<subreportExpression  class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportPreviousYukonLicence2.jasper")]]></subreportExpression>

这是确实工作的部分:

<subreport  isUsingCache="true">
<reportElement
    x="0"
    y="43"
    width="468"
    height="21"
    key="subreport-2"
    positionType="Float"/>
<dataSourceExpression><![CDATA[$P{dataSourceConvictionHistory}]]></dataSourceExpression>
<subreportExpression  class="java.io.InputStream"><![CDATA[this.getClass().getResourceAsStream("/config/template/subreportConvictionHistory.jasper")]]></subreportExpression>

子报表本身的设计非常相似,所有波段都有isSplitAllowed="true",并且它们使用相同的字体和相同类型的报表元素。

如果有人知道为什么一个人会正确拆分而另一个人不会,我们将非常感谢您的帮助。

【问题讨论】:

  • 我们有几乎相同的问题。这似乎是由子报表本身引起的。如果我们直接使用子报表并用足够多的内容填充它以使其不适合单个页面,那么它也会开始覆盖最上面的行。

标签: jasper-reports subreport page-break


【解决方案1】:

我们遇到了相同或至少非常相似的问题。原因不在报告中,而是在子报告的定义中。它被配置为有多个列,当它到达报告的最后一行时,它会在第二列的顶部重新开始。

将其设置为单列可以解决此问题。以下是我们案例中的简化增量

-<jasperReport ... columnCount="3" pageWidth="240" pageHeight="555" ...>
+<jasperReport ...  pageWidth="240" pageHeight="555" ...>

现在,如果子报表不适合当前页面,则带区将从下一页开始。

【讨论】:

    猜你喜欢
    • 2011-05-18
    • 2010-10-14
    • 2013-11-11
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多