Возвращает одно из двух заданных значений в зависимости от величины логического выражения.

IIF(lExpression, eExpression1, eExpression2)

Параметры

lExpression

Определяет логическое выражение, для которого вычисляется функция IIF( ).

eExpression1, eExpression2

Если значение логического выражения lExpression = True (.T.), то возвращается значение eExpression1 , а выражение eExpression2 не вычисляется. Если значение логического выражения lExpression = False (.F.) или равно null (.NULL.), то возвращается значение eExpression2,  а выражение eExpression1 не вычисляется.

Expand imageВозвращаемое значение

Символьное, числовое, типа Currency, Date, или DateTime

Expand imageКомментарии

Данная функция аналогична короткому оператору IF, при вычислении логического выражения выполняется оценка возвращаемого значения. Если логическое выражение оценивается как = True (.T.), IIF( ) возвращает первое заданное выражение. Если логическое выражение оценивается как = False (.F.) или null (.NULL.), IIF( ) возвращает значение второго заданного выражения.

NoteСовет

Данная функция может быть использована вместо логических языковых конструкций IF ... ENDIF для простейщих логических выражений; или для определяемых выражений в Отчетах или Этикетках. Функция IIF( ) выполняется быстрее чем соответствующий логический оператор IF ... ENDIF.

Expand imageПример

В следующем примере используется данная функция IIF( ) для определения "заполненности" поля notes в таблице employee. Если это поле "пусто", то выводится сообщение "Нет Описания"; в другом случае, отображается содержание этого поля.

  CopyCode imageКопировать Код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE employee && Open Employee table
CLEAR

SCAN
? IIF(EMPTY(notes), 'Нет Описания', notes) && проверка заполненности поля ?
ENDSCAN

Expand imageСм. также