如何为文本字段创建动态颜色?

tho*_*der 5 jasper-reports jaspersoft-studio

背景:Jaspersoft studio 6.2

如何根据表达式更改文本字段的前景色

如何应用表达式以使字体颜色(前景色)基于该字段中的值?我找不到任何地方可以设置 forecolor 属性的表达式。

her*_*ing 6

也许有一个选择:

您需要设置markupstyle. 然后在文本字段中使用表达式:

F{value1}=="GREEN"?$F{value1}:"<style backcolor='red'>"+$F{value1}+"</style>"
Run Code Online (Sandbox Code Playgroud)

您还可以添加条件并设置多种颜色:

F{value1}=="GREEN"?"<style backcolor='green'>"+$F{value1}+"</style>":"<style backcolor='red'>"+$F{value1}+"</style>"
Run Code Online (Sandbox Code Playgroud)

也许这对你有用。

  • 你的实际工作(第二个是我正在寻找的),尽管你的改变了背景而不是字体颜色。我将标记更改为 html,并在文本表达式中输入与您类似的内容(除了 &lt;font color=''&gt; 一些文本 &lt;/font&gt;),它工作得很好。 (2认同)

she*_*age 5

另一种可能性是在文本字段中使用样式属性表达式:

<textField ...>
  <reportElement ...>
      <propertyExpression name="net.sf.jasperreports.style.forecolor">
         <![CDATA["#00FF00"]]>
      </propertyExpression>
  </reportElement>
  ...
</textField>
Run Code Online (Sandbox Code Playgroud)

此设置将覆盖文本字段的当前前景色属性,并打印出绿色文本。

此处列出了可用于报表元素的所有动态样式属性。