我找不到在报告生成期间创建变量并修改它的方法。
我已经声明了一个整数变量:
<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 的值?