function - Jasper 字符串函数方法未定义错误

标签 function jasper-reports

使用 Jasper 报告 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/

关于function - Jasper 字符串函数方法未定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243558/

相关文章:

java - 打印jasper文件时执行报告的SQL语句出错

function - 带有 IF 语句的向量函数的 MATLAB 返回

jQuery 在回调中获取源元素

java - HTML src 上的报告 jrxml 内的 JasperReport 图像丢失?

jasper-reports - 如何在 "single textfield"中的 jasper 报告 5.5.1 中显示 y 的页面 x 其给出的对齐问题?

java - JasperReports 服务器 : Getting "java.util.GregorianCalendar not configured" error when using java. util.Calendar 在 scriptlet

rest - Jasper REST 传递集合作为参数

javascript - 访问函数 javascript

scala - 如何在 Scala 中定义函数的类型?

c++ - 当 strlen 用于无符号字符数组和有符号字符数组时发出警告