用户定义的变量在jasper

时间:2015-04-22 14:01:02

标签: java jasper-reports

我尝试在jasper报告中使用变量。我创建了一个列表组件,如下所示。

<componentElement>
                <reportElement x="0" y="0" width="426" height="50" uuid="a99e79ba-74a6-4224-a1e5-d8b8d557a42f"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
                    <datasetRun subDataset="dataset2" uuid="61554b87-1110-4c24-848a-c74c83ca33aa">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"))]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="50" width="426"/>
                </jr:list>
</componentElement>

对于列表数据源,我添加了三个元素(“布宜诺斯艾利斯”,“科尔多瓦”,“拉普拉塔”)。然后我在数据集中创建一个变量,如

<subDataset name="dataset2" uuid="c2f92ca6-ab45-4b91-89f6-2ca7a4c80d4e">
        <variable name="variable1" class="java.lang.String">
            <variableExpression><![CDATA["Variable Value";System.out.println("Variable")]]></variableExpression>
            <initialValueExpression><![CDATA["Initial Value";System.out.println("Initial")]]></initialValueExpression>
        </variable>
</subDataset>

当我在控制台中打印时,输出为

Initial 
Variable 
Variable 
Variable 
Variable 
Variable 
Variable

似乎变量是针对列表的每次迭代执行的。但我想知道为什么变量执行每次迭代两次(3 X 2)以及如何防止这种情况?当我试图将值放入列表或想要附加StringBuilder时,问题让我头疼不已。

非常感谢任何帮助。

0 个答案:

没有答案