|
|
|
|
|
- Déclaration des énumérations
- Passer une énumération en paramètre à une procédure
- Cas particuliers
- Extension d'énumération
- Créer des alias dans une énumération
- Valeurs associées
- Propriétés associées
- Fonctions WLangage disponibles
- Limites
Enumération (Type de variable) En anglais : Enumeration
Une énumération est un ensemble de valeurs. Une variable ou un paramètre formel de type Enumération peut être affectée uniquement avec une valeur de l'énumération.
TypeAutomate est une Enumération
Marche
Arrêté
EnMaintenance
EnPanne
FIN
Poste1 est un TypeAutomate
Poste1 = Marche
Syntaxe
Déclarer une énumération Masquer les détails
<Nom de l'énumération> est une Enumération <Valeurs de l'énumération> FIN
<Nom de l'énumération> : Nom de l'énumération à déclarer <Valeurs de l'énumération> : Différentes valeurs pouvant être prises par l'énumération. <FIN> : Fin de déclaration.
Déclarer une variable de type Enumération Masquer les détails
<Nom de la variable> est une <Nom de l'énumération>
<Nom de la variable> : Nom de la variable de type Enumération à déclarer. <Nom de l'énumération> : Nom d'une énumération précédemment déclarée. La valeur par défaut de l'énumération correspond à la première valeur de l'énumération. Remarques Déclaration des énumérations Une énumération doit être déclarée dans : - Le code d'initialisation du projet pour être utilisable dans tous les traitements du projet (codes du projet, codes des fenêtres, codes des champs, procédures, ...).
- Le code de déclaration des globales d'une fenêtre pour être utilisable dans tous les traitements de la fenêtre (codes de la fenêtre, codes des champs présents dans la fenêtre, procédures locales, ...).
- Le code d'ouverture d'un état pour être utilisable dans tous les traitements de l'état (codes de l'état, codes des champs présents dans l'état, procédures locales, ...).
- Le code de déclaration de classe pour être utilisable dans la classe.
- Pour accéder à cette énumération depuis une méthode de la classe, utilisez la syntaxe :
"::<Nom de l'énumération>" - Pour accéder à cette énumération depuis un code extérieur à la classe, utilisez la syntaxe :
"<Nom de la classe>::<Nom de l'énumération>"
- Le code de déclaration des collections de procédures pour être utilisable dans toutes les procédures de la collection.
Remarque : Une énumération est toujours globale : - soit à un projet,
- soit à une fenêtre,
- soit à un état,
- soit à une classe.
Passer une énumération en paramètre à une procédure Une variable de type Enumération peut être passée en paramètre à une procédure. Pour cela, utilisez la syntaxe suivante :
<Nom de la procédure>(<Nom de la variable de type Enumération>) Par exemple :
PROCÉDURE Fonctionnement(p est TypeAutomate)
Fonctionnement(Marche)
Fonctionnement(1)
Fonctionnement("A")
Cas particuliers - Saisie assistée : La saisie assistée pour un paramètre de type énumération propose les différentes valeurs de l'énumération.
- Ordre des valeurs : Les opérateurs <, <=, >, >= sont disponibles sur les énumérations ainsi que les opérations automatiques de tri (TableauTrie, TableauCherche, ...). L'ordre des valeurs dans l'énumération est celui de la déclaration des valeurs.
Exemple :
TypeAutomate est une Enumération
Marche
Arrêté
EnMaintenance
EnPanne
FIN
Poste1 est un TypeAutomate
Poste1 = Marche
...
SI Poste1>Arrêté ALORS
Info("L'automate a actuellement un problème")
FIN
Extension d'énumération Une énumération peut étendre les valeurs d'une ou plusieurs autres énumérations en reprenant les valeurs de celles-ci et en y ajoutant de nouvelles valeurs. La syntaxe utilisée est la suivante : <Nom de l'énumération> est une Enumération [Enumération de base] <Valeurs supplémentaires de l'énumération> FIN où : - Nom de l'énumération : Nom d'une énumération précédemment déclarée.
- Enumération de base : Nom de l'énumération de base à utiliser.
- Valeurs supplémentaires de l'énumération : Valeurs supplémentaires à prendre en compte dans l'énumération.
Exemple :
TypeAutomate est une Enumération
Marche
Arrêté
EnMaintenance
EnPanne
FIN
TypeAutomateAvancé est une Enumération
[TypeAutomate]
EnBoucle
FIN
L'affectation d'une valeur étendue dans une énumération de base est interdite. Créer des alias dans une énumération Il est possible de déclarer des alias pour assurer une compatibilité temporaire par exemple. La syntaxe utilisée est la suivante : <Nom de l'énumération> est une Enumération <Valeur 1 de l'énumération> <Valeur 2 de l'énumération> <Valeur 3 de l'énumération> = <Valeur 1 de l'énumération> FIN Exemple :
TypeAutomate est une Enumération
Marche
Arrêté
EnMaintenance
EnPanne
Maintenance = EnMaintenance
Panne = EnPanne
FIN
Valeurs associées En WLangage, il est possible d'associer une valeur constante de type simple à chaque valeur d'une énumération. Cette valeur est associée à la valeur de l'énumération dans la déclaration de l'énumération.
TypeAutomate est une Enumération
Marche = "Exécution de l'automate"
Arrêté = "Automate arrêté"
EnMaintenance = "Automate en cours de maintenance"
EnPanne = "Automate en panne"
FIN
Il est ensuite possible de lire la valeur associée d'une variable de type Enumération grâce à la propriété Valeur.
e est un TypeAutomate
MessageAutomate est une chaîne = e..Valeur
La valeur associée n'a aucune incidence sur les autres comportements des énumérations. En particulier l'ordre de tri reste celui de déclaration des valeurs dans l'énumération. Propriétés associées Les propriétés associées aux variables de type Enumération sont les suivantes : | | Nom | Permet de connaître le nom d'une variable de type Enumération. | Valeur | Permet de connaître la valeur associée d'une variable de type Enumération. |
Fonctions WLangage disponibles Une énumération peut être stockée dans une rubrique HFSQL ou dans un autre format de fichier. Selon les besoins, il peut être possible de stocker le nom (propriété Nom) ou la valeur de l'énumération (propriété Valeur). Les fonctions WLangage suivantes permettent de retrouver les caractéristiques d'une énumération stockée :
Limites - Les énumérations ne sont pas disponibles en compilation dynamique.
- Les énumérations ne sont pas utilisables hors projet.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|