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

ICASE( lCondition1, eResult1 [, lCondition2, eResult2] ... 
[, eOtherwiseResult])

Параметры

lCondition

Определяет Условное (логическое) выражение.

Если lCondition = False (.F.), функция ICASE( ) продолжает вычислять следующее логическое выражение (условие) и возвращает соответствующий, заданный результат eResult, когда данное условие = True (.T.). Если условное выражение lCondition = null (.NULL.), система Visual FoxPro отождествляет данное условие lCondition, как = False (.F.).

eResult

Определяет вычисляемый Результат, возвращаемый данной функцией, когда соответствующее выражение lCondition = True (.T.).

eOtherwiseResult

Содержит возвращаемый Результат в том случае, когда все заданные в параметрах функции условия = False (.F.).

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

ICASE( ) возвращает первое значениеи заданного параметра eResult, если условие lCondition = True (.T.).

Если все заданные условные выражения = False (.F.), ICASE( ) возвращает значение параметра eOtherwiseResult.

Если рассматриваемый параметр eOtherwiseResult отсутствует, и все логические условия вычисляются как = False (.F.), ICASE( ) возвращает значение = null (.NULL.).

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

Для данной функции вы обязательно должны указать не менее двух параметров ICASE( ). Если вы определяете нечетное количество параметров, то последний параметр рассматривается как значение параметра eOtherwiseResult.

Вы можете задавать до 100 пар параметров для функции ICASE( ), то есть до 200 (двухсот) параметров.

Если вы используете длинные выражения в качестве рассматриваемой функции ICASE( ), например, для определения некоторых Фильтров, для ключевых секций FOR или WHERE, проконтролируйте текущую установку функции SYS(3055) - уровня сложности вычисляемых выражений, иначе возникнет Ошибочная ситуация. Смотрите дополнительно раздел:  SYS(3055) - FOR и WHERE, уровень сложности выражений.

Expand imageПример

Следующие примеры демонстрируют разнообразные Сценарии использования рассматриваемой функции ICASE( ) в целях вычисления задаваемых логических выражений и возврата соответствующих Результатов.

Следующий оператор отображает строку "First is true", так как первое выражение является истинным, 1+1=2 (True (.T.)).

  CopyCode imageКопировать Код
? ICASE(1+1=2,"First is true",1+1=3,"Second is false","None are true")

Следующий оператор отображает строку "Second is true", так как первое условие = False (.F.), а вот второе условие = True (.T.) (1+2=3).

  CopyCode imageКопировать Код
? ICASE(1+2=2,"First is false",1+2=3,"Second is true","None are true")

Следующий оператор отображает строку "None are true", то есть значение последнего параметра, так как все указанные условные выражения = False (.F.).

  CopyCode imageКопировать Код
? ICASE(1+2=2,"First is false",1+1=3,"Second is false","None are true")

Expand imageСм. также