Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Choose
|
Choose ( critère ; valeur {; valeur2 ; ... ; valeurN} ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
critère | Booléen, Entier |
![]() |
Valeur à tester | |||||
valeur | Expression |
![]() |
Valeurs possibles | |||||
Résultat | Expression |
![]() |
Valeur de critère | |||||
La commande Choose retourne l’une des valeurs passées dans les paramètres valeur, valeur2, etc. en fonction de la valeur du paramètre critère.
Vous pouvez passer un paramètre critère de type booléen ou numérique :
La commande accepte tous les types de données pour le(s) paramètre(s) valeur, hormis les images, pointeurs, BLOBS et tableaux. Veillez cependant à ce que toutes les valeurs passées soient du même type, 4D n’effectue pas de vérification sur ce point.
Si aucune valeur ne correspond à critère, Choose retourne une valeur “nulle” en rapport avec le type du paramètre valeur (par exemple 0 pour le type numérique, “” pour le type chaîne, etc.).
Cette commande permet de générer du code concis en remplacement des tests du type “Au cas ou” sur plusieurs lignes (cf. exemple 2). Elle est également très utile dans les emplacements où des formules peuvent être exécutées : éditeur de recherches, appliquer une formule, éditeur d’états rapides, colonne calculée de list box, etc.
Attention : Avant d'être exécutée, la commande Choose évalue chaque paramètre valeur. Cela signifie que :
$res:=Choose(True;"red1";"blue"+2) //erreur
Voici une utilisation type de la commande avec un critère booléen :
vTitre:=Choose([Personne]Masculin;"Mr";"Madame")
Ce code est strictement équivalent à :
If([Personne]Masculin)
vTitre:="Mr"
Else
vTitre:="Madame"
End if
Voici une utilisation type de la commande avec un critère numérique :
vStatut:=Choose([Personne]Statut;"Célibataire";"Marié";"Veuf";"Divorcé")
Ce code est strictement équivalent à :
Case of
:([Personne]Statut=0)
vStatut:="Célibataire"
:([Personne]Statut=1)
vStatut:="Marié"
:([Personne]Statut=2)
vStatut:="Veuf"
:([Personne]Statut=3)
vStatut:="Divorcé"
End case
Produit : 4D
Thème : Outils
Numéro :
955
Créé : 4D v11 SQL
4D - Langage ( 4D v20 R7)