DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Projets
  • Énumération des volets d'un champ Onglet (ou d'un champ Ruban)
  • Énumération des volets d'un champ Boîte à outils
  • Limite
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
EnumèreSousElément (Fonction)
En anglais : EnumSubElement
Permet d'énumérer les sous-éléments d'un élément du projet. Cette fonction peut être exécutée même si l'élément n'est pas ouvert.
Utilisée dans une boucle, cette fonction peut permettre d'énumérer les champs d'une fenêtre (ou d'une page) d'un projet.
Remarque : Cette fonction ne peut pas être utilisée sur les états ou sur les requêtes.
WINDEVCode Utilisateur (MCU)
// Énumération des champs d'une fenêtre d'un projet
NomChamp est une chaîne = EnumèreSousElément("MaFenêtre", enumPremier)
// Parcours tous les champs
TANTQUE NomChamp <> ""
Trace(NomChamp)
// Passage au champ suivant
NomChamp = EnumèreSousElément("MaFenêtre")
FIN
WINDEVCode Utilisateur (MCU)
// Parcours des volets d'un champ Onglet
NomChamp est une chaîne = EnumèreSousElément("FEN_Fenêtre1.Onglet1", enumPremier + enumVolet)
 
// Parcours de tous les volets du champ Onglet
TANTQUE NomChamp <> ""
// Passage au volet suivant
Trace(NomChamp)
NomChamp = EnumèreSousElément("FEN_Fenêtre1.Onglet1", enumVolet)
FIN
WINDEVCode Utilisateur (MCU)
// Parcours des champs d'une fenêtre et affichage de leur type et libellé.
sParent est une chaîne = "FEN_SAISIE_CLIENT"
sNomChamp est une chaîne = EnumèreSousElément(sParent, enumPremier)
TANTQUE sNomChamp <> ""
 
// Nom complet du champ
sNomComplet est une chaîne = sParent + "." + sNomChamp
// Récupération du type de l'élément
nType est un entier = {sNomComplet, indGPW}..Type
 
// Si c'est un groupe de champs ou un champ Onglet
SI nType = typOnglet OU nType = typTable OU nType = typBarreOutils OU ...
nType = typBoîteAOutils OU nType = typSuperChamp ALORS
// Enumération des champs qui sont à l'intérieur
Trace(sNomComplet)
SINON
// Ne fait rien si c'est une option de menu
SI nType <> typOptionMenu ALORS
// Ajout de l'élément dans la trace
Trace(sNomComplet, nType, {sNomComplet, indGPW}..Libellé, ...
{sNomComplet, indGPW}..Groupe)
FIN
FIN
 
// Champ suivant
sNomChamp = EnumèreSousElément(sParent)
FIN
Syntaxe
<Résultat> = EnumèreSousElément(<Elément> [, <Option>])
<Résultat> : Chaîne de caractères
  • Nom complet de l'élément trouvé (par exemple <NomFenêtre/Page>.<NomChamp>),
  • Chaîne vide ("") si aucun élément n'a été trouvé.
<Elément> : Chaîne de caractères
Nom complet de l'élément à énumérer. Pour un champ, ce paramètre est de la forme <Nom de la fenêtre/page>.<Nom du champ> (par exemple "MaFenêtre.MaTable").
<Option> : Constante optionnelle
Paramètre à spécifier au premier appel à la fonction (pour lancer l'énumération). Pour poursuivre l'énumération, ce paramètre n'est pas nécessaire.
enumBoiteOutilsÉnumère les volets d'une boîte à outils.
enumGroupeÉnumère les groupes d'une fenêtre ou d'une page
enumMenuContextuelÉnumère les menus contextuels d'une fenêtre.
enumMenuPrincipalÉnumère les menus déroulant d'une fenêtre. Il est également possible d'utiliser la fonction EnumèreMenu.
enumPremierInitialise l'énumération
enumVoletÉnumère les volets d'un champ Onglet ou d'un champ Ruban.

Attention : pour initialiser le parcours, il faut utiliser les combinaisons suivantes :
  • enumPremier pour énumérer les champs d'une fenêtre ou d'une page.
  • enumPremier + enumGroupe pour énumérer les groupes d'une fenêtre ou d'une page.
  • enumPremier + enumVolet pour énumérer les volets d'un champ Onglet ou d'un champ Ruban.
  • enumPremier + enumMenuContextuel pour énumérer les menus contextuels.
  • enumPremier + enumBoiteOutils pour énumérer les volets d'un champ Boîte à outils.
  • enumPremier + enumMenuPrincipal pour énumérer les menus principaux d'une fenêtre ou d'une page.
Remarques
WINDEVCode Utilisateur (MCU)

Énumération des volets d'un champ Onglet (ou d'un champ Ruban)

Par défaut, la fonction EnumèreSousElément utilisée sur un champ Onglet énumère tous les champs de tous les volets sans faire apparaître le volet.
En précisant la constante enumVolet, la fonction EnumèreSousElément utilisée sur un champ Onglet énumère tous les volets d'onglet (mais pas les champs contenus dans les volets d'onglet). Le résultat obtenu est du type "<n>" où <n> est le numéro du volet d'onglet. Pour obtenir le libellé du volet d'onglet, utilisez la propriété Libellé.
Pour énumérer les champs de chaque volet d'onglet, il faut relancer une énumération sur le volet à partir de son numéro :
EnumèreSousElement("<fenêtre>.<onglet>.<n>")
Remarque : La propriété Occurrence permet de connaître le nombre de volets d'un champ Onglet.
Exemple :
// Parcours des volets d'un champ Onglet
NomChamp est une chaîne = EnumèreSousElément("FEN_Menu.Ong_Visualisation", ...
enumPremier + enumVolet)
 
