简体   繁体   English

在JasperReport表达式中使用和/或

[英]using and/or in JasperReport expression

i want to use and/or in JasperReport expression i tried the following but it doesn't work: 我想使用和/或在JasperReport表达式中尝试以下操作,但不起作用:

($P{pId} == $F{id1}) or
($P{pId} == $F{id2} and F{return}=true)
? "good" : "bad"

but i am getting following exception: 但我得到以下异常:

Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@1c9f37d  net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed, calculator_report1_1318247835062_860381: 191: unexpected token: or @ line 191, column 144. 1 error      at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:88)     at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188)     at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:215)     at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:131)     at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:509)     at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)     at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

any ideas why i am getting this exception and how to solve it. 任何想法,为什么我得到此异常以及如何解决它。

and and or are not valid Java operators. andor不是有效的Java运算符。 JasperReports uses Java expressions. JasperReports使用Java表达式。 And since all Jasper parameters and fields are objects, I doubt you want to compare them with == . 而且由于所有Jasper参数和字段都是对象,所以我怀疑您想将它们与==进行比较。 Use equals instead. 请使用等于。

($P{pId}.equals($F{id1}) ||
 ($P{pId}.equals($F{id2}) && F{return}.booleanValue()))
? "good" : "bad"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM