Вопрос по ireport, jasper-reports – Использование переменных в условном стиле
у меня естьTitle группа сText Field содержащий рассчитанныйVariable $V{avg_perc}
,Text Field имеетevaluationTime установлен вReportто же самое дляVariables resetType.
Now I'm trying to set the background color of this field with a Conditional Style но я продолжаю получать сообщение об ошибке, говорящее что-то вроде:
Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8
Я делаю то же самое с тем жеConditional Style вColumn Footer и это работает без проблем, даже если я установилevaluationTime для этого поляReport тоже.
После удаления!Double.isNaN($V{avg_perc})
Я больше не получаю сообщение об ошибке, но выражение по-прежнему не работает. Мое поле остается красным, что является основным цветом, когда не выполняется ни одно из условий, независимо от того, какое значение$V{avg_perc}
есть. Это все еще работает вColumn Footer, хоть. Это мой стиль:
<style name="avg_color" mode="Opaque" backcolor="#FF0000" pdfFontName="Helvetica-Bold">
<conditionalStyle>
<conditionExpression><![CDATA[$V{avg_perc} >= 0.8]]></conditionExpression>
<style backcolor="#008000"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$V{avg_perc} >= 0.6 && $V{avg_perc} < 0.8]]></conditionExpression>
<style backcolor="#FFCC00"/>
</conditionalStyle>
</style>
Используемые поля и переменные для этого:
<field name="perc" class="java.lang.Double"/>
<variable name="avg_perc" class="java.lang.Double" calculation="Average">
<variableExpression><![CDATA[$F{perc}]]></variableExpression>
</variable>
Есть идеи, как заставить эту вещь работать? Я используюJasperReports а такжеiReport в версии 3.7.4.
<textFieldExpression class="java.lang.Double"><![CDATA[$V{avg_perc}]]></textFieldExpression>
и разные значения (Now а такжеReport) изevaluationTime имущество
!Double.isNaN($F{avg_perc}) && $F{avg_perc} >= 0.8
у меня работает - я изменил переменную на поле.
нажмите на поле и на панели свойств .: разметка = стиль выбран
Щелкните правой кнопкой мыши на Fied. редактировать выражение:
($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})
или xml
<textFieldExpression><![CDATA[($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})]]></textFieldExpression>
<style name="alternateStyle" fontName="Arial">
<conditionalStyle>
<conditionExpression><![CDATA[new Boolean($V{AMOUNT}.intValue() == 0)]]></conditionExpression>
<style mode="Opaque" backcolor="#FF0000" isBold="true"/>
</conditionalStyle>
</style>
А также сослаться на эту ссылку:Ссылка на сайт
<property name="net.sf.jasperreports.style.evaluation.time.enabled" value="true"/>
на уровне отчета вызываетConditional Style выполняется в тот момент, когда элемент оценивается. Увидетьэтот ответ в сообществе Jaspersoft для получения дополнительной информации.