iReports页码计算

时间:2013-05-22 16:01:32

标签: jasper-reports ireport

我有一个生成报告的多个部分的应用程序,然后将它们连接在一起以生成PDF文档。我们想为每个部分生成适当的页码。我希望将PAGE_OFFSET参数传递给每个部分,并使用PAGE_NUMBER + PAGE_OFFSET计算新的页码。这可能吗?到目前为止,我所尝试的一切都会产生类型转换错误或无效计算。

4 个答案:

答案 0 :(得分:0)

如果我理解这一点,您是否希望将此页面偏移量传递给iReport?

为您的偏移量创建一个新参数:参数类java.lang.Integer的$ P {offset}。然后,创建类java.lang.Integer的新变量。将变量表达式设置为$ V {PAGE_NUMBER} + $ P {offset},计算为空,重置类型为Page,增量类型为None。

答案 1 :(得分:0)

尝试按照步骤

1。)创建一个新的变量mypagenumber;类型整数,重置类型组,增量类型页面,计算类型计数;变量表达式$V{mypagenumber},初始值new Integer(0)。

2。)在报告中添加一个文本字段类型字符串,评估时间页面,文本字段表达式String.valueOf($V{mypagenumber}),以提供组或评估时间组内的实际页面,并选择您的组以给出组内的页面。

答案 2 :(得分:0)

如果您正在搜索“第1页,共3页”。查看'evaluationTime'的值 你必须写一些这样的东西:

<textField evaluationTime="Page">
    <reportElement x="328" y="0" width="154" height="20"/>
    <textElement textAlignment="Right" verticalAlignment="Middle">
        <font fontName="Arial" size="9"/>
    </textElement>
    <textFieldExpression class="java.lang.String"><![CDATA["Page"+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
</textField>
<textField evaluationTime="Report">
    <reportElement x="485" y="0" width="63" height="20"/>
    <textElement verticalAlignment="Middle">
        <font fontName="Arial" size="9"/>
    </textElement>
    <textFieldExpression class="java.lang.String"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>

答案 3 :(得分:0)

我的克里斯蒂娜代码的更正版本(我使用的是iReport 3.7.2)是:

<pageFooter>
    <band height="20">
        <textField evaluationTime="Page">
            <reportElement x="766" y="0" width="154" height="20"/>
            <textElement textAlignment="Right" verticalAlignment="Middle">
                <font fontName="SansSerif" size="9"/>
            </textElement>
            <textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}.toString() + " of "]]></textFieldExpression>
        </textField>
        <textField evaluationTime="Report">
            <reportElement x="924" y="0" width="63" height="20"/>
            <textElement verticalAlignment="Middle">
                <font fontName="SansSerif" size="9"/>
            </textElement>
            <textFieldExpression class="java.lang.String"><![CDATA[$V{PAGE_NUMBER}.toString()]]></textFieldExpression>
        </textField>
    </band>
</pageFooter>