我正在使用JasperReports 4.5.0来生成报告。我正在生成不同格式的报告,如 html、csv、pdf、xls、doc。在我的一份报告中,我有 6 列说col1, col2, col3, col4, col5, col6。但根据我想隐藏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 时才会打印此字段。否则,它也应该删除带有空格的列。