2011-06-07 55 views
3

我有一个碧玉报告,有几个子报表。他们大多数工作正常,但由于某种原因,我的一个子报表如果达到页面末尾的时间足够长,就不会拆分,而是跳回到其详细部分的顶部并继续写入,覆盖以前文本。我无法看到这个子报表和正确的报表之间的区别。目前我的项目使用jasper-reports 1.2.5,但我尝试升级到4.0.1(仅针对这一报告),结果相同。jasperreports子报表不拆分

这是包括我的报表不工作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",他们使用相同的字体和相同类型的报告元素。

如果任何人有任何想法,为什么一个人会正确拆分,而另一个不是,你的帮助将非常感激。

+0

我们有几乎相同的问题。这似乎是由报告本身造成的。如果我们直接使用子报表并且填充足够多,所以它不适合单个页面,它也会开始覆盖顶部行。 – 2012-07-19 08:58:25

回答

4

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

将其设置为单列固定。以下是我们的情况

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

简化三角洲现在乐队的下一个页面上启动,如果报表不适合当前页面上。