我尝试在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时,问题让我头疼不已。
非常感谢任何帮助。