manuelles variables Inkrement
Ich kann nicht einfach eine Variable erstellen und während der Berichterstellung ändern.
Ich habe eine Ganzzahlvariable deklariert:
<variable name="my_counter" class="java.lang.Integer" calculation="System">
<initialValueExpression><![CDATA[new Integer(0)]]></initialValueExpression>
</variable>
Das scheint zu funktionieren und ich kann den Wert ohne Probleme ausdrucken. Ich möchte diesen Wert jedoch während der Berichterstellung erhöhen: Wenn das XML (die Datenquelle für den Bericht) bestimmte Parameter enthält, möchte ich den Wert erhöhen (my_counter ++).
Was ich erreichen willim Pseudocode:
<textField printWhenExpression="$P{BANANAS}!=null"> ($V{my_counter}++)+" The XML contains <bananas>" </textField>
<textField printWhenExpression="$P{APPLES}!=null"> ($V{my_counter}++)+" The XML contains <apples>" </textField>
<textField printWhenExpression="$P{GRAPES}!=null"> ($V{my_counter}++)+" The XML contains <grapes>" </textField>
<textField printWhenExpression="$P{ORANGES}!=null"> ($V{my_counter}++)+" The XML contains <oranges>" </textField>
Das erwartete Ergebnis für eine XML-Datei mit Bananen, Äpfeln und Orangen wäre:
1. The XML contains <bananas>
2. The XML contains <apples>
3. The XML contains <oranges>
Ich habe das versucht, aberdas aktuelle Ergebnis sieht eher so aus:
0. The XML contains <bananas>
0. The XML contains <apples>
0. The XML contains <oranges>
So scheint es, dass die Variablemy_counter
wird nicht geändert. Warum? Wie kann ich den Wert für jedes angezeigte Textfeld ändern?