Сравнение абсолютного и условного форматирования

Оценить
(0 голоса)

Прежде чем приступать к изучению условного форматирования, обязательно следует освоить основы абсолютного форматирования, что фактически сводится к применению обычного форматирования к объектам с помощью редактора Format Editor. Такой тип форматирования подразумевает использование панели Formatting и редактора Format Editor для применения одинакового форматирования ко всем вхождениям данного поля. Если вы щелкнете на объекте правой кнопкой мыши и в появившемся контекстном меню выберете пункт Format Field (Форматировать поле), на экране появится окно редактора Format Editor. Далее вы можете перейти на вкладку Font (Шрифт), чтобы изменить гарнитуру шрифта, его стиль, размер или цвет. Если вы измените цвет шрифта на красный, это отразится на всех вхождениях данного объекта в отчете. Если вы перейдете на вкладку Border (Граница) и установите флажок Drop Shadow (Отбрасывать тень), все вхождения данного объекта в отчете будут отбрасывать тень. Вот так выглядит процесс абсолютного форматирования.

Главное, о чем следует помнить, когда встает вопрос о применении условного форматирования — это то, что в данном случае можно пользоваться только редактором Format Editor. Если абсолютное форматирование может выполняться как с помощью панели инструментов Formatting, так и с помощью редактора Format Editor, условное форматирование реализуется исключительно с помощью редактора Format Editor — панель инструментов форматирования в данном случае непригодна.

Осваивая возможности условного форматирования, важно сразу же определить для себя, что в редакторе Format Editor доступно два типа свойств форматирования — свойства с множественным выбором и свойства типа “включено-выключено”. Примерами свойств с множественным выбором могут служить свойства Font (Шрифт) и Color (Цвет), доступные на вкладке Font (Шрифт). Щелчок на соответствующем выпадающем списке позволяет сделать выбор требуемого шрифта или цвета. Примером свойства типа “включено-выключено” может служить флажок Drop Shadow, который находится на вкладке Border: он может быть либо установлен (включен), либо сброшен (выключен). То, будет данное свойство форматирования свойством с множественным выбором или свойством типа “включено-выключено”, зависит от типа выбранной для форматирования формулы. Свойства с множественным выбором условно форматируются при использовании формул If-Then-Else или Select Case, а свойства типа “включено-выключено” — при использовании булевских формул.

Совет. Чтобы эффективно пользоваться условным форматированием, необходимо хорошо знать язык формул Crystal Reports. В главе 5 представлено подробное описание булевских формул, а также формул If-Then-Else и Select Case.

Чтобы задать условное форматирование, щелкните на кнопке Conditional Formula (Условная формула), отображаемой в окне редактора Format Editor рядом со свойством, которое вы хотите отформатировать.

После этого в окне Formula Workshop появится окно редактора Format Formula Editor (который, по сути, представляет собой тот же редактор Formula Editor (см. главу 5), но с другим названием), показанное на рис. 7.2. Обратите внимание на то, что условное форматирование можно задавать как с помощью синтаксиса Crystal, так и с помощью синтаксиса Basic, для чего просто следует выбрать желаемое значение в выпадающем списке Syntax (Синтаксис). Если форматируется свойство с множественным выбором, все доступные для него опции будут отображаться в верхней части списка Function Tree. Например, при форматировании свойства Color там будут отображаться все доступные цвета; при форматировании границы — различные доступные стили линий. Также Crystal Reports XI будет отображать все доступные опции в виде комментариев в большинстве формул форматирования (строк, которые в синтаксисе Crystal начинаются с двойной косой черты, а в синтаксисе Basic — с апострофа), дабы помочь вам выбрать подходящие значения.

Для определения формата объекта используйте формулы If-Then-Else или Select Case. Эти формулы могут быть настолько простыми или настолько сложными, насколько вы захотите. Например, формула для установки цвета шрифта может быть очень простой:

