我使用ireport 4.5.0中的表组件创建了表。我想在我的代码中通过map传递数据。所以我通过Dataset Run给出了数据源。 因为我已经通过给'连接/数据源exp','参数'和'参数映射exp'一直尝试,但我没有得到表。 我只得到一条线甚至没有空单元格。我在subataset中也创建了map参数,也在表格组件中,我无法猜出我错过了哪一步..
subDataset
<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>
但是我只输出一行作为输出,如何将地图传递给表格,我犯了什么错误?请帮帮我。谢谢..