Прежде всего необходимо сказать, что в Crystal Reports определено два вида форматирования:
В следующих шагах мы уже рассматривали форматирование полей:
Так вот, все, о чем тогда говорилось, относится к абсолютному форматированию. Применение Эксперта выделения можно тоже, с некоторой натяжкой, отнести к абсолютному форматированию. Условное форматирование производится с помощью механизма формул.
Давайте сделаем с помощью формул то же, что делали в прошлом шаге. Выделяем поле, и в контекстном меню выбираем Format Field. Появляется уже знакомый нам диалог форматирования. Переходим на вкладку Font.
Справа от поля Color находится кнопка:
После ее нажатия появляется окно Format Editor.
Внешне это окно очень похоже на редактор формул, однако это не так. Изменилось содержимое проводника функций и проводника операций. (Внимание! Сейчас мы вводим формулу, определяющую цвет шрифта). Содержимое проводников изменяется в зависимости от редактируемого свойства. Вводим формулу:
if{@Sum}>200 Then Red
Чтобы записать формулу, нажмите кнопку вверху слева (с изображением дискетки). Обратите внимание: рисунок на кнопке, вызвавшей редактор, изменилось:
Это свидетельствует о том, что к данному свойству применяется условное форматирование. Теперь нам надо изменить цвет фона. Переходим на вкладку Border окна форматирования, и повторяем наши действия для фона. В окне редактора вводим формулу и сохраняем ее:
if{@Sum}>200 then Yellow
Однако, в окне предварительного просмотра мы получим странный результат:
Здесь проявилась важная особенность редактора форматирования. И если к полю применено условное форматирование, его абсолютное форматирование отменяется! Вообще-то в выражении if-else часть с else необязательна, но если ее нет, применяются установки по умолчанию. ( Свойства на вкладках игнорируются). Изменим формулу для фона:
if{@Sum}>200 Then Yellow else NoColor
Поверьте мне, теперь будет все нормально.