我的详细信息元素如下: -
<detail>
<band height="22" splitType="Stretch">
<textField isStretchWithOverflow="true">
<reportElement uuid="a59a8d47-59cb-490e-953d-d4b1e2af52c0" x="0" y="0" width="191" height="20"/>
<box leftPadding="5" rightPadding="5"/>
<textElement verticalAlignment="Middle">
<font fontName="ARIALUNI" size="10" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{key}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true">
<reportElement uuid="09798815-2a54-42db-963a-3f443a5fc1c2" x="191" y="0" width="500" height="20"/>
<box leftPadding="5" rightPadding="5"/>
<textElement verticalAlignment="Middle">
<font fontName="ARIALUNI" size="10" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{value}]]></textFieldExpression>
</textField>
</band>
</detail>
如果我设置band height =&#34; 30&#34;,则第二个值正确溢出,但同时对于没有溢出的行可以看到额外的空白区域。带高=&#34; 22&#34;,没有额外的空格,也没有溢出(这是一个要求)。因此,可以动态设置波段的高度,以便在发生溢出时高度增加,否则它(高度)保持较低的值(没有额外的空间)。
答案 0 :(得分:0)
这已经自动发生。如果乐队包含拉伸的内容,它也会拉伸以适应该内容。或者,正如JasperReports Ultimate Guide所说:
“当报表部分中存在可伸缩文本字段时,报表部分的高度 本身受到拉伸的影响。“
当您考虑填写报告时,这是有道理的。从理论上讲,您可以随时传递更长和更长的数据,从而使文本字段更加紧密。如果必须手动设置波段高度以适应这种情况,您将永远更新设计。
那么解决方案是什么?简单:在最小高度设计所有东西,根据需要设置伸展区域,不要担心带高。
您所看到的空白区域可能是由于设计中的空间在乐队结尾处保留的方式。在您的示例中,波段高度为22像素,但内容仅填充20像素的高度,在波段底部留下2像素的空白行。当您将波段高度增加到30像素而不增加内容的大小时(我假设是这种情况),您将创建10像素的空白区域。
您在设计中留下的空白区域将包含在已填充的报告中,对于每个乐队的实例重复,并且如果内容延伸,则仍包括在内。因此,在您的文本字段拉伸到30像素高之后,该带将拉伸到40像素以保留10个像素的空白区域。