Jasper字符串函数方法未定义的错误 [英] Jasper string functions method undefined error

查看:630
本文介绍了Jasper字符串函数方法未定义的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用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屋!

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