iReport に 3 つのフィールド (A、B、C) を持つテーブルがあります。フィールドCがnullでない場合、行を印刷します。たとえば、データ ソースに 2 つのレコードがあるとします。
A = 1 番目、B = 2 番目、C = 3 番目
A = 上、B = 下、C = NULL
テーブルには最初の行のみが含まれている必要があります。
この式を各セルに挿入しようとしました(「式を印刷する」プロパティで):
!$F{C}.equals(null)
しかし、この方法では、結果として 2 番目の行は空になります (ただし表示されます)。
編集:最初の回答(現在は消去)の後、表の列は次のようになります。
<jr:column ...>
<jr:columnHeader ...>
<staticText>
<reportElement .../>
<text><![CDATA[ID]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell ...>
<textField isBlankWhenNull="false">
<reportElement ... isRemoveLineWhenBlank="true">
<printWhenExpression><![CDATA[$F{ID}!=null]]></printWhenExpression>
</reportElement>
<textFieldExpression><![CDATA[$F{ID}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
<jr:column ...>
<jr:columnHeader ...>
<staticText>
<reportElement .../>
<text><![CDATA[CITY]]></text>
</staticText>
</jr:columnHeader>
<jr:detailCell ...>
<textField isBlankWhenNull="false">
<reportElement ... isRemoveLineWhenBlank="true">
<printWhenExpression><![CDATA[$F{ID}!=null]]></printWhenExpression>
</reportElement>
<textFieldExpression><![CDATA[$F{CITY}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
データ ソースは xml ファイルです。私も試してみましisBlankWhenNull="true"
たが、変化はありません。結果の画面は次のとおりです。