我的问题是,即使该线是空白的,它仍然占据了乐队高度的空间,因此在下一个乐队之前存在比通常更大的间隙。
我的jasper文件中的乐队如下所示:
<band height="30" splitType="Stretch">
<staticText>
<reportElement uuid="274e9a4d-939e-46f6-8508-52ebc9051180" x="0" y="10" width="515" height="20" isRemoveLineWhenBlank="true" forecolor="#111B3F">
<printWhenExpression><![CDATA[$F{projects_count} != "0"]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="Arial Black" size="14" pdfFontName="jasper/fonts/ARIBLK.TTF"/>
</textElement>
<text><![CDATA[Project experience]]></text>
</staticText>
</band>
这里我有文本staticText,只应在<![CDATA[$F{projects_count} != "0"]]>
时显示。这有效。在reportElement上,我还设置了isRemoveLineWhenBlank="true"
由于高度设置为30,它仍占用我的报告中的空间,我似乎无法弄清楚如何不仅不显示文本而且如果不符合某些条件也会删除带
答案 0 :(得分:6)
Hendri - 我知道你在乐队的文本字段中设置了Print When表达式吗?改为为整个细节带设置Print When表达式。
<band height="30">
<printWhenExpression><![CDATA[$F{projects_count} != "0"]]></printWhenExpression>
<textField> {... etc}
答案 1 :(得分:0)
我发布后立即找到了解决方案。
它实际上有效,但因为我的高度为30,而我的staticText从y = 10开始只有20的高度,所以有10个像素(y = 0-9)不会被删除。我通过将高度更改为20并将y更改为0来修复此问题:
<band height="20" splitType="Stretch">
<staticText>
<reportElement uuid="274e9a4d-939e-46f6-8508-52ebc9051180" x="0" y="0" width="515" height="20" isRemoveLineWhenBlank="true" forecolor="#111B3F">
<printWhenExpression><![CDATA[$F{projects_count} != "0"]]></printWhenExpression>
</reportElement>
<textElement verticalAlignment="Top">
<font fontName="Arial Black" size="14" pdfFontName="jasper/fonts/ARIBLK.TTF"/>
</textElement>
<text><![CDATA[Project experience]]></text>
</staticText>
</band>