我已经使用 ireport 4.5.0 中的表组件创建了表。我想在我的代码中通过 map 传递数据。所以我通过 Dataset Run 提供了数据源。在这一点上,我一直尝试通过给出“连接/数据源 exp”、“参数”和“参数映射 exp”,但我没有得到表格。我得到的只是一行,甚至没有空单元格。我也在子数据集和表格组件中创建了地图参数,我猜不出我错过了什么步骤。
子数据集
<subDataset name="Table Dataset 2">
<parameter name="Details" class="java.util.Map"/>
</subDataset>
表组件
<componentElement>
<reportElement key="table 1" style="table 1" x="0" y="0" width="555" height="230"/>
<jr:table 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="Table Dataset 2">
<datasetParameter name="Details">
<datasetParameterExpression><![CDATA[$P{Details}.get("Name")]]></datasetParameterExpression>
</datasetParameter>
</datasetRun>
<jr:column width="25">
<jr:detailCell style="table 1_TD" height="44" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="25" height="44"/>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<text><![CDATA[1]]></text>
</staticText>
</jr:detailCell>
</jr:column>
<jr:column width="255">
<jr:detailCell style="table 1_TD" height="44" rowSpan="1">
<staticText>
<reportElement x="0" y="0" width="255" height="44"/>
<box leftPadding="5"/>
<textElement verticalAlignment="Middle">
<font isStrikeThrough="false"/>
</textElement>
<text><![CDATA[Name]]></text>
</staticText>
</jr:detailCell>
</jr:column>
<jr:column width="275">
<jr:detailCell style="table 1_TD" height="44" rowSpan="1">
<textField isStretchWithOverflow="true">
<reportElement x="0" y="0" width="275" height="44"/>
<box leftPadding="5"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$P{Details}.get("Name")]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
我还尝试了数据集 Run as
<datasetRun subDataset="Table Dataset 2">
<parametersMapExpression><![CDATA[$P{Details}.get( "Name" )]]></parametersMapExpression>
</datasetRun>
和
<datasetRun subDataset="Table Dataset 2">
<parametersMapExpression><![CDATA[$P{Details}]]></parametersMapExpression>
</datasetRun>
和
<datasetRun subDataset="Table Dataset 2">
<parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
</datasetRun>
但是我只有一行作为输出,如何将地图传递给表格,我犯了什么错误?请帮助我。谢谢..