Jasper 字符串函数方法未定义错误
Jasper string functions method undefined error
使用 Jasper Reports 5.6.1。向以前工作的文本字段 jrxml 添加了一些文本函数(只是想在超过 75 个字符时截断)。适用于 iReport Studio,但不适用于 Java。
<textFieldExpression><![CDATA[IF(LEN($F{AccountName})<75,$F{AccountName},LEFT($F{AccountName},75)+"...")]]></textFieldExpression>
错误信息:
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
)
我检查了 jasperreports-5.6.1.jar 文件中的包,包括函数包。详尽的网络搜索一无所获。可能是什么?
我有类似的错误信息。你在哪里可以解决这个问题?在 Jaspersoft Studio 6.0.1 中工作正常,但在使用 Java:
编译时会抛出此错误
未定义方法 IF(boolean, BigDecimal, BigDecimal) Blank_A4_1_1423164610392_674232
更新:我能够通过在我的类路径中包含函数 jar 来解决这个问题。看看这是否适合你。请参阅 jasperreports-functions-5.6.1.jar 在 http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.6.1/
使用 GlassFish 时,请验证您的生产服务器上是否拥有所有 jasper 库。它们应该在 glassfish/domains/domain1/lib/ext 之下。如果罐子不存在(或其中一些,例如字体或其他一些非必需的库),您可能会遇到您描述的行为。
使用 Jasper Reports 5.6.1。向以前工作的文本字段 jrxml 添加了一些文本函数(只是想在超过 75 个字符时截断)。适用于 iReport Studio,但不适用于 Java。
<textFieldExpression><![CDATA[IF(LEN($F{AccountName})<75,$F{AccountName},LEFT($F{AccountName},75)+"...")]]></textFieldExpression>
错误信息:
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
)
我检查了 jasperreports-5.6.1.jar 文件中的包,包括函数包。详尽的网络搜索一无所获。可能是什么?
我有类似的错误信息。你在哪里可以解决这个问题?在 Jaspersoft Studio 6.0.1 中工作正常,但在使用 Java:
编译时会抛出此错误未定义方法 IF(boolean, BigDecimal, BigDecimal) Blank_A4_1_1423164610392_674232
更新:我能够通过在我的类路径中包含函数 jar 来解决这个问题。看看这是否适合你。请参阅 jasperreports-functions-5.6.1.jar 在 http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.6.1/
使用 GlassFish 时,请验证您的生产服务器上是否拥有所有 jasper 库。它们应该在 glassfish/domains/domain1/lib/ext 之下。如果罐子不存在(或其中一些,例如字体或其他一些非必需的库),您可能会遇到您描述的行为。