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
笔记:
您可以在“报表表达式 ” 中的“自定义函数”一文中找到更多信
- 如何以os独立方式设置Gradle`options.bootClasspath`?
- 什么包做1)Java和2)Groovy自动导入?
- 使用Groovy进行Javagenerics和重载
- Spring Tool Suite(STS)3.5.0 – org.codehaus.groovy.eclipse在求解器中是未知的
- 当我的代码中没有实例化Java类时,是否可以使用Groovy覆盖Java类中的方法?
- 使用具有多对多关系的Grails’withCriteria函数重复的问题
- 如何在Groovy中创建XPath函数
- 我怎样才能应对“IllegalStateException:BeanFactory未初始化或已经关闭”?
- 从Java调用Groovy函数