Árvore de páginas

Sintaxis

 

IIF( <expresión lógica>,  <expresión 1>, <expresión 2> )

 

 

Propósito

 

Devuelve el resultado de una expresión con base en una condición.

 

 

Argumentos

 

< expresión lógica>

 

Define una condición lógica que se evaluará como verdadera (.T.) o falsa (.F.).

 

< expresión 1>

 

Define la expresión que se procesará cuando el resultado de la expresión lógica sea verdadero (.T.).

 

< expresión 2>

 

Define la expresión que se procesará cuando el resultado de la expresión lógica sea falso (.F.).

 

 

Utilización

 

La función IIF() se utiliza para el procesamiento condicional de una expresión, de acuerdo con una condición especificada por medio de la expresión lógica. Si la expresión lógica se evalúa como verdadera (.T.), se procesará la expresión 1. Si la expresión lógica se evalúa como falsa (.F.), se procesará la expresión 2.

 

La expresión lógica puede ser cualquier condición lógica válida, como por ejemplo: nValor > 0, A = B, etc.

 

Las expresiones 1 y 2 podrán ser expresiones de cualquier tipo de dato (carácter, numérico, fecha o lógico), sin necesidad de que ambas sean del mismo tipo de dato.

 

 

Sugerencias

 

La función IIF() es bastante flexible y útil, pues tiene innumerables aplicaciones ventajosas:

 

  • Proporciona un medio para evaluar una condición dentro de una expresión. Por medio de esta, es posible convertir expresiones lógicas en otro tipo de dato. Por ejemplo:
    • IF(DELETED(), “Borrado”, “Activo”)
    • Cuando sea posible, sustituye el comando IF ... ENDIF, economizando el tiempo de procesamiento.

 

 

Ejemplos

 

// Verifica si puede realizarse la división

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

 

// Verifica el signo de un número

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

 

La función IIF() puede utilizarse para sustituir la siguiente estructura de programación:

 

IF cSexo == “F”

          cNome := “Sra. “ + cNome

ELSE

          cNome := “Sr. “ + cNome

ENDIF

 

La estructura anterior equivale a:

 

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

  • Sem rótulos