|
|
|
|
|
- Appartenance des champs
- Utilisation des champs récupérés
- Cas des champs Onglet avec volets dynamiques
- Enumérer les sous-éléments
- Erreur du WLangage
EnumèreChamp (Fonction) En anglais : EnumControl Renvoie le nom du Nème champ de l'élément considéré. Cet élément doit être affiché. Utilisée dans une boucle, cette fonction peut permettre d'énumérer les champs de l'élément considéré. Syntaxe
<Résultat> = EnumèreChamp(<Objet "parent"> , <Numéro du champ> [, <Type de l'énumération>])
<Résultat> : Chaîne de caractères - Nom du champ trouvé,
- Chaîne vide ("") si aucun champ n'a été trouvé.
<Objet "parent"> : Chaîne de caractères Nom de l'objet "parent" (contenant le champ). Ce paramètre correspond au nom d'une fenêtre, d'un champ Zone répétée, d'une rupture d'un champ Zone répétée, d'un groupe, d'un champ Onglet, d'un superchamp ou d'un état.Si l'objet "parent" est un champ Onglet, la notation suivante doit être utilisée : <Nom du champ Onglet>[<Numéro du volet d'onglet>]. Par exemple : ONG_Onglet1[2]. <Numéro du champ> : Entier Numéro du champ dont le nom est recherché. Chaque champ est associé à un numéro. Ce numéro correspond :- soit à l'ordre de création des champs (par défaut) si le type d'énumération est effectué avec la constante parOrdreDeCréation
- soit à l'ordre de navigation (c'est-à -dire l'ordre de prise de focus des champs dans l'objet "parent") si le type d'énumération est effectué avec la constante parOrdreDeTabulation.
La touche F5 permet de visualiser l'ordre de navigation sous l'éditeur de fenêtres / de pages.
<Type de l'énumération> : Constante optionnelle de type Entier Ordre dans lequel l'énumération est réalisée :
| | parAltitude | Énumération effectuée selon l'altitude des champs, du plus bas au plus haut. | parOrdreDeCréation (Valeur par défaut) | Énumération effectuée selon l'ordre de création des champs (sous l'éditeur ou avec la fonction ChampClone). | parOrdreDeTabulation | Énumération effectuée selon l'ordre de navigation avec la touche de tabulation (Tab). Les champs qui ne sont pas accessibles par la touche de tabulation (Tab) sont listés à la fin. |
Remarques Seuls les champs appartenant directement à l'objet "parent" spécifié sont énumérés. Par exemple, si le paramètre <Objet "parent"> correspond au nom d'une fenêtre (ou d'une page), la fonction EnumèreChamp fonctionne uniquement pour les champs appartenant directement à cette fenêtre (à cette page). La fonction EnumèreChamp ne permet pas de récupérer les noms des champs appartenant aux champs Onglet ou aux superchamps de cette fenêtre (de cette page). Utilisation des champs récupérés Lorsque le nom d'un champ obtenu par la fonction EnumèreChamp est contenu dans une variable, le champ lui-même peut être utilisé grâce aux opérateurs d'indirection (les accolades { et }). Exemple : // Nom du champ 7 de la page NomChamp est une chaîne = EnumèreChamp(MaPage, 7) // Libellé du champ ToastAffiche({NomChamp}..Libellé) Enumérer les sous-éléments La fonction EnumèreChamp, utilisée dans une boucle, permet de lister les champs d'une fenêtre. Toutefois, cette fonction ne descend pas dans l'arborescence des champs : par exemple, elle ne liste pas les champs contenus dans les volets d'un champ Onglet d'une fenêtre.
Pour descendre dans l'arborescence des champs, il est possible d'utiliser la fonction EnumèreSousElement, en complément : j est entier = 1
ResChamp est chaîne
ResChamp = EnumèreChamp(MaFenêtre.Nom, j)
TANTQUE ResChamp <> ""
j++
Trace(ResChamp)
ListeElément(MaFenêtre.Nom + "." + ResChamp)
ResChamp = EnumèreChamp(MaFenêtre.Nom, j)
FIN
PROCÉDURE INTERNE ListeElément (NomElt)
i est entier = 1
sReschampSousElt est chaîne
sReschampSousElt = EnumèreSousElément(NomElt, i)
TANTQUE sReschampSousElt <> ""
i++
Trace(NomElt+"."+sReschampSousElt)
ListeElément(NomElt +"."+ sReschampSousElt)
sReschampSousElt = EnumèreSousElément(NomElt, i)
FIN
FIN
Une erreur du WLangage est générée si : - Le paramètre <Numéro du champ> est négatif.
- Le paramètre <Numéro du champ> est plus grand que le nombre de champs contenu dans l'<Objet "parent"> +1. Cela permet d'éviter les boucles sans fin.
- L'<Objet "parent"> n'est ni une fenêtre, ni une page, ni un état, ni un groupe, ni un champ Onglet, ni un superchamp.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|