JasperReports:未找到CONCATENATE函数

csa*_*bee 8 java groovy jasper-reports

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

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

问题是,当我编译我的报告并从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罐子,但是哪个?

Ale*_*x K 12

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

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

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

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

<repositories>
    <repository>
        <id>jr-ce-releases</id>
        <url>http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>5.2.0</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.0.1</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-functions</artifactId>
        <version>5.2.0</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

net.sf.jasperreports.jasperreports-功能:5.2.0神器取决于乔达-time.joda时间:2.1神器-你也应该添加到类路径中乔达时间,2.1.jar


笔记:

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