jasper reportts как подкрасить строку в зависимости от поля?
<textField textAdjust="StretchHeight" isBlankWhenNull="true">
<reportElement style="Detail" backcolor="#E6F4FC" stretchType="ElementGroupBottom" x="0" y="0" width="70" height="22" uuid="b45e49d2-9373-45d9-ac9c-6d9d806e1831"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="styled">
<font size="9"/>
</textElement>
<textFieldExpression><![CDATA[$F{channel}]]></textFieldExpression>
</textField>
допустим это одно из полей, у него backcolor="#E6F4FC" как можно менять цвет в зависимости от поля <![CDATA[$F{channel}]]> ?? т.е. если оно равно 1 то подкрасить данным цветом, если не равно 1 то ничеое ставить, это файл jrxml что то не смог нагуглить синтаксиса
Ответы (1 шт):
Автор решения: galago
→ Ссылка
Цвет фона элементов, определяемый значением выражения в JR можно определять с помощью свойства:
net.sf.jasperreports.style.backcolor
не забывая при этом установить элементам
mode="Opaque"
в вашем примере блок reportElement нужно изменить следующим образом:
<reportElement style="Detail" stretchType="ElementGroupBottom" mode="Opaque" x="0" y="0" width="70" height="22" backcolor="#E6F4FC" uuid="b45e49d2-9373-45d9-ac9c-6d9d806e1831">
<propertyExpression name="net.sf.jasperreports.style.backcolor"><![CDATA[$F{channel} == 1 ? "#E6F4FC" : "#FFFFFF"]]></propertyExpression>
</reportElement>
Кроме того, существуют и другие пути для управления цветом по условию, такие как, например, условные стили или условная видимость.