Jasper reports 在打印表达式时如何链接到“this”文本字段?
我想更改大量字段的可见性(30个或更多…) 是否可以在字段表达式中引用此,或类似的内容 例如,我有许多这样的数字字段:Jasper reports 在打印表达式时如何链接到“this”文本字段?,jasper-reports,Jasper Reports,我想更改大量字段的可见性(30个或更多…) 是否可以在字段表达式中引用此,或类似的内容 例如,我有许多这样的数字字段: <textField pattern="#,##0.00#"> <reportElement x="329" y="4" width="49" height="18"> <printWhenExpression><![CDATA[$F{myNumeric}>0]]></printWhenExpr
<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>
这是可能的还是原则上不可能的?可能有实用程序类?您可以不在按下时直接在
打印中输入文本字段及其值
您可以使用的唯一“类似”方法是,当您不想显示设置以下两个属性的文本字段时,返回null
值:
在空白时删除,如果为空则删除
与
为blankwhennull,如果为null,则替换为空字符串
示例(如果$F{myNumeric},则不会显示下面的文本字段)
向数据源添加一些逻辑(查询/自定义),如果this.field.getValue()返回null
值>0
-伪代码表达式中的这是什么?您的问题不清楚。我指的是这个文本字段。表达式调用的字段。我认为,如果不更改引擎的源代码,就不可能编写您想要的内容好处-我不需要为每个字段设置printWhenExpression
,例如:myNumeric-$F{myNumeric}>0,myNumeric2-$F{myNumeric2}>0,所有字段只有一个表达式。您必须更改JR源代码。或者您可以使用JR API
this.field.getValue()>0 //field is the textField
<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>