Jasper reports 如何仅显示具有多个页面的报告的x页(共y页)

Jasper reports 如何仅显示具有多个页面的报告的x页(共y页),jasper-reports,Jasper Reports,我使用的是jasper reports-4.5.0。我使用这个jasper以不同的格式生成报告。我想在我的报告中显示X页,共Y页。所以我使用的是iReport提供的页码文本字段,该字段在调色板中可用。它在所有报告中显示页码,即使是具有单个页面的报告也是如此 因此,我的要求是,如果我的报告只有一页,我不希望看到第x页或第y页。我如何做到这一点 下面的代码是我目前根据给定答案使用的代码 <textField> <reportElement x

我使用的是jasper reports-4.5.0。我使用这个jasper以不同的格式生成报告。我想在我的报告中显示X页,共Y页。所以我使用的是iReport提供的页码文本字段,该字段在调色板中可用。它在所有报告中显示页码,即使是具有单个页面的报告也是如此

因此,我的要求是,如果我的报告只有一页,我不希望看到第x页或第y页。我如何做到这一点

下面的代码是我目前根据给定答案使用的代码

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

1]]>
1]]>

如果我这样使用,我将无法获得具有多个页面的报告中的页码。

您需要为包含
“page”+$V{page\u NUMBER}+“of”
“+$V{page\u 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>

1]]>
1]]>

Hi Jschoon,感谢您的回复。如果我使用了您提到的代码,我将无法在包含多个页面的报告中获得页码。为了便于理解,我将发布代码,以及我在原始问题中使用的代码。如有任何帮助,我们将不胜感激。@user1434746您是否可以编辑问题以包含变量来自jrxml的定义?我猜这就是问题所在。嗨,我没有为此页码定义任何变量。是否需要定义任何变量。我认为打印时间必然会计算为“现在”,尽管文本字段计算为“自动”或“报告”。因此,根据逻辑,他将永远获得领域,或永远不会;但只有当总页数大于一页时,它才会显示该字段。(我还没有测试确认。)PAGE_COUNT变量是当前页面上的记录数,而不是总页数。的可能重复项