2013-10-18 59 views
7

我正在開發一些報告,使用Jaspersoft Studio
我有一個應用程序接受REST查詢,並將它們轉換爲編譯報告。
所以我有一些JasperReports的罐包括了:JasperReports:未找到CONCATENATE功能

  • Groovy的全2.0.1.jar
  • 的iText-2.1.7.js2.jar
  • JasperReports的-5.2.0。罐子

問題是,當我編譯我的報告,並從JasperSoft這個工作室運行,它工作正常。
但是當我編譯和我的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 

當我改變我CONCATENATE電話在正常工作的報告。

所以這給我留下了一個解決方案,我錯過了其中一個JasperReports罐子,但是哪一個?

+0

它是文本功能(常規) – csabee

回答

9

您還應該將jasperreports-functions-5.2.0.jar添加到您的類路徑中。

這個庫包含有CONCATENATE功能net.sf.jasperreports.functions.standard.TextFunctions類。

您可以在http://jaspersoft.artifactoryonline.com/jaspersoft/jr-ce-releasesMaven存儲庫中找到此工件。

從我的測試的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-功能:5.2.0神器取決於喬達-time.joda時間: 2.1神器 - 你也應該添加到類路徑中喬達時間,2.1.jar


注:

可以在Custom Functions in Report Expressions文章

+1

從最近的其他經驗中尋找更多的信息:這個問題也是日期時間的功能密切相關好。也許有人應該嘗試將日期 - 時間函數關係問題鏈接到這篇文章。在JasperStudio中嘗試使用TODAY()或NOW()會得到相同的結果,但不會將這些庫添加到類路徑中。 –

+0

我對MONTH()函數有同樣的問題,這個解決方案只爲我添加'jasperreports-functions'並將'groovy'改爲'groovy-all'。我不知道這最後是否需要,但我的應用程序運行平穩。非常感謝你@AlexK –

+0

歡迎你:) –