首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jasper报告:一条记录中的第x页,共y页

Jasper报告:一条记录中的第x页,共y页
EN

Stack Overflow用户
提问于 2012-06-20 14:16:45
回答 1查看 1.2K关注 0票数 2

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

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-21 23:17:32

问题是calculation="count"并没有按照你的预期去做。它返回variableExpression返回的非空值的计数。由于您的variableExpression仅返回单个值,因此该变量始终设置为1。

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

即:

代码语言:javascript
复制
<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>

编辑:替代解决方案

group标记可以具有属性isResetPageNumber。当设置为true时,它将在每个组开始时重置内置变量PAGE_NUMBER。因为你已经按每条记录分组了,我想这应该会给你带来你想要的效果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11113824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档