Использование переменных в условном стиле

у меня естьзаглавие группа сТекстовое поле содержащий рассчитанныйпеременная $V{avg_perc},Текстовое поле имеетevaluationTime установлен вотчетто же самое дляпеременные resetType, Сейчас я'я пытаюсь установить цвет фона этого поля сУсловный стиль но я продолжаю получать сообщение об ошибке, говорящее что-то вроде:

Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8

я делаю то же самое с тем жеУсловный стиль вНижний колонтитул и это работает без проблем, даже если я установилevaluationTime для этого поляотчет тоже.

После удаления!Double.isNaN($V{avg_perc}) Я небольше не получаю ошибку, но выражение все еще нет работа. Мое поле остается красным, что является основным цветом, когда не выполняется ни одно из условий, независимо от того, какое значение$V{avg_perc} есть. Это все еще работает вНижний колонтитул, хоть. Это мой стиль:


    
        = 0.8]]>
        
    
    
        = 0.6 && $V{avg_perc} < 0.8]]>
        
    

Используемые поля и переменные для этого:



    

Есть идеи, как заставить эту вещь работать? Я'м используюJasperReports а такжея докладываю в версии 3.7.4.

 YingYang05 сент. 2012 г., 10:25
1,5 для всех
 Alex K05 сент. 2012 г., 13:26
ИМХО, выражение вconditionalStyle работает как значение сevaluationTime равняетсяСейчас, Вы можете проверить это с помощью простого теста - вы можете добавить дваполя с и разные значения (Сейчас а такжеотчет) изevaluationTime имущество
 Alex K05 сент. 2012 г., 11:11
Можете ли вы опубликоватьavg_perc определение переменной? Кстати, выражение!Double.isNaN($F{avg_perc}) && $F{avg_perc} >= 0.8 работает для меня - яя изменил переменную на поле.
 YingYang05 сент. 2012 г., 11:19
Я добавил определения полей и переменных в свой вопрос.
 Alex K05 сент. 2012 г., 10:15
Какой твойя докладываю настройки этого свойства:org.eclipse.jdt.core.compiler.source,org.eclipse.jdt.core.compiler.compliance,org.eclipse.jdt.core.compiler.codegen.TargetPlatform?
 YingYang05 сент. 2012 г., 14:19
Кажется, чтобы быть правдой длязаглавие группа. Я пробовал настройкуavg_perc до фиксированного значения 0,9 сresetType установлен вНикто и это сработало, независимо от того, какойevaluationTime был установлен для полей. НастройкаevaluationTime поля дляСейчас с вычисленной переменной в качестве значения приводит к тому, что ее выводноль (что было моей проблемой вstackoverflow.com/questions/12259979/...) и его цвет должен быть красным. Я надеюсь, что смогу заставить это работать как-то, я нея действительно хочу пересчитать среднее значение в Java.

Ответы на вопрос(3)

Решение Вопроса

<property name="net.sf.jasperreports.style.evaluation.time.enabled" value="true">
</property>

на уровне отчета вызываетУсловный стиль выполняется в тот момент, когда элемент оценивается. Увидетьэтот ответ в сообществе Jaspersoft для получения дополнительной информации.

 Alex K05 сент. 2012 г., 14:52
+1 хорошее решение

нажмите на поле и на панели свойств .: разметка = стиль выбран

Щелкните правой кнопкой мыши на 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}+"" : $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>

А также сослаться на эту ссылку:Ссылка на сайт

Ваш ответ на вопрос