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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage