我正在使用Jaspersoft Studio开发一些报告.
我有一个应该接受REST查询的Web应用程序,并将它们转换为已编译的报告.
所以我有一些JasperReports罐子包括:
问题是,当我编译我的报告并从Jaspersoft Studio运行时,它运行正常.
但是当我从我的Web应用程序编译并运行它时,它会抛出异常:
net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : CONCATENATE($V{startString}, " - ", $V{endString})
at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:244)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)
at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)
...
Caused by: net.sf.jasperreports.engine.JRRuntimeException: Function CONCATENATE not found
Run Code Online (Sandbox Code Playgroud)
当我CONCATENATE在报告中更改我的呼叫时,它工作正常.
所以这给我留下了一个解决方案,我错过了一个JasperReports罐子,但是哪个?
使用文本字段值编辑器,我添加一个带有条件的文本到文本字段(注意 if 是使用 JasperSoft studio 的字段编辑器构建的,因此代码 IF(...) 是自动生成的,我只给出了值“pippo”并且“冥王星”)
"Some value" +IF(true,"pippo","pluto")
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用。从我的代码调用报告时出现此错误:
net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The method IF(boolean, String, String) is undefined for the type
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激