Jasper reports Jasper报告:一条记录内的第x页,共y页

Jasper reports Jasper报告:一条记录内的第x页,共y页,jasper-reports,Jasper Reports,我有多条记录的报告,其中一条记录由1-5页组成。如何显示“第x页,共y页”,其中x是实际记录的页数,y是实际记录的总页数?对于x变量(在新记录上重置,逐页递增),我有如下内容,但它不起作用(在每一页上x有1个值): 问题在于calculation=“count”没有达到您期望的效果。它返回variableExpression返回的非空值计数。由于variableExpression只返回一个值,因此变量始终设置为1 一个简单的解决方案是将计算类型设置为“Nothing”,将variableExp

我有多条记录的报告,其中一条记录由1-5页组成。如何显示
“第x页,共y页”
,其中
x
是实际记录的页数,
y
是实际记录的总页数?对于
x
变量(在新记录上重置,逐页递增),我有如下内容,但它不起作用(在每一页上x有1个值):


问题在于
calculation=“count”
没有达到您期望的效果。它返回
variableExpression
返回的非空值计数。由于
variableExpression
只返回一个值,因此变量始终设置为1

一个简单的解决方案是将计算类型设置为
“Nothing”
,将variableExpression设置为
$V{x}+1

i、 e:



编辑:替代解决方案
标记可以具有属性
isResetPageNumber
。当设置为true时,它将重置每个组开头的内置变量
页码
。由于您已经按照每条记录进行分组,我认为这应该会给您带来想要的效果。

使用“总和”不是一个好的解决方案吗?我不太明白这个问题,所以我没有给出这个建议。(祝贺1000)有一个问题:
incrementType=“Page”
不起作用。递增是按记录进行的。为什么?@mdahlman:是的,我认为calculation=“Sum”可以,但我必须参考文档才能确定。由于某些计算类型无法直观地工作(我也不记得是哪种),我倾向于完全避免使用它们。@marioosh:我不确定为什么会出现这种情况。可能与组
isStartNewPage
选项不兼容??你必须通过实验才能找到答案。
<variable name="x" class="java.lang.Integer" resetType="Group" resetGroup="report_count" incrementType="Page" calculation="Count">
    <variableExpression><![CDATA[1]]></variableExpression>
    <initialValueExpression><![CDATA[new Integer(1)]]></initialValueExpression>
</variable>

<!-- group by record -->
<group name="report_count" isStartNewPage="true">
    <groupExpression><![CDATA[$V{REPORT_COUNT}]]></groupExpression>
</group>

<textField evaluationTime="Now" evaluationGroup="report_count">
    <reportElement x="141" y="5" width="156" height="20"/>
    <textElement textAlignment="Right"/>
    <textFieldExpression><![CDATA["Page "+$V{x}+" of"]]></textFieldExpression>
</textField>
<variable name="x" class="java.lang.Integer" resetType="Group" resetGroup="report_count" incrementType="Page" calculation="Nothing">
    <variableExpression><![CDATA[$V{x} + 1]]></variableExpression>
    <initialValueExpression><![CDATA[new Integer(1)]]></initialValueExpression>
</variable>