DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des champs
  • Appartenance des champs
  • Utilisation des champs récupérés
  • Cas des champs Onglet avec volets dynamiques
  • Erreur du WLangage
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
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é.
WINDEVWINDEV Mobile L'élément considéré peut être une fenêtre, un état, un groupe de champs, un champ Onglet, un champ Zone répétée ou un superchamp. Les champs Barre d'outils et Boîte à outils ne sont pas gérés.
WEBDEV - Code Serveur L'élément considéré peut être une page, un état, un groupe de champs, un champ Zone répétée, une rupture d'un champ Zone répétée, un champ Cellule ou un superchamp.
Exemple
WINDEVEtats et RequêtesUniversal Windows 10 AppJavaCode Utilisateur (MCU)
// Nom du champ 7 de la fenêtre "FEN_FenêtreSaisie"
ResChamp = EnumèreChamp(FEN_FenêtreSaisie, 7)
WINDEVEtats et RequêtesJavaCode Utilisateur (MCU)
// Remplir un champ Combo avec la liste des champs de la fenêtre
i est un entier = 1
ResChamp est une chaîne
ResChamp = EnumèreChamp(FEN_FenêtreSaisie, i)
TANTQUE ResChamp <> ""
i++
ListeAjoute(COMBO_ListeChamp, ResChamp)
ResChamp = EnumèreChamp(FEN_FenêtreSaisie, i)
FIN
WEBDEV - Code ServeurAjax
// Nom du champ 7 de la page "PAGE_MaPage"
ResChamp = EnumèreChamp(PAGE_MaPage, 7)
WEBDEV - Code ServeurAjax
// Remplir un champ Combo avec la liste des champs de la page
i est un entier = 1
ResChamp est une chaîne
ResChamp = EnumèreChamp(PAGE_MaPage, i)
TANTQUE ResChamp <> ""
i++
ListeAjoute(COMBO_ListeChamp, ResChamp)
ResChamp = EnumèreChamp(PAGE_MaPage, i)
FIN
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].
WEBDEV - Code Serveur Nom de l'objet "parent" (contenant le champ). Ce paramètre correspond au nom d'une page, d'un état, d'un groupe de champs, d'un champ Zone répétée, d'une rupture d'un champ Zone répétée, d'un champ Cellule ou d'un superchamp.
<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.

WEBDEV - Code Serveur Ce paramètre n'est pas disponible.
Remarques

Appartenance des champs

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é)
WEBDEV - Code Serveur Pour effectuer une indirection sur un champ d'une page, l'option "Support des indirections (ralentit l'exécution)" doit être cochée (onglet "Détail" de la fenêtre de description du champ).
WINDEV

Cas des champs Onglet avec volets dynamiques

Si le paramètre <Objet "parent"> correspond au nom d'un champ Onglet avec des volets dynamiques, les alias des volets dynamiques sont énumérés.

Erreur du WLangage

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.
Composante : wd290vm.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Enumération Champs de l'onglet actif
<BLOC Recherche de l'onglet Actif>
LOCAL
NomChampOnglet est une chaîne = FEN_TEST_001.Onglet1..NomComplet
IndiceOnglet est une chaîne = EnumèreSousElément(NomChampOnglet,enumPremier+enumVolet)

TANTQUE IndiceOnglet <> ""
SI {NomChampOnglet} = IndiceOnglet ALORS

<BLOC Enumération Champ de l'onglet Actif>
IndiceChamp est un entier = 1
NomChamp est une chaîne = EnumèreChamp({NomChampOnglet+"["+IndiceOnglet+"]"}, IndiceChamp)
TANTQUE NomChamp <> ""
Trace(NomChamp)
IndiceChamp++
NomChamp = EnumèreChamp({NomChampOnglet+"["+IndiceOnglet+"]"}, IndiceChamp)
FIN
<FIN>

FIN
IndiceOnglet = EnumèreSousElément(NomChampOnglet,enumVolet)
FIN
<FIN>
Baptiste - BLV TECH
25 juil. 2022
Enumération d'un onglet statique ou dynamique
Pour énumérer le contenu d'un onglet statique : le nom de l'objet "parent" doit être le nom de l'onglet + "[x]" où x est l'indice de l'onglet.

Pour énumérer le contenu d'un onglet dynamique : le nom de l'objet "parent" doit être le nom de l'onglet + ".X" ou X est l'énumération de l'onglet avec son indice en paramètre.

L'indice maximum d'un onglet se récupère au choix avec Champ_Onglet..Occurrence ou Occurrence(Champ_Onglet) ou Champ_Onglet.Occurrence()
Patrick ALLÉMOZ
09 déc. 2021
Attributs de zone répétée
A noter:
Lorsque l'on parcourt une zone répétée, les attributs ne sont pas listés avec la fonction EnumèreChamp.
A la différence de la fonction gpwEnumèreChamp.
Emmanuel LANGUEBIEN
05 juil. 2019
Précision avec type de l'énumération
Si un type est précisé, il faut le préciser à chaque énumération et non pas seulement au début.

// Remplir une combo avec la liste des champs de la page dans l'ordre de tabulation
i est un entier = 1
ResChamp est une chaîne
ResChamp = EnumèreChamp(PAGE_MaPage, i, parOrdreDeTabulation)
TANTQUE ResChamp <> ""
i++
ListeAjoute(LISTE_ListeChamp, ResChamp)
ResChamp = EnumèreChamp(PAGE_MaPage, i, parOrdreDeTabulation)
FIN
Emmanuel LANGUEBIEN
10 juin 2014

Dernière modification : 15/12/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale