如何为文本字段创建动态颜色?
How to create dynamic color for text field?
背景:Jaspersoft studio 6.2
如何根据表达式更改文本字段的前景色。
我如何应用表达式,使字体颜色(前景色)基于该字段中的值?我找不到任何地方来设置前景色 属性 的表达式。
你使用conditionalStyle,来实现这个
例子
<style name="myStyle" forecolor="#0000FF">
<conditionalStyle>
<conditionExpression><![CDATA[$F{myField}<0]]></conditionExpression>
<style forecolor="#CC0000"/>
</conditionalStyle>
</style>
然后把样式设置成textField
喜欢用的
<textField>
<reportElement style="myStyle" x="448" y="5" width="100" height="20" uuid="b75e4497-e952-4051-8640-2f6b498dd152"/>
<textFieldExpression><![CDATA["Hello world"]]></textFieldExpression>
</textField>
在 JasperSoft Studio 中,右键单击 大纲 中的样式以创建 "Conditional Style" 并在属性选项卡中设置属性
也许有一个选项:
您需要将 markup
设置为 style
。
然后在文本字段中使用表达式:
F{value1}=="GREEN"?$F{value1}:"<style backcolor='red'>"+$F{value1}+"</style>"
您还可以添加条件和设置多种颜色:
F{value1}=="GREEN"?"<style backcolor='green'>"+$F{value1}+"</style>":"<style backcolor='red'>"+$F{value1}+"</style>"
也许这对你有用。
另一种可能性是在您的文本字段中使用样式 属性 表达式:
<textField ...>
<reportElement ...>
<propertyExpression name="net.sf.jasperreports.style.forecolor">
<![CDATA["#00FF00"]]>
</propertyExpression>
</reportElement>
...
</textField>
此设置将覆盖文本字段的当前前景色属性,并打印出绿色文本。
Here 列出了可用于报表元素的所有动态样式属性。
背景:Jaspersoft studio 6.2
如何根据表达式更改文本字段的前景色。
我如何应用表达式,使字体颜色(前景色)基于该字段中的值?我找不到任何地方来设置前景色 属性 的表达式。
你使用conditionalStyle,来实现这个
例子
<style name="myStyle" forecolor="#0000FF">
<conditionalStyle>
<conditionExpression><![CDATA[$F{myField}<0]]></conditionExpression>
<style forecolor="#CC0000"/>
</conditionalStyle>
</style>
然后把样式设置成textField
喜欢用的
<textField>
<reportElement style="myStyle" x="448" y="5" width="100" height="20" uuid="b75e4497-e952-4051-8640-2f6b498dd152"/>
<textFieldExpression><![CDATA["Hello world"]]></textFieldExpression>
</textField>
在 JasperSoft Studio 中,右键单击 大纲 中的样式以创建 "Conditional Style" 并在属性选项卡中设置属性
也许有一个选项:
您需要将 markup
设置为 style
。
然后在文本字段中使用表达式:
F{value1}=="GREEN"?$F{value1}:"<style backcolor='red'>"+$F{value1}+"</style>"
您还可以添加条件和设置多种颜色:
F{value1}=="GREEN"?"<style backcolor='green'>"+$F{value1}+"</style>":"<style backcolor='red'>"+$F{value1}+"</style>"
也许这对你有用。
另一种可能性是在您的文本字段中使用样式 属性 表达式:
<textField ...>
<reportElement ...>
<propertyExpression name="net.sf.jasperreports.style.forecolor">
<![CDATA["#00FF00"]]>
</propertyExpression>
</reportElement>
...
</textField>
此设置将覆盖文本字段的当前前景色属性,并打印出绿色文本。
Here 列出了可用于报表元素的所有动态样式属性。