Вопрос по jasper-reports, ireport – Использование переменных в условном стиле

6

у меня естьзаглавие группа сТекстовое поле содержащий рассчитанныйпеременная $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.

1,5 для всех YingYang
Можете ли вы опубликоватьavg_perc определение переменной? Кстати, выражение!Double.isNaN($F{avg_perc}) && $F{avg_perc} >= 0.8 работает для меня - яя изменил переменную на поле. Alex K
ИМХО, выражение вconditionalStyle работает как значение сevaluationTime равняетсяСейчас, Вы можете проверить это с помощью простого теста - вы можете добавить дваполя с и разные значения (Сейчас а такжеотчет) изevaluationTime имущество Alex K
Какой твойя докладываю настройки этого свойства:org.eclipse.jdt.core.compiler.source,org.eclipse.jdt.core.compiler.compliance,org.eclipse.jdt.core.compiler.codegen.TargetPlatform? Alex K

Ваш Ответ

3   ответа
3

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

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

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

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

+1 хорошее решение Alex K
0

<style name="alternateStyle" fontname="Arial">
    <conditionalStyle>
        <conditionExpression><![CDATA[new Boolean($V{AMOUNT}.intValue() == 0)]]></conditionExpression>
        <style mode="Opaque" backcolor="#FF0000" isBold="true"/>
    </conditionalStyle>
</style>

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

Похожие вопросы