gpt4 book ai didi

java - Jasper Reports 在迭代数组时打印参数

转载 作者:行者123 更新时间:2023-12-02 11:21:41 25 4
gpt4 key购买 nike

我正在打印一个表格(数组列表),其中一列将包含所有行的相同值,该值将作为参数传递给报告。我尝试迭代列表并打印如下参数,但没有成功。

        <staticText>
<reportElement style="table_CH" x="948" y="490" width="54" height="20" backcolor="#CCCCCC" uuid="5f8ded52-e8fd-4fd0-8ea3-2b0aaed76545"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="7" isBold="true" isItalic="true" isUnderline="false"/>
</textElement>
<text><![CDATA[Total from stock]]></text>
</staticText>
<componentElement>
<reportElement x="950" y="510" width="51" height="20" uuid="6dfca79b-f554-41e3-b7ca-c6694759debd">
<property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/>
</reportElement>
<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" printOrder="Vertical">
<datasetRun subDataset="dataset1" uuid="2f211526-7be4-45d9-a026-e542c773e07a">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{this_is_my_array_list})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="20" width="51">
<textField>
<reportElement x="0" y="0" width="51" height="20" uuid="db47b136-15c8-44aa-b694-d396043c2b82"/>
<textElement textAlignment="Center">
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[$P{this_is_my_constant_parameter_string}.toString())]]></textFieldExpression>
</textField>
</jr:listContents>
</jr:list>
</componentElement>

最佳答案

放置在列表中的元素在列表使用的子数据集的上下文中进行评估(在您的例子中,子数据集名为dataset1)。报告中定义的参数是主数据集的一部分,不会自动与子数据集共享。

如果需要在列表中显示报表参数,则必须在子数据集中定义一个参数,并将报表参数的值作为数据集运行的一部分传递给它。您可以对子数据集参数使用相同的名称或使用不同的名称(如下所示)。

类似这样的事情:

<subDataset name="dataset1" uuid="1a45bd64-6c6a-4b66-a676-db452e27f7a6">
<!-- subdataset parameter -->
<parameter name="this_is_my_subdataset_parameter"/>
...
</subDataset>
<!-- report parameter -->
<parameter name="this_is_my_constant_parameter_string"/>
...
<c:list>
<!-- pass the value to the subdataset parameter -->
<datasetRun subDataset="dataset1">
<datasetParameter name="this_is_my_subdataset_parameter">
<datasetParameterExpression><![CDATA[$P{this_is_my_constant_parameter_string}]]></datasetParameterExpression>
</datasetParameter>
...
</datasetRun>
<c:listContents>
<textField>
<reportElement/>
<!-- use the subdataset parameter in the list -->
<textFieldExpression><![CDATA[$P{this_is_my_subdataset_parameter}]]></textFieldExpression>
</textField>
...

关于java - Jasper Reports 在迭代数组时打印参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com