#java #jasper-reports
#java #jasper-отчеты
Вопрос:
У меня есть текстовое поле в jasperreport. Теперь мне нужно динамически передавать текстовый цвет этого поля.
Я пытался использовать iReport designer, но пока не смог найти никаких подходящих решений.
Возможно ли этого добиться?
Ответ №1:
Вы можете использовать Style
с условиями. Или вы можете использовать разные элементы (например, текстовое поле) с условием видимости — printWhenExpression
.
Для получения более подробной информации вы можете ознакомиться с этим обсуждением.
Пример использования Style
. Присваивает forecolor
свойству «Позиция продукта» textField
значение красного, когда стоимость продукта больше 12,0 и меньше или равна 14,0, и присваивает ему значение зеленого, если стоимость больше 14,0:
<style name="ColoredField">
<conditionalStyle>
<conditionExpression><![CDATA[Boolean.valueOf($F{PRODUCT_COST} > 12.0 amp;amp; $F{PRODUCT_COST} <= 14.0)]]></conditionExpression>
<style forecolor="#FF0000"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[Boolean.valueOf($F{PRODUCT_COST} > 14.0)]]></conditionExpression>
<style forecolor="#00FF99"/>
</conditionalStyle>
</style>
...
<detail>
<band height="21" splitType="Stretch">
<textField>
<reportElement style="ColoredField" x="78" y="1" width="100" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{PRODUCT_NAME}]]></textFieldExpression>
</textField>
Комментарии:
1. @Alex … хороший описательный ответ… Но в моем случае у меня есть разные 6 вариантов цвета, которые могут быть применены к текстовому полю. Есть ли шансы реализовать это?
2. Да, вы можете. Вы должны создать шесть
conditionalStyles