ручное приращение переменной
Я не могу найти способ просто создать переменную и изменить ее во время генерации отчета.
Я объявил целочисленную переменную:
<variable name="my_counter" class="java.lang.Integer" calculation="System">
<initialValueExpression><![CDATA[new Integer(0)]]></initialValueExpression>
</variable>
Кажется, это работает, и я могу напечатать его значение без проблем. Но я хочу увеличить это значение во время генерации отчета: когда XML (источник данных для отчета) содержит определенные параметры, я хочу увеличить значение (my_counter ++).
Чего я хочу достичьв псевдокоде:
<, Предварительно><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>
Ожидаемый результат для XML-файла, содержащего бананы, яблоки и апельсины, будет:
1. The XML contains <bananas>
2. The XML contains <apples>
3. The XML contains <oranges>
Я пробовал это, нотекущий результат выглядит больше так:
0. The XML contains <bananas>
0. The XML contains <apples>
0. The XML contains <oranges>
Так что кажется, что переменнаяmy_counter
не изменяется Почему? Как я могу изменить его значение для каждого отображаемого textField?