[英]Prefs Error - Android ' Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String'
[英]JRException: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
将Jaspersoft Studio与Oracle数据库一起使用时出现错误。 一旦有数据,下一行
<printWhenExpression><![CDATA[$P{REPORT_TYPE}.substring(0,1)=="R"? $F{REASON_DELETED}:$F{REASON_ADOC}]]></printWhenExpression>
引发以下错误:
net.sf.jasperreports.engine.JRException:java.lang.ClassCastException:java.lang.String无法转换为java.lang.Boolean
我不明白,为什么Jasper Studio会将其转换为布尔值,因为它被定义为字符串:
<field name="REASON_ADOC" class="java.lang.String"/>
<field name="REASON_DELETED" class="java.lang.String"/>
SQL对我也很好:
NVL(cr.REASON_ADHOC,'-') AS reason_adoc,
NVL(cr.REASON_DELETED,'-') AS reason_deleted,
以及在视图/表中:
REASON_DELETED VARCHAR2(250)
REASON_ADHOC VARCHAR2(4000)
没错,您的表达式返回一个字符串。 但是printWhenExpression
期望布尔表达式作为内容。 根据文档 :
printWhenExpression布尔表达式的定义,它将确定是否应打印元素或带。
目前尚不清楚您要达到什么目标。 您可能要改用textFieldExpression
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.