I discovered today in iReport that I cannot set the initial value expression of a String[] using normally valid Java syntax, such as:
private String[] fruitNames = new String[] {"Apple", "Banana"};
Extrapolating this into an iReport variable would be something as simple as this (I would think):
Name: fruitNames
VariableClass: java.lang.String[]
Calculation: Nothing
Reset Type: Report
IncrementType: None
Initial Value Expression: new String[]{"Apple", "Banana"}
Compiling my report template I get an error:
Compilation exceptions: com.jaspersoft.ireport.designer.compiler.ErrorsCollector@683896bd >net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions c>lass file: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: >calculator_Fruits_1326149102402_537017: 281: unexpected token: Apple @ line 281, column 55. >1 error
In the code editor for setting the initial value I notice that the parser underlines, in red, the curly braces {}. This makes sense because iReport interprets these braces as param, field, or variable identifiers. So I see where the conflict can exist, but does anyone know the proper syntax to use for initializing String[] in the Initial Value Expression field?
Note: I got around the issue by just setting the value in a Scriptlet, but I'm really curious to know the proper syntax, if it exists.
Java
(perhaps it is Groovy now). You can try to initialize the array with help ofString.split(String delimiter)
method – Alex K