2016-04-21 4 views
3

Справочная информация: Jaspersoft студия 6,2Как создать динамический цвет для текстового поля?

Как изменить ForeColor текстового поля на основе это выражение.

Как я могу применить выражение, чтобы цвет шрифта (forecolor) основывался на значении в этом поле? Я не могу найти нигде, чтобы установить выражение для свойства forecolor.

+1

Я не думаю, что это возможно с JasperSoftStudio. Это не чисто, но вы можете поместить два текстовых поля (например, с красным и зеленым цветом) и показать один в зависимости от выражения. – hering

+0

Почему это не было построено? Я понимаю, что это открытый исходный код и бесплатный, но это очень простая функция, и все инструменты отчетности, которые я использовал, имеют эту функцию ... – thotwielder

+0

Я изменил свое мнение, посмотрю на мой ответ или на вопрос от Петтера (что даже как мой) – hering

ответ

1

Может быть, есть вариант:

Вам нужно установить markup в style. А затем использовать выражение в текстовом поле:

F{value1}=="GREEN"?$F{value1}:"<style backcolor='red'>"+$F{value1}+"</style>" 

Вы можете также добавить условия и задать несколько цветов:

F{value1}=="GREEN"?"<style backcolor='green'>"+$F{value1}+"</style>":"<style backcolor='red'>"+$F{value1}+"</style>" 

Может быть, это будет работать для вас.

+0

. Фактически вы работаете (второй - это то, что я ищу), хотя ваш цвет изменился вместо цвета шрифта. Я изменил разметку на html, и в текстовом выражении введите что-то похожее на ваше (кроме текста некоторый текст), и он отлично работает. – thotwielder

2

используется conditionalStyle, для достижения этой

Пример

<style name="myStyle" forecolor="#0000FF"> 
    <conditionalStyle> 
     <conditionExpression><![CDATA[$F{myField}<0]]></conditionExpression> 
     <style forecolor="#CC0000"/> 
    </conditionalStyle> 
</style> 

Затем установите стиль в textField, когда вы хотите использовать его

<textField> 
    <reportElement style="myStyle" x="448" y="5" width="100" height="20" uuid="b75e4497-e952-4051-8640-2f6b498dd152"/> 
    <textFieldExpression><![CDATA["Hello world"]]></textFieldExpression> 
</textField> 

В JasperSoft студии , щелкните правой кнопкой мыши по стилю в очертание создать «Условный стиль» и установить свойства на вкладке Свойства

JasperSoft Studio

+0

Каковы коды и способы использования кода? Мы говорим о студии Jaspersoft 6.2? И не забывайте, что фон «Я новый». – thotwielder

+0

@thotwielder Код jrxml-код (универсальный для всех IDE), если вы щелкнете источник в IDE, вы увидите его. Я включил экранный снимок, чтобы вы могли найти, где стили также находятся в среде IDE. –

+0

Следовательно, при использовании IDE он генерирует код jrxml:). –

4

Другой возможностью было бы использовать выражение свойства стиля в вашем текстовом поле:

<textField ...> 
    <reportElement ...> 
     <propertyExpression name="net.sf.jasperreports.style.forecolor"> 
     <![CDATA["#00FF00"]]> 
     </propertyExpression> 
    </reportElement> 
    ... 
</textField> 

Этот параметр переопределяет текущий атрибут ForeColor для текстового поля, а зеленый текст будет напечатан.

Here перечислены все свойства динамического стиля, доступные для элементов отчета.

+0

Это не динамический. Таким образом, исходный вопрос не отвечает должным образом. Может быть, есть способ получить условное свойствоExpression или что-то подобное – DavidDunham

+0

@shertage: вы должны упомянуть, что можно использовать Turo

Смежные вопросы