JasperReports:未找到CONCATENATE函数

我正在使用Jaspersoft Studio开发一些报告。
我有一个应该接受REST查询的Web应用程序,并将它们转换为已编译的报告。
所以我有一些JasperReportsjar子包括:

  • Groovy的全2.0.1.jar
  • iText的,2.1.7.js2.jar
  • JasperReports的-5.2.0.jar

问题是,当我编译我的报告并从Jaspersoft Studio运行时,它运行正常。
但是当我从我的Web应用程序编译并运行它时,它会抛出exception:

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 

当我在报告中更改我的CONCATENATE调用时,它可以正常工作。

所以这给我留下了一个解决方案,我错过了一个JasperReportsjar子,但哪一个?

您还应该将jasperreports-functions-5.2.0.jar添加到类路径中。

该库包含带有CONCATENATE函数的net.sf.jasperreports.functions.standard.TextFunctions类。

您可以在http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases Maven存储库中找到此工件。

来自我的测试pom.xml的片段:

   jr-ce-releases http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases     net.sf.jasperreports jasperreports 5.2.0   org.codehaus.groovy groovy-all 2.0.1   net.sf.jasperreports jasperreports-functions 5.2.0   joda-time joda-time 2.1   

net.sf.jasperreports.jasperreports-functions:5.2.0工件依赖于joda-time.joda-time:2.1工件 – 你还应该添加到类路径joda-time-2.1.jar


笔记:

您可以在“报表表达式 ” 中的“自定义函数”一文中找到更多信