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

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

 

clip0153

 

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

 

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

 

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

 

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

 

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

 

[Products."UnitsInStock"]

 

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

 

Value = 0

 

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

 

Value == 0

 

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

 

<Products."UnitsInStock"> = 0

 

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

 

highlights_red

 

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

 

Value < 10

 

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

 

1. Value = 0

2. Value < 10

 

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

 

1. Value < 10

2. Value = 0

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