我正在使用 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) 并将其与数据集相关联。