Jaspersoft iReport java.lang.String无法强制转换为java.lang.Boolean

时间:2014-09-17 16:05:31

标签: jasper-reports

我收到以下错误:

填写print时出错... java.lang.String无法强制转换为java.lang.Boolean java.lang.ClassCastExecption:java.lang.String无法强制转换为java.lang.Boolean

问题似乎来自属性中的Filter Expression。只要我让一个空白字段,我就会收到此错误。如果我尝试在该字段中放置一个返回布尔值的表达式,例如$ F {id_dataset} .equals($ F {id_dataset}),则错误会一直显示。

有什么想法吗?

日志:

  

错误填充打印... java.lang.String中不能转换到java.lang.Boolean的   java.lang.ClassCastException:java.lang.String中不能转换为一个java.lang.Boolean   在net.sf.jasperreports.engine.fill.JRFillElement.evaluatePrintWhenExpression(JRFillElement.java:795)   在net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:482)   在net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:259)   在net.sf.jasperreports.components.list.FillListContents.evaluateContents(FillListContents.java:79)   在net.sf.jasperreports.components.list.VerticalFillList.prepare(VerticalFillList.java:101)   在net.sf.jasperreports.engine.fill.JRFillComponentElement.prepare(JRFillComponentElement.java:151)   在net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)   在net.sf.jasperreports.engine.fill.JRFillFrame.prepare(JRFillFrame.java:217)   在net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:331)   在net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:384)   在net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:358)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2059)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:778)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:288)   在net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:151)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:939)   在net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:852)   在net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:87)   在net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)   在net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)   在net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)   在com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:891)   在org.openide.util.RequestProcessor $ Task.run(RequestProcessor.java:572)   在org.openide.util.RequestProcessor $ Processor.run(RequestProcessor.java:997)   打印未填写。尝试使用EmptyDataSource ...

我正在使用: Jaspersorf iReport Designer 5.5.1

1 个答案:

答案 0 :(得分:0)

我不理解语法" $ F {id_dataset} .equals($ F {id:dataset})"。

什么是" $ F {id:dataset}"。

如果您想使用if then else条件,请使用以下内容: -

column.equals("value") ?(Then) Column_Name : (Else) (Column_name)

$F{id_dataset}.equals( $F{id} )? $F{id} : $F{id_dataset}