Jasper reports 当关联查询没有记录时,在iReport中打印空表

Jasper reports 当关联查询没有记录时,在iReport中打印空表,jasper-reports,ireport,xmltable,Jasper Reports,Ireport,Xmltable,我正在使用iReports版本3.7.6。 我通过使用数据集将表与查询关联来动态生成表 当查询返回记录时,我得到一个包含所有记录的打印表 然而,当查询返回零条记录时,我需要显示一个空表。但我得到的只是一条水平线 以下是jasper XML文件的一部分: <componentElement> <reportElement x="131" y="11" width="424" height="24"/> <jr:list xmlns:jr="http:/

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


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

据我所知,这是无法用表实现的。但仍然有一个解决办法

使用子报表而不是表格。使用表完成的所有操作也可以使用子报表完成。你唯一需要照顾的就是这房子

无数据时

将其设置为

  • 所有部分无详细信息
    :仅显示标题信息
  • 无数据部分
    :以便可以在
    无数据
    波段中显示自定义消息

希望这有帮助

&&@noble bhaskar可能重复,所以您使用子报表而不是表组件?