If (Customer.Last Year"s Sales) > 5000 Then crBlue Else crBlack

А формула для определения нижней границы может оказаться сложнее:

If (Order.Order Amount) > 5000 And (Order.Ship Via) = "Fedex" Then crDoubleLine Else

If (Order.Order Amount) > 1000 And (@Ship Days) = < 3 Then crSingleLine Else

crNoLine

Совет. В большинстве случаев значения форматирования, такие как цвет или тип линии, могут вводиться в формулу вручную. Также существует и другой метод — можно дважды щелкать на нужных значениях в списке Function Tree редактора Formula Editor. В этом случае перед значениями форматирования в формуле будет отображаться префикс сг. За несколькими исключениями, допустимыми считаются значения как с префиксом сг, так и без него.

Допускается применение любого типа простой или сложной формулы If-Then-Else либо Select Case, главное, чтобы каждая используемая в этой формуле конструкция Then, Else или Case в качестве результата возвращала одно из перечисленных в-списке Function Tree свойств форматирования.

Закончив создавать формулу, вы можете воспользоваться кнопкой Check (Проверить), чтобы проверить правильность ее синтаксиса, или сохранить формулу и закрыть окно редактора Format Formula Editor, щелкнув на кнопке Save And Close (Сохранить и закрыть). Окно редактора Format Editor останется на экране. Обратите внимание на то, что после этого цвет кнопки Conditional Formula изменится с красного на синий, и отображаемый на ней карандаш будет указывать в другую сторону. Это будет говорить о том, что для данного свойства была создана условная формула.

Если необходимо внести изменения в существующую формулу, снова щелкните на кнопке Conditional Formula и измените формулу, которая появится в окне редактора Format Formula Editor. Чтобы удалить условное форматирование и вернуться к абсолют- зому форматированию (или вообще отказаться от форматирования), просто выделите и удалите всю условную формулу. Затем щелкните на кнопке Save And Close. Кнопка Conditional Formula вновь приобретет синий цвет, а отображаемый на ней карандаш ипять будет указывать в первоначальном направлении.

Сравнение абсолютного и условного форматирования

На заметку! Если большая часть условных формул должна использовать встроенные функции форматирования для конструкций Then, Else или Case, то свойство Size несколько отличается в этом отношении от остальных свойств. В этом случае результатом условной формулы должно быть число, обозначающее размер используемого шрифта.

Процедура форматирования свойств типа “включено-выключено” выгладит примерно так же. Однако после щелчка на кнопке Conditional Formula рядом со свойством никакие дополнительные функции в списке Function Tree редактора Format Formula Editor не появятся, потому что для форматирования таких свойств формулы If-Then-Else и Select Case, как правило, не используются. Поскольку свойство может находиться только в одном из двух состояний, “включено” или “выключено”, для его форматирования должна использоваться булевская формула, которая возвращает в результате либо true, либо false.

При желании сделать так, чтобы поля заказчиков Customer Name, объемы продаж за прошлый год для которых превысили $100 ООО, отбрасывали тень, для начала щелкните правой кнопкой мыши на таком поле. Затем в появившемся контекстном меню выберите пункт Format Field, перейдите на вкладку Border и щелкните на кнопке Conditional Formula, расположенной рядом со свойством Drop Shadow. Когда на экране появится окно редактора Format Formula Editor, введите следующую булевскую формулу:

(Customer.Last Year"s Sales) > 100000

Эта булевская формула при вычислении будет возвращать только одно из двух возможных значений — true или false. Если формула возвратит значение true, свойство форматирования будет включено, и поле будет отбрасывать тень. Если формула возвратит значение false, свойство будет отключено, и поле останется без тени.

Совет. Если вы решите, что логика If-Then-Else или Select-Case легче запоминается, можете использовать ее с условными булевскими формулами. Главное не забывайте проверять, чтобы результатом каждой конструкции Then, Else или Case было слово True или False. Условия, возвращающие True, будут включать свойство форматирования, а условия, возвращающие False, отключать его.

Вас, должно быть, интересует следующий вопрос: какая взаимосвязь существует между -условным и абсолютным форматированием? Рассмотрим следующий сценарий. Вы выбираете Red (Красный) в качестве абсолютного цвета на вкладке Font редактора Format Editor и щелкаете на кнопке ОК. Естественно, все вхождения этого поля будут окрашены в красный цвет. Затем вы возвращаетесь в окно редактора Format Editor и, не изменяя абсолютного форматирования, щелкаете на кнопке Conditional Formula, расположенной рядом со свойством Color, после чего добавляете следующую формулу:

If (Customer.Last Year"s Sales) > 50000 Then Blue

Обратите внимание, что в этой формуле отсутствует конструкция Else. Не забывайте о   том, что Crystal Reports не требует наличия конструкции Else в формуле If-Then- Else. Когда речь идет об обычной формуле, если проверка If дает значение false и конструкция Else отсутствует, формула возвращает пустую строку, ноль или другое значение по умолчанию, что зависит от используемого этой формулой типа данных. Но какого цвета будет шрифт в данном случае, если конструкция Else отсутствует, а абсолютное форматирование предусматривает красный цвет?

В противоположность тому, что может показаться логичным, в данном случае, если проверка условия вернет false, шрифт будет отображаться черным цветом, несмотря на то, что абсолютное форматирование предусматривает красный. Это было сделано специально — когда применяется условное форматирование, абсолютное форматирование игнорируется. Если условная формула возвращает false (и при этом условия (типа конструкции Else), обрабатывающего такой случай, нет), использоваться будет цвет или формат, установленный для данного типа объектов в панели управления Windows в качестве цвета или формата по умолчанию. Не забывайте об этом, когда не включаете в формулу конструкцию Else, особенно если форматируете фоновые цвета. Черный цвет шрифта не всегда обязательно будет выглядеть плохо, а вот черный цвет фона может создать впечатление, что ваш отчет выведен на изоляционной ленте.

Исключением из этого правила, а также способом объединить условное и абсолютное форматирование, является функция Default Attribute (Атрибут по умолчанию), доступная в списке Function Tree редактора Format Formula Editor, в категории Formatting Functions (Функции форматирования). Если применить эту функцию в конструкции Then, Else или Case, формула будет использовать настройки абсолютного форматирования. Следовательно, формула

If (Customer.Last Year"s Sales) > 50000 Then Blue

Else Default Attribute отобразит суммы продаж, превосходящие $50 000, синим цветом, а все другие суммы — красным цветом (при условии, что для абсолютного форматирования в редакторе Format Editor был выбран красный цвет). Даже если вы измените этот абсолютный цвет, суммы, превышающие $50 000, будут все равно отображаться синим цветом, но все остальные примут тот цвет, который вы указали в качестве абсолютного.

Совет. Если вы применяете условное форматирование к полю, которое уже было отформатировано с помощью эксперта Highlighting Expert, старшинством будут обладать изменения, выполненные в эксперте Highlighting Expert. Условное форматирование проявится только при условии, что это не изменит формата поля.

Искусство использования свойства Suppress
Специальные шрифты, графические изображения и вычерчивание линий
Использование растровой графики
Динамическое расположение графических объектов в Crystal Reports XI
Рисование линий и рамок

Добавить комментарий


Защитный код
Обновить