3

いくつかのサブレポートを持つ jasper-report があります。それらのほとんどは正常に動作しますが、何らかの理由で、ページの最後に到達するのに十分な長さになるとサブレポートの1つが分割されず、代わりに詳細セクションの先頭に戻ってそこに書き込みを続け、前のものを上書きします文章。このサブレポートと正しく機能するサブレポートとの間に違いは見られません。現在、私のプロジェクトでは jasper-reports 1.2.5 を使用していますが、4.0.1 にアップグレードしてみましたが (この 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"、同じフォントと同じタイプのレポート要素を使用しています。

一方が適切に分割され、もう一方が分割されない理由を誰かが知っている場合は、あなたの助けに感謝します。

4

1 に答える 1

4

同じか、少なくとも非常に似た問題がありました。原因はレポートではなく、サブレポートの定義にありました。複数の列を持つように構成されており、レポートの最後の行に到達すると、2 番目の列の上部で再び開始されます。

単一の列に設定すると、それが修正されました。以下は、この場合の簡略化されたデルタです

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

サブレポートが現在のページに収まらない場合、バンドは次のページから開始されるようになりました。

于 2012-07-19T11:27:32.047 に答える