我希望有一对TextFields,具体取决于值。并且应根据空白区域调整“y”值。
当值为"0"
时,我想隐藏TextField。
即。如果参数staticText
等于textField
并且蓝色值向上移动,我想隐藏red
和"0"
,在下面的jrxml代码中:< / p>
<staticText>
<reportElement x="100" y="30" width="100" height="30"/>
<text><![CDATA[Red items:]]></text>
</staticText>
<textField>
<reportElement x="200" y="30" width="40" height="30"/>
<textFieldExpression>
<![CDATA[$P{red}]]>
</textFieldExpression>
</textField>
<staticText>
<reportElement x="100" y="60" width="100" height="30"/>
<text><![CDATA[Blue items:]]></text>
</staticText>
<textField>
<reportElement x="200" y="60" width="40" height="30"/>
<textFieldExpression>
<![CDATA[$P{blue}]]>
</textFieldExpression>
</textField>
输出示例:
//if blue = 3 and red = 2 if blue = 3 and red = 0 if blue = 0 and red = 2
Red items: 2 Blue items: 3 Red items: 2
Blue items: 3
这些TextFields将放在我的报告的末尾。我怎么能这样做?
答案 0 :(得分:11)
<reportElement ...>
<printWhenExpression><![CDATA[$P{red} == 0]]></printWhenExpression>
</reportElement>
您可以使用iReport以愉快的用户界面修改此内容。
答案 1 :(得分:1)
这样,不,我不确定是否可能。
有一个名为Remove Link When Blank
的选项,但只有在您想删除整行时才有效。在这里,您要删除特定列中的一行。
在这种情况下,我建议使用crosstab
或CrossTables功能。
给列组赋值X.(假设X是列号) 并为Row Group提供颜色字段的值,从这里您可以动态更改标签,如下所示:
$F{color}==null?"": ($F{color}.equals("RED")?"Red Items":"Blue Items")
答案 2 :(得分:0)
你可以像这样使用
Declare RED as [class="java.lang.Number"]
打印时
$P{red}.intValue() == 0 ? null : $P{red}.intValue()
并使用
启用字段为空时为空白选项textField isBlankWhenNull="true">
<reportElement x="100" y="30" width="100" height="30" isRemoveLineWhenBlank="true"/>