Булевские формулы

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

Еще один тип формулы, который вам может понадобиться — это булевская формула. Такая формула может возвращать только два значения — true и false. Вы можете рассматривать булевскую формулу просто как “проверяющую” часть формулы If-Then- Else. При вычислении такая формула в конечном итоге возвращает только одно из двух упомянутых значений.

Ниже показан простой пример булевской формулы:

{@Ship Days} > 3

В данной формуле существующая формула @Ship Days (которая является числовой) проверяется на предмет превышения значения 3 (что указывает на исключительные условия доставки). Она просто либо больше 3, либо нет. Если она больше 3, формула возвращает true, а если нет — false.

После помещения этой формулы в отчет она появится в нем с булевским типом данных. Если флажок Show Field Names (Показывать имена полей), находящийся в диалоговом окне Options, сброшен (об этом флажке уже рассказывалось в этой главе), на вкладке Design рядом с формулой будет отображаться слово True. При форматировании этого поля в окне редактора Formula Editor появится дополнительная вкладка Boolean (Булевские значения), позволяющая выбрать требуемый вариант отображения значений true/false в отчете (рис. 5.16).

Хотя иногда булевские формулы могут оказаться полезными в самом отчете, гораздо чаще вы их все-таки будете использовать в качестве основы для других формул. Например, булевская формула, которая рассматривалась выше, показывает, что компания “Xtreme Mountains Bikes” рассматривает заказы, на доставку которых уходит более трех дней, как исключения.

Рис. 5.16. Вкладка Boolean в редакторе Format Editor

Однако компания XTREME хочет несколько изменить это правило исключений для показателей продаж за прошлый год (Last Year1 s Sales). Если заказчик приобрел в прошлом году товаров на сумму, превышающую $50 ООО, для него доставка должна будет выполняться в трехдневный срок. Однако если заказчик приобрел товаров на меньшую сумму — то в шестидневный.

Здесь потребуется составная булевская формула, наподобие

({@Ship Days} > 3 And {Customer.Last Year's Sales} > 50000)

Or {@Ship Days} > 6

использующая комбинацию операций And и Or наряду с операциями сравнения для создания более сложной булевской формулы. Однако при этом важно помнить, что окончательным результатом все равно будет true или false. Вы можете создать булевскую формулу любой сложности, используя операции сравнения вместе с операциями And, Or и Not, но в конечном счете вы получите только true или false.

Совет. Обратите внимание на круглые скобки, в которые заключена первая часть этой составной формулы. Они гарантируют то, что условия {QShip Days} > Зи {Customer .Last Year’s Sales} > 50000 будут вычисляться раньше, чем условие {@ Ship Days} > 6. И хотя скобки могут сделать формулу более понятной, они не обязательны. Crystal Reports рассматривает все булевские операции (And, Or и Not) как равные с точки зрения старшинства (этот вопрос рассматривался ранее в этой главе). То есть, он вычисляет их в том порядке, в котором они идут в формуле — слева направо.

Булевские формулы

Такой способ создания булевских формул обладает несколькими преимуществами:

•    После создания сложная булевская формула может включаться в другие формулы в качестве проверочного модуля формулы If-Then-Else, как показано в следующем примере:

If {@Shipping Exception} Then

исключительные условия доставки ****”

Else

"Заказ доставлен в установленные сроки"

Это намного упрощает прочтение и понимание второй формулы.

•    Использование булевской формулы в отчете исключает необходимость в многократном вводе с клавиатуры сложных булевских проверок, благодаря чему уменьшается и вероятность ошибок. Но даже еще более важно то, что если по прошествии времени требования к отчету изменятся, вам придется внести изменения только в одну формулу. Например, если вы используете формулу @Shipping Exception в качестве основы для 50 других формул в отчете, а затем вдруг решите изменить показатель Last Year1 s Sales с $50 ООО на $35 ООО, вам достаточно будет внести соответствующие изменения только в одну формулу, а не во все 50. Внесенные изменения автоматически проявятся во всех остальных формулах.

•    Булевская формула может использоваться при расширенном выборе записей (см. главу 4) и условном форматировании (см. главу 7) для ограничения отчета до определенных записей или для того, чтобы определенные объекты отчета отображались в каком-нибудь другом формате.

Совет. Все доступные в Crystal Reports встроенные функции и операции для формул перечислены в приложении. Также получить более подробную информацию по той или иной функции или операции можно, отобразив окно редактора Formula Editor и воспользовавшись оперативной справочной системой Crystal Reports. Для этого потребуется просто выделить интересующую функцию или операцию в соответствующем разделе списка Function Tree или Operator Tree и нажать клавишу <F1>.

 

Переменные в формулах и времена вычисления
Объявление переменной
Область действия переменной
Присваивание значения переменной
Отображение содержимого переменной

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


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