JasperReports:未找到 CONCATENATE 函数 [英] JasperReports: CONCATENATE function not found

查看:27
本文介绍了JasperReports:未找到 CONCATENATE 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm developing some reports with Jaspersoft Studio.
I have a web app that should accept REST queries, and turn them into compiled reports.
So I have some of the JasperReports jars included:

  • groovy-all-2.0.1.jar
  • iText-2.1.7.js2.jar
  • jasperreports-5.2.0.jar

问题是当我编译我的报告并从 Jaspersoft Studio 运行时,它工作正常.
但是当我从我的网络应用程序编译并运行它时,它会抛出异常:

Problem is that when I compile my report and run from the Jaspersoft Studio, it works fine.
But when I compile and run it from my web app, it throws the 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 调用时,它工作正常.

When I change my CONCATENATE call in the report it works fine.

所以这给我留下了一个解决方案,即我缺少一个 JasperReports 罐子,但是哪个?

So this leaves me with a solution that I'm missing one of the JasperReports jars, but which one?

推荐答案

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

You should also add jasperreports-functions-5.2.0.jar to your classpath.

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

This library contains net.sf.jasperreports.functions.standard.TextFunctions class with CONCATENATE function.

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

You can find this artifact at http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releases Maven repository.

我的测试片段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>

net.sf.jasperreports.jasperreports-functions:5.2.0 工件取决于 joda-time.joda-time:2.1 工件 - 您还应该添加到joda-time-2.1.jar

The net.sf.jasperreports.jasperreports-functions:5.2.0 artifact depends on joda-time.joda-time:2.1 artifact - you should also add to classpath the joda-time-2.1.jar

注意事项:

您可以在报表表达式中的自定义函数文章

这篇关于JasperReports:未找到 CONCATENATE 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