// Parcours de tous les volets d'onglet
TANTQUE NomChamp <> ""
// Passage au volet suivant
Trace(NomChamp)
Trace(ONG_Visualisation[NomChamp].Libellé)
// Parcours des champs du volet
NomChamp2 est une chaîne =
NomChamp2 = EnumèreSousElément("FEN_Menu.Ong_Visualisation." + NomChamp, enumPremier)
TANTQUE NomChamp2 <> ""
Trace(NomChamp2)
NomChamp2 = EnumèreSousElément("FEN_Menu.Ong_Visualisation." + NomChamp)
FIN
NomChamp = EnumèreSousElément("FEN_Menu.Ong_Visualisation", enumVolet)
FIN
WINDEVCode Utilisateur (MCU)

Énumération des volets d'un champ Boîte à outils

Par défaut, la fonction EnumèreSousElément utilisée sur un champ Boîte à outils énumère tous les champs de tous les volets du champ Boîte à outils sans faire apparaître le volet.
En précisant la constante enumBoiteOutils, la fonction EnumèreSousElément utilisée sur un champ Boîte à outils énumère tous les volets (mais pas les champs contenus dans les volets). Le résultat obtenu est du type "<n>.<libellé>" où <n> est le numéro du volet et <libellé> son libellé.
Pour énumérer les champs de chaque volet du champ Boîte à outils, il faut relancer une énumération sur le volet à partir de son numéro :
EnumèreSousElement("<Fenêtre/Page>.<Boîte à outils>.<n>")

Limite

Cette fonction ne permet pas d'énumérer les sous-éléments d'un élément présent dans un composant.
Classification Métier / UI : Code neutre
Composante : wd300gpu.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
La double syntaxe pour les Onglets complique la programmation
2 syntaxes pour indiquer le numéro de volet:
Onglet[NumVolet].xxx
Onglet.NumVolet.xxx
Chacune retourne une erreur selon les fonctions utilisées.

Syntaxe EnumèreSousElément sur Volet nº 2 :

Correcte : EnumèreSousElément("FEN_ MaFen.SC_F.ONG_1.2.TABLE_Champs", enumPremier)

Erronée :
EnumèreSousElément("FEN_ MaFen.SC_F.ONG_1[2].TABLE_Champs", enumPremier)


Syntaxe lecture Propriétés sur Volet nº 2 :
Erronée :
{"FEN_MaFen.SC_F.ONG_1.2.TABLE_Champs",indChamp}..Libellé

Correcte :
{"FEN_ MaFen.SC_F.ONG_1[2].TABLE_Champs",indChamp}..Libellé

AntonioDev
06 oct. 2020

Dernière modification : 25/05/2022

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