我正在使用jasper reports-4.5.0。我使用这个jasper以不同的格式生成报告。我想在报告中显示Y的页面X.所以我使用iReport提供的页码文本字段,它可以在调色板中找到。它在所有报告中显示页码,即使是具有单页的报告也是如此。
所以我的要求是,如果我的报告只有一页,我不想要y的页面x。我该如何做到这一点?
以下代码目前我根据给定的答案使用。
<textField>
<reportElement x="395" y="121" width="20" height="20">
<printWhenExpression><![CDATA[$V{PAGE_COUNT} > 1]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="350" y="121" width="45" height="20">
<printWhenExpression><![CDATA[$V{PAGE_COUNT} > 1]]></printWhenExpression>
</reportElement>
<textElement/>
<textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
如果我这样使用,我的报告页面编号不会超过一页。
答案 0 :(得分:1)
您需要为包含Print When Expression
和"Page "+$V{PAGE_NUMBER}+" of"
的两个字段设置" " + $V{PAGE_NUMBER}
。具有这两个字段的jrxml部分应该类似于:
<textField>
<reportElement uuid="90a3462d-cfa2-4768-904a-1edf4191f1b7" x="250" y="16" width="80" height="20">
<printWhenExpression><![CDATA[$V{PAGE_COUNT} > 1]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA["Page "+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement uuid="01d43267-3247-48bb-9822-8b58ea860d7f" x="330" y="16" width="40" height="20">
<printWhenExpression><![CDATA[$V{PAGE_COUNT} > 1]]></printWhenExpression>
</reportElement>
<textElement/>
<textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression>
</textField>