如何显示y的第x页的只有那些具有多页的报告(How to display the page x of

2019-09-18 16:31发布

我现在用的碧玉报告-4.5.0。 我生成使用此碧玉不同格式的报告。 我想在我的报告显示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>

如果我用这样的我不是在其中具有多页的报告得到的页码。

Answer 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>


文章来源: How to display the page x of y for only the reports which are having more than one page