我有一个包含子数据集的 JR 报告:
<subDataset name="dataset4">
<parameter name="collateralizedLimitsAndExposureList" class="java.lang.List" isForPrompting="false"/>
<field name="exposureList" class="java.util.List"/>
<field name="limit" class="java.lang.Object"/>
</subDataset>
我使用一个列表组件来迭代这个数据集4。
主列表现在有 4 个元素可以正确显示。但是每个列表项都包含这个具有许多元素的曝光列表。
我也想显示它,但不知道如何在第二个列表上进行迭代。
<componentElement>
<reportElement positionType="Float" x="0" y="62" width="495" height="30"/>
<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="dataset4">
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{exposureList})]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="30" width="495">
<frame>
<reportElement positionType="Float" x="0" y="0" width="495" height="30"/>
<textField isBlankWhenNull="true">
<reportElement style="normal_field_bold" x="5" y="0" width="50" height="10"/>
<textElement>
<font size="6" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{limit}.getLimitSymbol()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field_bold" x="420" y="2" width="70" height="10"/>
<textElement textAlignment="Right">
<font size="6" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{limit}.getAvailableLimit()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="5" y="16" width="58" height="10"/>
<textElement>
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{exposureList}.get(0).getExternalReferenceDisplayString()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="63" y="16" width="70" height="10"/>
<textElement>
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{exposureList}.get(0).getObj()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="154" y="16" width="50" height="10"/>
<textElement>
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{exposureList}.get(0).getCcy()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="205" y="16" width="70" height="10"/>
<textElement textAlignment="Right">
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{exposureList}.get(0).getNrv()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="276" y="16" width="70" height="10"/>
<textElement textAlignment="Right">
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{exposureList}.get(0).getExp()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field_bold" x="347" y="2" width="70" height="10"/>
<textElement textAlignment="Right">
<font size="6" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{limit}.getIssuedLimit()]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" isBlankWhenNull="true">
<reportElement style="normal_field" x="154" y="2" width="50" height="10"/>
<textElement>
<font size="6"/>
</textElement>
<textFieldExpression><![CDATA[$F{limit}.getCcy()]]></textFieldExpression>
</textField>
</frame>
</jr:listContents>
</jr:list>
</componentElement>
所以通过这种方式,我有一个包含 4 个元素的列表和子列表中的第一个元素。
- JasperReports中是否有可以在列表的 get 方法中使用的内置变量?
- 我知道这样它只在主列表上迭代。顺便说一句,我怎样才能做第二个清单?