2

我正在使用 iReports 3.7.6 版。我通过使用数据集将其与查询相关联来动态生成表。

当查询返回记录时,我会打印一个包含所有记录的表。

但是,当查询返回零记录时,我需要显示一个空表。但我得到的只是一条水平线。

以下是 jasper XML 文件的一部分:

<componentElement>
    <reportElement x="131" y="11" width="424" height="24"/>
    <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="pmDataSet">
            <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
        </datasetRun>
        <jr:listContents height="24" width="424">
            <textField>
                <reportElement x="0" y="0" width="134" height="22"/>
                <box>
                    <topPen lineWidth="0.5"/>
                    <rightPen lineWidth="0.5"/>
                </box>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{COLUMN_1}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="134" y="0" width="120" height="22"/>
                <box>
                    <topPen lineWidth="0.5"/>
                    <rightPen lineWidth="0.5"/>
                </box>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA[($F{COLUMN_2}) ? $F{COLUMN_2} : "(Blank)"]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="254" y="0" width="170" height="22"/>
                <box>
                    <topPen lineWidth="0.5"/>
                    <rightPen lineWidth="0.5"/>
                </box>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{COLUMN_3}]]></textFieldExpression>
            </textField>
        </jr:listContents>
    </jr:list>
</componentElement>

在这里,我使用了“列表”元素 (jr:list) 并将其与数据集相关联。

4

1 回答 1

2

据我所知,这不能用一张桌子来实现。但是,仍然有解决方法。

使用 aSubreport而不是表格。使用表格完成的所有事情也可以使用子报表完成。您唯一需要照顾的就是这处房产。

When No Data

将其设置为

  • All Sections No Detail: 只显示头信息
  • No Data Section:以便可以在No Data乐队中显示自定义消息。

希望这可以帮助。

于 2013-01-05T07:01:21.123 回答