JasperReports 4.5.0を使用してレポートを生成しています。html、csv、pdf、xls、doc などのさまざまな形式でレポートを生成しています。私のレポートの 1つには、col1、col2、col3、col4、col5、col6という 6 つの列があります。しかし、条件に基づいて、col4を非表示にしたい。このために、printWhenExpressionを使用しています。現在、条件に基づいて列を非表示にしていますが、問題はその列が占めるスペースが同じままであることです。
col3とcol5の間のこの空のスペースを削除するにはどうすればよいですか?
以下のコードは、私がどのように使用しているかを理解するためのものです。
<staticText>
<reportElement x="500" y="0" width="0" height="20" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true">
<printWhenExpression><![CDATA[$P{routeType}==Boolean.FALSE]]></printWhenExpression>
</reportElement>
<box>
<topPen lineWidth="0.25"/>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Col4]]></text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="500" y="0" width="0" height="20" isRemoveLineWhenBlank="true" isPrintWhenDetailOverflows="true">
<printWhenExpression><![CDATA[$P{routeType}==Boolean.FALSE]]></printWhenExpression>
</reportElement>
<box>
<leftPen lineWidth="0.25"/>
<bottomPen lineWidth="0.25"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{col4}]]></textFieldExpression>
</textField>
このフィールドは、routeType 値が false の場合にのみ出力されます。それ以外の場合は、空白の列も削除する必要があります。