我设计了一个iReport,它应该显示报告中的所有记录。例如,如果报告有2页,那么第一页应该显示"要继续"第二页应显示"报告结束"无论您使用多少页面。
我在报告的页脚上放置了一个标签并更改了属性"打印时表达"如
$V{PAGE_NUMBER}.equals($V{PAGE_COUNT}.toString()) ? "End of Report" : "Continue"
并在执行报告时显示错误
Error filling print... java.lang.String cannot be cast to java.lang.Boolean
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
答案 0 :(得分:1)
您应填写的属性为Text field expresion
,并按以下方式更改:
$V{PAGE_NUMBER}.equals($V{PAGE_COUNT}) ? "End of Report" : "Continue"
因为你正在比较整数。
xml中的文本字段应为:
<textField>
<reportElement x="xx" y="xx" width="xx" height="xx" uuid="xxxx"/>
<textElement textAlignment="xxx" verticalAlignment="xxx">
<font fontName="xx"/>
</textElement>
<textFieldExpression><![CDATA[$V{PAGE_NUMBER}.equals($V{PAGE_COUNT}) ? "End of Report" : "Continue"]]></textFieldExpression>
</textField>