我尝试在文本字段中使用表达式,语言设置为groovy,我输入的是一个非常简单的if-else语句
if ($P{P_TFE_TYPE} == null || $P{P_TFE_TYPE} == ""){
"abc"
}else{
"def"
}
但这已经抛出异常作为
计算器_RPT0010_1542190583832_137322:472:意外标记:if@第472行,第22列。
1错误
.
在net.sf.jasperreports.compilers.jrgovycompiler.compileUnits(jrgovycompiler.java:109)
位于net.sf.jasperreports.engine.design.jractcompiler.compileReport(jractcompiler.java:203)
在com.jaspersoft.studio.editor.preview.view.control.ReportController.compilejsperdesign(ReportController.java:481)上
在com.jaspersoft.studio.editor.preview.view.control.ReportController.access$8(ReportController.java:466)
在com.jaspersoft.studio.editor.preview.view.control.ReportController$1.run(ReportController.java:369)
位于org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
计算器_RPT0010_1542190583832_137322:472:意外标记:if@第472行,第22列。
位于org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
位于org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:150)
位于org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:120)
位于org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:132)
位于org.codehaus.groovy.control.SourceUnit.addError(SourceUnit.java:360)
位于org.codehaus.groovy.antlr.antlrsparserplugin.transformcstinoast(antlrsparserplugin.java:145)
位于org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:237)
位于org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:167)
位于org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:931)
位于org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
位于org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
在net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:102)上
... 还有6个
有什么问题?
“{”处缺少EOF
如果我用这样的表达
($P{P_TFE_TYPE} == null || $P{P_TFE_TYPE} == "")?"abc":"def"
它可以编译,一切按预期运行。
我知道我可以使用?:运算符,但不想把它当作我的if.。否则,如果条件在现实中非常冗长和复杂,并且很难看到是否使用十进制运算符?: