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