Jasper reports 在打印表达式时如何链接到“this”文本字段?

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

我想更改大量字段的可见性(30个或更多…)

是否可以在字段表达式中引用此,或类似的内容

例如,我有许多这样的数字字段:

<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>