2012-01-06 2 views
12

Я новичок в JasperReports. Я разрабатываю отчет с помощью iReport. У меня три значения x, y, z. Если z < y, тогда цвет данных для z должен быть изменен на «черный» &, если z> x, тогда цвет данных z должен быть изменен на «красный». Скажите, пожалуйста, как это сделать.Изменить цвет данных текстового поля (цвет переднего плана) на основе состояния в JasperReports

Я использую JDeveloper для разработки настольного приложения. и iReport для проектирования JasperReport.

ответ

13

Для решения этой проблемы вы можете использовать Conditional styles.

Образец:

<style name="ZFieldStyle"> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{Z} < $F{Y}]]></conditionExpression> 
     <style forecolor="#000000"/> 
    </conditionalStyle> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{Z}>$F{X}]]></conditionExpression> 
     <style forecolor="#FF0000"/> 
    </conditionalStyle> 
</style> 
... 
<field name="X" class="java.lang.Integer"/> 
<field name="Y" class="java.lang.Integer"/> 
<field name="Z" class="java.lang.Integer"/> 
... 
<textField> 
    <reportElement style="ZFieldStyle" x="200" y="0" width="100" height="20"/> 
    <textElement/> 
    <textFieldExpression><![CDATA[$F{Z}]]></textFieldExpression> 
</textField> 
+0

несколько дополнительных вопросов. Почему я не могу сделать то же самое с backcolor? Кроме того, когда я это делаю, цвет рамки ячейки также изменяется ... есть ли способ предотвратить это? –

+1

Вы можете использовать свойство backcolor в стиле –

Смежные вопросы