Jasper字符串函数方法未定义的错误 [英] Jasper string functions method undefined error
问题描述
使用Jasper Reports 5.6.1。将一些文本函数添加到以前工作的文本字段jrxml(如果超过75个字符,只需要截断)。适用于iReport Studio,但不适用于Java。
< textFieldExpression><![CDATA [IF(LEN($ F {帐户名})< 75,$ F {帐户名},LEFT($ F {帐户名},75)+ ...)]] GT;< / textFieldExpression>
错误讯息:
尝试从Jasper服务中获取HTML输出时发生错误(编译报表表达式类文件时遇到错误:
1.对于ICC_1422636250096_198427 $ b类型,方法LEN(字符串)未定义(((java.lang.String)field_AccountName.getValue()))< 75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang.String)字符串)field_AccountName.getValue()),75)+...); // $ JR_EXPR_ID = 9 $
-
2.方法LEFT(String,int)是未定义为类型ICC_1422636250096_198427
value = IF(LEN((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT (((java.lang.String)field_AccountName.getValue()),75)+...); // $ JR_EXPR_ID = 9 $
< - >
3.对于类型ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getOldValue()))< 75((java .lang.String)field_AccountName.getOldValue()),LEFT(((java.lang.String中)field_AccountName.getOldValue()),75)+ ...); // $ JR_EXPR_ID = 9 $
< - >
4.对于类型ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getOldValue()))<75的方法LEFT(String,int)< (java.lang.String中)field_AccountName.getOldValue()),LEFT(((java.lang.String中)field_AccountName.getOldValue()),75)+ ...); // $ JR_EXPR_ID = 9 $
< - >
5.对于类型ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))< 75((java .lang.String)field_AccountName.getValue()),LEFT(((java.lang.String中)field_AccountName.getValue()),75)+ ...); // $ JR_EXPR_ID = 9 $
< - >
6.对于类型ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75的方法LEFT(String,int)未定义(java.lang.String中)field_AccountName.getValue()),LEFT(((java.lang.String中)field_AccountName.getValue()),75)+ ...); // $ JR_EXPR_ID = 9 $
< - >
6错误
)
我在jasperreports-5.6.1中检查了软件包。 jar文件,包含函数包。彻底的网络搜索没有任何结果。它可能是什么?
我有类似的错误信息。你能在哪里解决这个问题?在Jaspersoft Studio 6.0.1中工作正常,但在编译w / Java时抛出:
$ b 类型未定义IF(布尔型,BigDecimal,BigDecimal)方法Blank_A4_1_1423164610392_674232
更新:我可以通过在我的类路径中包含函数jar来解决此问题。看到这是否适合你。请参阅 http:// sourceforge中的jasperreports-functions-5.6.1.jar .net / projects / jasperreports / files / jasperreports / JasperReports%205.6.1 /
Using Jasper Reports 5.6.1. Added some text functions to a previously working text field jrxml (just want to truncate if longer than 75 chars). Works in iReport Studio, but not in Java.
<textFieldExpression><![CDATA[IF(LEN($F{AccountName})<75,$F{AccountName},LEFT($F{AccountName},75)+"...")]]></textFieldExpression>
Error message:
Error occured while trying to fetch the HTML Output from the Jasper Service (Errors were encountered when compiling report expressions class file:
1. The method LEN(String) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang.String)field_AccountName.getValue()),75)+"..."); //$JR_EXPR_ID=9$
<->
2. The method LEFT(String, int) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang.String)field_AccountName.getValue()),75)+"..."); //$JR_EXPR_ID=9$
<-->
3. The method LEN(String) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getOldValue()))<75,((java.lang.String)field_AccountName.getOldValue()),LEFT(((java.lang.String)field_AccountName.getOldValue()),75)+"..."); //$JR_EXPR_ID=9$
<->
4. The method LEFT(String, int) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getOldValue()))<75,((java.lang.String)field_AccountName.getOldValue()),LEFT(((java.lang.String)field_AccountName.getOldValue()),75)+"..."); //$JR_EXPR_ID=9$
<-->
5. The method LEN(String) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang.String)field_AccountName.getValue()),75)+"..."); //$JR_EXPR_ID=9$
<->
6. The method LEFT(String, int) is undefined for the type ICC_1422636250096_198427
value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang.String)field_AccountName.getValue()),75)+"..."); //$JR_EXPR_ID=9$
<-->
6 errors
)
I checked packages in jasperreports-5.6.1.jar file, includes functions package. Exhaustive web search turned up nothing. What could it be?
I have a similar error message. Where you able to resolve this? Works fine in Jaspersoft Studio 6.0.1, but throws this when compiling w/ Java:
The method IF(boolean, BigDecimal, BigDecimal) is undefined for the type Blank_A4_1_1423164610392_674232
Update: I was able to solve this by including the functions jar on my classpath. See that if that works for you. See jasperreports-functions-5.6.1.jar at http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.6.1/
这篇关于Jasper字符串函数方法未定义的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!