Команда IF
Команда IF предоставляет возможность строить контекстнозависимые форматы, т. е. форматы, способные изменять выходные значения в зависимости от содержимого форматируемой записи.
Команда IF записывается следующим образом:
IF условие THEN формат-1 ELSE формат-2 FI
где:
Условие | логическое выражение, определенное в соответствии с правилами, описанными в п. 7.3; | ||
Формат-1 |
| формат, который вычисляется в том и только том случае, когда значением логического выражения является "истина"; | |
формат-2 | формат, который вычисляется в том и только том случае, когда значением логического выражения является "ложь". |
Фраза ELSE формат-2 не является обязательной, и может быть опущена. Ключевые слова IF, THEN и FI обязательны всегда. Формат-1 может быть опущен, если присутствует предложение ELSE
(т.е. если условие истинно, то ничего не будет выведено). Таким образом, команда IF может также принимать одну из следующих дополнительных форм:
IF условие THEN формат-1 FI
IF условие THEN ELSE формат-2 FI
Поскольку нет никаких ограничений на команды, которые можно использовать в формате-1 и формате-2, то команды IF
могут быть вложены друг в друга любое количество раз. Ключевое слово FI, в таком случае, должно закрывать каждую команду IF (можно рассматривать IF и FI
как пару скобок). Например:
if p(v1) then v24 else if p(v2) and a(v3) then v5 fi fi
Команда IF особенно полезна для создания обобщенных форматов в интегрированных базах данных, которые содержат различные типы записей. В этом случае надо иметь различные метки для каждого типа записи (должно быть поле, содержащее код, идентифицирующий тип записи). Таким образом, проверяя тип документа с помощью команды IF, можно порождать в одном формате специфическое форматирование записей каждого типа.