如何仅显示一页以上的报表的第 x 页(共 y 页)

2024-01-06

我正在使用 jasper reports-4.5.0。我正在使用这个碧玉生成不同格式的报告。我想在我的报告中显示第 X 页(共 Y 页)。所以我使用 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>

如果我像这样使用,我不会得到超过一页的报告中的页码。


您需要设置Print When Expression对于包含的两个字段"Page "+$V{PAGE_NUMBER}+" of" and " " + $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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何仅显示一页以上的报表的第 x 页(共 y 页) 的相关文章

随机推荐