Sintaxe

IIF( <expressão lógica>, <expressão 1>, <expressão 2> )

Função

Retorna o resultado de uma expressão baseado em uma condição.

Argumentos

< expressão lógica>

Define uma condição lógica a ser avaliada como verdadeira (.T.) ou falsa (.F.).

< expressão 1>

Define a expressão a ser processada quando o resultado da expressão lógica for verdadeiro (.T.).

< expressão 2>

Define a expressão a ser processada quando o resultado da expressão lógica for falso (.F.).

Utilização

A função IIF() é utilizada para o processamento condicional de uma expressão, de acordo com uma condição especificada através da expressão lógica. Se a expressão lógica for avaliada como verdadeira (.T.), a expressão 1 será processada. Se a expressão lógica for avaliada como falsa (.F.), a expressão 2 será processada.

A expressão lógica pode ser qualquer condição lógica válida, como por exemplo: nValor > 0, A = B, etc.

As expressões 1 e 2 poderão ser expressões de qualquer tipo de dado (caracter, numérico, data ou lógico), não sendo necessário que ambas resultem no mesmo tipo de dado.

Dicas

A função IIF() é muito flexível e útil, pois possui inúmeras aplicações vantajosas:

Fornece um meio de avaliar uma condição dentro de uma expressão. Através dela é possível converter expressões lógicas em outro tipo de dado. Por exemplo:
IIF(DELETED(), “Deletado”, “Ativo”)
Quando possível, substitui o comando IF ... ENDIF, economizando tempo de processamento.

Exemplos

// Verifica se a divisão pode ser realizada

LOCAL nCoef := IIF(nCoef > 0, nValor / nCoef, 0)

// Verifica o sinal de um número

LOCAL nCoef := IIF(nCoef >= 0, “Positivo”, “Negativo”)

 

A função IIF() pode ser utilizada para substituir a seguinte estrutura de programação:

IF cSexo == “F”

          cNome := “Sra. “ + cNome

ELSE

          cNome := “Sr. “ + cNome

ENDIF

 

A estrutura acima é equivalente à:

cNome := IIF(cSexo == “F”, “Sra. “, “Sr. “) + cNome