【发布时间】:2012-01-09 22:51:31
【问题描述】:
我今天在 iReport 中发现,我无法使用通常有效的 Java 语法设置 String[] 的初始值表达式,例如:
private String[] fruitNames = new String[] {"Apple", "Banana"};
将其外推到 iReport 变量中就像这样简单(我认为):
名称:fruitNames
变量类:java.lang.String[]
计算:没有
重置类型:报告
增量类型:无
初始值表达式:new String[]{"Apple", "Banana"}
编译我的报告模板时出现错误:
编译异常:com.jaspersoft.ireport.designer.compiler.ErrorsCollector@683896bd >net.sf.jasperreports.engine.JRException:编译报告表达式时遇到错误 c>lass 文件:org.codehaus.groovy.control。 MultipleCompilationErrorsException:启动失败:>calculator_Fruits_1326149102402_537017:281:意外令牌:Apple @ 第 281 行,第 55 列。>1 错误
在用于设置初始值的代码编辑器中,我注意到解析器用红色为大括号 {} 下划线。这是有道理的,因为 iReport 将这些大括号解释为参数、字段或变量标识符。所以我知道冲突可能存在的地方,但是有谁知道在 Initial Value Expression 字段中初始化 String[] 的正确语法吗?
注意:我只是通过在 Scriptlet 中设置值来解决这个问题,但我真的很想知道正确的语法(如果存在)。
【问题讨论】:
-
您可以将报告的语言更改为
Java(也许现在是Groovy)。您可以尝试在String.split(String delimiter)方法的帮助下初始化数组 -
只是想知道,使用String数组的原因是什么?
标签: variables jasper-reports expression ireport