AFIK您不能在jr:tableFooter
上添加printWhenExpression
接近您尝试实现的唯一解决方案是利用textFields的溢出能力。 (不考虑那个帖子阐述的JasperReport或JasperPrint在Java解决方案)
的方法是设置jr:tableFooter
1的高度,使用textField
与身高1,您printWhenExpression
并选择“溢出拉伸”
例
<jr:tableFooter height="1" rowSpan="1">
<textField isStretchWithOverflow="true" isBlankWhenNull="false">
<reportElement key="" x="0" y="0" width="90" height="1" isRemoveLineWhenBlank="true" uuid="9d1ad772-024d-4642-84b2-68654bf3752c">
<printWhenExpression><![CDATA[MyExpression]]></printWhenExpression>
</reportElement>
<textFieldExpression><![CDATA["MyText"]]></textFieldExpression>
</textField>
</jr:tableFooter>
这将接近您想要的设计,如果没有文本框的高度将只有1,如果文本,它会显示所有文本。
不过,我个人不喜欢它,因为在IDE设计视野不会都看得到,我会考虑使用其他方法如textField
使用float下表,groupFooter
或更改为正常报表,而不是JR的:表。
@AlexK我正在使用Jaspersoft Studio,并希望Studio解决方案超过手动XML编辑(如果可能),因此标签。 – Kromster
Jaspersoft Studio只是一个IDE,该解决方案不依赖于IDE –
@AlexK解决方案在这个IDE中将更加有利。特别是如果在这个IDE中进一步编辑不会与它冲突或破坏它。 – Kromster