Условное выделение

Top  Previous  Next

В объекте "Текст" предусмотрена возможность смены внешнего вида объекта в зависимости от заданных условий. Например, объект можно выделить красным цветом, если он содержит отрицательное значение. Эта возможность называется "условное выделение". Для ее настройки выберите объект и нажмите кнопку btn24 на панели инструментов "Текст". Вы увидите следующее диалоговое окно:

 

highlight

 

Здесь можно определить одно или несколько условий и задать стиль для каждого условия. Стиль может содержать одно или несколько свойств:

 

заливка;
цвет текста;
параметры шрифта;
видимость объекта.

 

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

 

Для того чтобы создать новое условие, нажмите кнопку "Добавить". Вы увидите редактор выражения:

 

highlightAdd

 

Здесь можно написать любое выражение, которое возвращает логический результат (да/нет). В большинстве случаев в выражении участвует текущее печатаемое значение, которое доступно через переменную Value.

 

Рассмотрим следующий пример: у нас есть объект "Текст", в котором печатается остаток товара на складе:

 

[Products.UnitsInStock]

 

Мы хотим подсветить объект красным цветом, если количество товара = 0. Для этого создадим следующее условие:

 

Value == 0

 

В данном случае мы использовали переменную Value, которая содержит печатаемое значение. Если в объекте есть несколько выражений, эта переменная будет содержать значение последнего выражения. Вместо Value можно использовать поле из источника данных, например:

 

[Products.UnitsInStock] == 0

 

Операция сравнения написана в стиле C#. Это верно, если в качестве языка отчета выбран C#. Для языка VisualBasic.Net операция сравнения – одиночный знак "=". Напоминаем, что язык отчета можно поменять в меню "Отчет|Свойства...".

 

Настроим стиль для данного условия так, чтобы использовалась только заливка, и укажем цвет заливки – красный:

 

highlightRed

 

При печати объекты, содержащие нулевое значение, будут красными. Теперь усложним наш пример, добавив еще одно условие. Если остаток товара меньше 10, он должен быть напечатан желтым цветом. Для этого откроем редактор условий и нажмем кнопку "Добавить". Второе условие будет выглядеть так:

 

Value < 10

 

В случае, когда указано несколько условий, FastReport проверяет все условия, начиная с первого. Если какое-то условие выполняется, FastReport применяет его стиль к объекту, и процесс завершается. Здесь важно расставить условия в правильном порядке. Так, порядок, который мы рассмотрели в этом примере, правильный:

 

1. Value == 0

2. Value < 10

 

Если условия поменять местами, то выделение будет работать неправильно.

 

1. Value < 10

2. Value == 0

 

В данном случае условие "Value == 0" выполняться не будет, потому что при нулевом значении сработает первое условие. Для того чтобы поменять порядок условий, используйте кнопки btn208 и btn209 в редакторе условий.