Возвращает одно из двух значений, в зависимости от значения данного логического выражения.
Синтаксис:
IIF(lExpression, eExpression1, eExpression2)
Параметры:
lExpression
Задает логическое выражение, вычисляемое функцией IIF( ).
eExpression1, eExpression2
Если выражение lExpression имеет значение "истина" (.T.), возвращается eExpression1. Если lExpression имеет значение "ложь" (.F.), возвращается eExpression2.
Результат:
Типа Character, Numeric, Currency, Date или DateTime.
Комментарии:
Данная функция (известная также как "Непосредственное IF") вычисляет логическое выражение и затем возвращает одно из двух заданных выражений. Если логическое выражение имеет значение "истина" (.T.), функция IIF( ) возвращает первое выражение из двух. Если логическое выражение имеет значение "ложь" (.F.), IIF( ) возвращает второе выражение.
Совет. Эту функцию можно использовать вместо конструкции IF ... ENDIF при вычислении простых условных выражений, она особенно удобна при работе с выражениями отчетов и этикеток, которые условно задают содержимое полей. Помимо прочего, функция IIF( ) работает гораздо быстрее, чем эквивилентная ей конструкция IF ... ENDIF.
Пример:
* В следующем примере функция IIF( ) используется для проверки поля * described в таблице category. Если это поле пусто, на экран выдается * фраза "No description" [Нет описания]; в противном случае отображается * содержимое memo-поля. CLOSE DATABASES OPEN DATABASE (HOME( ) + 'samples\data\testdata') USE employee && Open Employee table CLEAR SCAN ? IIF(EMPTY(notes), 'No notes', notes) && Empty memo field? ENDSCAN