如何使用表组件并将参数(Map)或变量作为数据源传递给表

时间:2012-07-09 07:29:42

标签: jasper-reports ireport

我使用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>

但是我只输出一行作为输出,如何将地图传递给表格,我犯了什么错误?请帮帮我。谢谢..

0 个答案:

没有答案