使用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文件中检查了包,包含了函数包。穷举网络搜索没有任何结果。它可能是什么?
答案 0 :(得分:3)
我有类似的错误消息。你能在哪里解决这个问题?在Jaspersoft Studio 6.0.1中可以正常工作,但在编译w / Java时会抛出这个:
方法IF(boolean,BigDecimal,BigDecimal)未定义类型Blank_A4_1_1423164610392_674232
更新:我能够通过在类路径中包含jar函数来解决这个问题。看看,如果这对你有用。请参阅http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%205.6.1/
上的jasperreports-functions-5.6.1.jar答案 1 :(得分:0)
使用GlassFish时,请验证生产服务器上是否包含所有jasper库。它们应该在glassfish / domains / domain1 / lib / ext下。如果罐子不存在(或者其中一些,例如字体或其他非必需的lib),您可能会遇到您所描述的行为。