4D v16.3

Choose

Inicio

 
4D v16.3
Choose

Choose 


 

Choose ( criterio ; valor {; valor2 ; ... ; valorN} ) -> Resultado 
Parámetro Tipo   Descripción
criterio  Booleano, Entero in Valor a probar
valor  Expresión in Valores posibles
Resultado  Expresión in Valor de criterio

El comando Choose devuelve uno de los valores pasados en los parámetros valor1, valor2, etc. en función del valor del parámetro criterio.

Puede pasar un parámetro criterio de tipo booleano o numérico:

  • Si criterio es un booleano, Choose devuelve valor1 si el booleano es igual a True y valor2 si el booleano es igual a False. En este caso, el comando espera exactamente tres parámetros: criterio, valor1 y valor2.
  • Si criterio es un entero, Choose devuelve el valor cuya posición corresponde a criterio. Atención, la numeración de los valores comienza en 0 (la posición de valor1 es 0). En este caso, el comando espera al menos dos parámetros: criterio y valor1.

El comando acepta todo los tipos de datos para el/los parámetro(s) valor, excepto imágenes, punteros, BLOBS y arrays. Sin embargo, debe asegurarse de que todos los valores pasados sean del mismo tipo, 4D no efectuará ninguna verificación en este punto.

Si ningún valor corresponde a criterio, Choose devuelve un valor “nulo” con respecto al tipo del parámetro valor (por ejemplo, 0 para el tipo numérico, “” para el tipo cadena, etc.).

Este comando permite generar código conciso que reemplaza las pruebas de tipo “Case of” que toman varias líneas (ver ejemplo 2). También es muy útil en los lugares donde pueden ejecutarse fórmulas: editor de búsquedas, aplicar una fórmula, editor de informes rápidos, columna calculada de listbox, etc.

Este es un ejemplo del uso típico de este comando con un criterio de tipo booleano:

 vTitulo:=Choose([Persona]Masculino;"Sr";"Sra")

Este código es estrictamente equivalente a:

 If([Persona]Masculino)
    vTitulo:="Sr"
 Else
    vTitulo:="Sra"
 End if

Este es un ejemplo del uso típico de este comando con un criterio de tipo numérico:

 vEstado:=Choose([Persona]Estado;"Soltero";"Casado";'"Viudo";"Separado")

Este código es estrictamente equivalente a:

 Case of
    :([Persona]Estado=0)
       vEstado:="Soltero"
    :([Persona]Estado=1)
       vEstado:="Casado"
    :([Persona]Estado=2)
       vEstado:="Viudo"
    :([Persona]Estado=3)
       vEstado:="Separado"
 End case

 
PROPIEDADES 

Producto: 4D
Tema: Herramientas
Número 955

This command can be run in preemptive processes

 
HISTORIA 

Creado por: 4D v11 SQL

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)