iReports バージョン 3.7.6 を使用しています。データセットを使用してクエリに関連付けることで、テーブルを動的に生成しています。
クエリがレコードを返すと、すべてのレコードを含むテーブルが印刷されます。
ただし、クエリがゼロ レコードを返す場合、空のテーブルを表示する必要があります。しかし、私は水平線だけを得ています。
以下はジャスパー 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) を使用し、それをデータ セットに関連付けました。