Условное выделение
В объекте "Текст" предусмотрена возможность смены внешнего вида объекта в зависимости от заданных условий. Например, объект можно выделить красным цветом, если он содержит отрицательное значение. Эта возможность называется "условное выделение". Для ее настройки выберите объект и нажмите кнопку на панели инструментов "Текст". Вы увидите следующее диалоговое окно:
Здесь можно определить одно или несколько условий и задать стиль для каждого условия. Стиль может содержать одно или несколько свойств:
- заливка;
- цвет текста;
- параметры шрифта;
- видимость объекта.
Можно указать какие свойства необходимо менять при срабатывании условия. Для этого используйте флажки в правой части окна. По умолчанию новый стиль имеет одну настройку – цвет текста.
Для того чтобы создать новое условие, нажмите кнопку "Добавить":
Здесь можно написать любое выражение, которое возвращает логический результат (да/нет). В большинстве случаев в выражении участвует текущее печатаемое значение, которое доступно через переменную Value
.
Рассмотрим следующий пример: есть объект "Текст", в котором печатается остаток товара на складе:
[Products.UnitsInStock]
Необходимо подсветить объект красным цветом, если количество товара = 0. Для этого создадим следующее условие:
Value == 0
В данном случае мы использовали переменную Value
, которая содержит печатаемое значение. Если в объекте есть несколько выражений, эта переменная будет содержать значение последнего выражения. Вместо Value
можно использовать поле из источника данных, например:
[Products.UnitsInStock] == 0
Операция сравнения написана в стиле C#. Это верно, если в качестве языка отчета выбран C#. Для языка VisualBasic.NET операция сравнения – одиночный знак
=
. Язык отчета можно поменять в меню "Отчет|Свойства...".
Настроим стиль для данного условия так, чтобы использовалась только заливка, и укажем цвет заливки – красный:
При печати объекты, содержащие нулевое значение, будут красными. Теперь усложним наш пример, добавив еще одно условие. Если остаток товара меньше 10, он должен быть напечатан желтым цветом. Для этого откроем редактор условий и нажмем кнопку "Добавить". Второе условие будет выглядеть так:
Value < 10
В случае, когда указано несколько условий, FastReport проверяет все условия, начиная с первого. Если какое-то условие выполняется, FastReport применяет его стиль к объекту, и процесс завершается. Здесь важно расставить условия в правильном порядке. Так, порядок, который мы рассмотрели в этом примере, правильный:
1. Value == 0
2. Value < 10
Если условия поменять местами, то выделение будет работать неправильно.
1. Value < 10
2. Value == 0
В данном случае условие Value == 0
выполняться не будет, потому что при нулевом значении сработает первое условие. Для того чтобы поменять порядок условий, используйте кнопки и
в редакторе условий.