我想更改大量字段的可见性(30或更多......)
是否可以在字段表达式中引用this
,或类似的东西?
例如,我有很多这样的数字字段:
<textField pattern="#,##0.00#">
<reportElement x="329" y="4" width="49" height="18">
<printWhenExpression><![CDATA[$F{myNumeric}>0]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Right">
<font fontName="DejaVu Serif"/>
</textElement>
<textFieldExpression><![CDATA[$F{myNumeric}]]></textFieldExpression>
</textField>
我可以将printWhenExpression
更改为这样的内容吗?
this.field.getValue()>0 //field is the textField
这是可能的还是原则上不可能?也许有实用类?
答案 0 :(得分:2)
您可以不直接在printWhenExpression
唯一&#34;类似&#34;您可以使用的方法是,当您不想显示textField设置这两个属性时返回null
值:
isRemoveLineWhenBlank ,如果为空则删除
与
isBlankWhenNull ,如果null替换为空字符串
示例(如果$F{myNumeric}<0
<textField isBlankWhenNull="true" pattern="#,##0.00#">
<reportElement x="329" y="4" width="49" height="18" isRemoveLineWhenBlank="true"/>
<textElement textAlignment="Right">
<font fontName="DejaVu Serif"/>
</textElement>
<textFieldExpression><![CDATA[$F{myNumeric}>0?$F{myNumeric}:null]]></textFieldExpression>
</textField>
向数据源添加一些逻辑(查询/自定义),如果null
返回<0
值,则表达式中不需要三元运算符。
注意: isRemoveLineWhenBlank
如果位置类型为float