ADELIA |
VADELIA |
SADELIA |
WADELIA |
EADELIA |
(I/B) |
(I/B) (C/S) |
(S) |
(I/B) (C/S) |
(B) (C/S) |
Attention : dans le cas des programmes de type ADELIA, cet ordre n'est pas compatible avec le générateur C d'Adélia Studio ni avec Adélia/400.
Paragraphe d'utilisation
Tous
Syntaxe
SI_VALEUR SuiteValeur
SuiteValeur |
→ |
SuiteValeur Constante | SuiteValeur MotRéservé | SuiteValeur Contrôle | SuiteValeur Fenêtre | SuiteValeur Menu | Constante | MotRéservé | Contrôle | Fenêtre | Menu |
Description
Cet ordre se trouve à l'intérieur d'un bloc CHOIX_SELON/FIN_CHOIX_SELON.
Si la valeur de l'expression du CHOIX_SELON correspond à une des valeurs présentes dans SuiteValeur, alors on exécute l'ensemble des instructions qui suivent cet ordre jusqu'au prochain SI_VALEUR ou AUTRE_VALEUR ou FIN_CHOIX_SELON du CHOIX_SELON dont dépend ce SI_VALEUR. On sort ensuite du bloc CHOIX_SELON/FIN_CHOIX_SELON.
Le type des constantes ou des mots réservés doit correspondre au type de l'expression définie au niveau de l'ordre CHOIX_SELON.
Dans le cas d'un ordre CHOIX_SELON portant sur une variable de type OBJET_GRAPHIQUE, le type de SuiteValeur doit être strictement le même que celui utilisé avec CHOIX_SELON (donc soit Contrôle, soit Fenêtre, soit Menu).
Seule l'utilisation de *OBJET_NULL dans une instruction SI_VALEUR est commune aux trois types possibles dans CHOIX_SELON (Contrôle | Fenêtre | Menu).
Pour un bloc CHOIX_SELON/FIN_CHOIX_SELON, il peut se trouver autant d'instructions SI_VALEUR que nécessaire.
De plus, pour un ordre CHOIX_SELON donné, il ne peut pas y avoir une instruction SI_VALEUR après AUTRE_VALEUR.
Lors de l'exécution, les instructions SI_VALEUR sont testées suivant leur ordre dans le source.
Par exemple
Exemple 1
CHOIX_SELON WCODE
SI_VALEUR 12 15 25
WCODE = WCODE * 3
WTYPE = '1'
SI_VALEUR 7 8
WCODE = WCODE * 2
WTYPE = '2'
AUTRE_VALEUR
WCODE = WCODE + 1
WTYPE = *BLANK
FIN_CHOIX_SELON
Exemple 2
/* OBJET_GRAPHIQUE(CHAMP_DE_SAISIE) MonObjetChamp */
CHOIX_SELON MonObjetChamp
SI_VALEUR MaFenetre.ChampA
...
SI_VALEUR MaFenetre.ChampB
...
SI_VALEUR *OBJET_NULL
...
AUTRE_VALEUR
...
FIN_CHOIX_SELON
Exemple 3
/* OBJET_GRAPHIQUE(*FENETRE) MonObjetFenetre */
CHOIX_SELON MonObjetFenetre
SI_VALEUR MaFenetreA
...
SI_VALEUR MaFenetreB
...
SI_VALEUR *OBJET_NULL
...
AUTRE_VALEUR
...
FIN_CHOIX_SELON
Exemple 4
/* OBJET_GRAPHIQUE(*ITEM_MENU) MonObjetGraphiqueEltMenu */
CHOIX_SELON MonObjetGraphiqueEltMenu
SI_VALEUR CBUFEN[CBUMENU1]
...
SI_VALEUR CBUFEN[CBUMENU2]
...
SI_VALEUR *OBJET_NULL
...
AUTRE_VALEUR
...
FIN_CHOIX_SELON