DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Développer une application ou un site / Champs, fenêtres et pages / Champs : Types disponibles / Champ Table Hiérarchique
  • Présentation
  • Initialisation d'un champ Table hiérarchique
  • Ajout ou modification de lignes dans un champ Table hiérarchique
  • Ajout de lignes dans un champ Table hiérarchique
  • Modification d'une ligne ou d'une colonne
  • Gestion des colonnes calculées
  • Opérations sur les lignes et les cellules
  • Suppression d'une ligne
  • Sélection d'une ligne
  • Récupération d'une ligne ou d'une cellule
  • Valeur d'une cellule de la ligne en cours
  • Valeur d'une cellule pour une ligne spécifique
  • Contenu de la ligne en cours
  • Contenu d'une ligne spécifique
  • Opérations sur l'arborescence
  • Enrouler tous les noeuds d'un champ Table hiérarchique
  • Dérouler tous les noeuds d'un champ Table hiérarchique
  • Connaître le numéro de la ligne enroulée/déroulée
  • Définir le prochain état de la ligne ajoutée
  • Connaître et modifier les images des lignes
  • Connaître le parent ou les fils d'un élément
  • Propriétés spécifiques aux champs Table hiérarchique
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
Présentation
Voici les principaux points de la programmation des champs Table hiérarchique. Le WLangage met à votre disposition de nombreuses fonctions permettant de gérer par programmation les champs Table hiérarchique.
N'hésitez pas à consulter la documentation de ces fonctions. Pour plus de détails, consultez la liste des fonctions de gestion des champs Table hiérarchique.
Initialisation d'un champ Table hiérarchique
Pour remplir par programmation un champ Table hiérarchique, il est possible d'utiliser les fonctions suivantes :
Si une nouvelle ligne a été ajoutée dans un champ Table hiérarchique avec la fonction TableAjoute, TableInsere, TableAjouteLigne, TableAjouteFils, TableInsèreLigne ou TableInsèreFils, la propriété Nouveau est à Vrai (sinon elle est à Faux).
Ajout ou modification de lignes dans un champ Table hiérarchique

Ajout de lignes dans un champ Table hiérarchique

La création d'une ligne dans un champ Table hiérarchique n'est pas automatique. Elle doit être demandée explicitement par un appel aux fonctions :

Modification d'une ligne ou d'une colonne

Le contenu des lignes et des colonnes d'un champ Table hiérarchique peut être modifié :
  • par l'utilisateur, en saisissant directement dans les colonnes. Les modifications sont mémorisées automatiquement dans le champ Table hiérarchique, sans programmation complémentaire. La propriété Modifié est à Vrai.
  • par programmation :
    • avec la fonction TableModifie ou la fonction TableModifieLigne pour modifier le contenu de la ligne en cours ou d'une ligne donnée.
      Par exemple :
      TableModifie(TABLEH_CLIENT, "PY" + TAB + "Jean" + TAB + "Nîmes")

      Remarque : Il est également possible d'utiliser directement le nom du champ Table hiérarchique :
      // Modifier la ligne en cours
      TABLEH_CLIENT = "DURAND" + TAB + "Sophie" + TAB + "Nîmes"
      // Modifier la colonne COL_JOUR de la ligne 3
      TableModifie(COL_JOUR, "Mercredi"+ TAB + "Vaqué", 3)
    • directement en donnant le nom de la colonne (comme pour un champ de saisie) pour modifier le contenu de la colonne. Pour modifier une colonne d'une ligne précise, il faut indiquer le numéro de la ligne (indice).
      Par exemple :
      COL_NOM[Indice] = NomClient

      Pour modifier une colonne de la ligne en cours, il n'est pas nécessaire de préciser l'indice.
      Par exemple :
      COL_NOM = NomClient

      La propriété Modifié est à Faux (elle est mise à Vrai uniquement par une saisie dans le champ Table hiérarchique).

Gestion des colonnes calculées

La formule de calcul d'une colonne calculée doit être décrite dans l'événement "Affichage d'une ligne" du champ Table. Par exemple :
// COL_PHT : colonne calculée
// COL_PUHT et COL_QTE : colonnes liées à des zones mémoire
COL_PHT = COL_PUHT * COL_QTE
Opérations sur les lignes et les cellules

Suppression d'une ligne

La suppression d'une ligne doit être demandée explicitement à l'aide des fonctions TableSupprime et TableSupprimeFils.
  • La syntaxe utilisée pour la fonction TableSupprime est :
    TableSupprime(Champ Table hiérarchique>[, <Indice>])

    Si l'indice est précisé, la fonction TableSupprime supprime la ligne correspondant à l'indice. Sinon, elle supprime la ligne en cours.
    La suppression d'une ligne du champ Table hiérarchique supprime toutes les valeurs des colonnes pour cette ligne.
  • La syntaxe utilisée pour la fonction TableSupprimeFils est :
    TableSupprimeFils(<Champ Table hiérarchique>, <Indice de l'élément parent>)

    Tous les éléments fils de la ligne désignée par l'indice seront supprimés.

Sélection d'une ligne

La sélection d'une ligne s'effectue avec la fonction TableSelectPlus.
La syntaxe utilisée est :
TableSelectPlus(<Champ Table hiérarchique>[, <Indice>])

Récupération d'une ligne ou d'une cellule

Le contenu d'un champ Table hiérarchique peut être récupéré :
  • soit la ligne entière.
  • soit cellule par cellule.

Valeur d'une cellule de la ligne en cours

Pour récupérer la valeur d'une colonne (ou cellule) de la ligne en cours, la syntaxe est la même que pour un champ de saisie simple :
<Valeur> = <Nom_Colonne>
Par exemple :
// COL_QTE est une colonne d'un champ Table hiérarchique
SI COL_QTE < 10 ALORS
Info("Quantité insuffisante")
FIN

Valeur d'une cellule pour une ligne spécifique

Pour récupérer la valeur d'une colonne qui n'est pas sur la ligne en cours, il faut passer l'indice de la ligne :
<Valeur> = <Nom Colonne>[<Indice>]
Par exemple :
// Totaliser le Prix PHT pour toutes les lignes de commande
PrixTotal = 0
POUR Indice = 1 À TABLEH_COMMANDE.Occurrence
PrixTotal = PrixTotal + COL_PHT[Indice]
FIN

Contenu de la ligne en cours

Pour récupérer le contenu de la ligne en cours :
<Valeur> = <Champ Table hiérarchique>

Contenu d'une ligne spécifique

Pour récupérer le contenu de la ligne d'indice <Indice> :
<Valeur> = <Champ Table hiérarchique>[<Indice>]

Remarque : l'indice de la ligne en cours peut être connu par la fonction TableSelect. Par exemple :
// Récupérer le contenu de la ligne 10 du champ Table hiérarchique TABLEH_CLIENT
LigneEnCours = TABLEH_CLIENT[10]
// Nom du client sélectionné
NomClient = COL_NOM[TableSelect(TABLEH_CLIENT)]
// Récupérer le contenu de la ligne en cours du champ Table hiérarchique TABLEH_CLIENT
LigneEnCours = TABLEH_CLIENT
Opérations sur l'arborescence

Enrouler tous les noeuds d'un champ Table hiérarchique

Pour enrouler tous les noeuds de l'arbre d'un champ Table hiérarchique, utilisez la fonction TableEnrouleTout. La syntaxe utilisée est :
TableEnrouleTout(<Champ Table hiérarchique>)

Dérouler tous les noeuds d'un champ Table hiérarchique

Pour dérouler tous les noeuds de l'arbre d'un champ Table hiérarchique, utilisez la fonction TableDérouleTout. La syntaxe utilisée est :
TableDérouleTout(<Champ Table hiérarchique>)

Connaître le numéro de la ligne enroulée/déroulée

Pour connaître le numéro de la ligne qui est enroulée ou déroulée, il suffit d'utiliser le code "Enroulé, déroulé" d'un noeud du champ Table hiérarchique :
// Quelle est la ligne manipulée ?
Info(TABLEH_TableHiérarchique[TABLEH_TableHiérarchique])

Définir le prochain état de la ligne ajoutée

Il est possible de définir pour un champ Table hiérarchique l'état de la prochaine ligne qui sera ajoutée, à savoir enroulée ou déroulée. Pour cela, utilisez la propriété Enroulé.
// Les prochaines lignes ajoutées seront automatiquement enroulées
TABLEH_TableHiérarchique.Enroulé = Vrai

Connaître et modifier les images des lignes

Pour connaître et modifier les images des lignes d'un champ Table hiérarchique, utilisez les propriétés :
// Modifier les images des lignes du champ Table hiérarchique
TABLEH_TableHiérarchique.ImageDéroulée = "DossierOuvert.gif"
TABLEH_TableHiérarchique.ImageEnroulée = "DossierFermé.gif"

Connaître le parent ou les fils d'un élément

Il est possible de connaître le parent ou les fils d'un élément grâce aux fonctions suivantes :
  • TableRécupèreParent : Renvoie le "parent" d'un élément, c'est-à-dire l'élément de niveau immédiatement supérieur.
  • TableRécupèreFils : Renvoie les fils d'un élément, c'est-à-dire les éléments de niveau immédiatement inférieur.
Propriétés spécifiques aux champs Table hiérarchique
Les propriétés suivantes sont spécifiques à la gestion des caractéristiques d'un champ Table hiérarchique par programmation.
AjouteFilsDifféréPermet de définir la procédure qui sera appelée pour un remplissage différé d'une branche.
EnrouléPermet de connaître et définir l'état (enroulé ou déroulé) qui sera utilisé lors des prochains ajouts de lignes dans un champ Table hiérarchique.
FusionPermet de savoir si les cellules d'un champ Table hiérarchique (ou les titres de colonnes) sont fusionnées et permet de fusionner les cellules d'un champ Table hiérarchique (ou les titres de colonnes).
ImageDérouléePermet de connaître et de modifier l'image par défaut d'une ligne déroulée dans un champ Table hiérarchique.
ImageEnrouléePermet de connaître et de modifier l'image par défaut d'une ligne enroulée dans un champ Table hiérarchique.
MultisélectionPermet de connaître et de modifier le mode de sélection d'un champ Table hiérarchique.
NbFilsTotalRenvoie le nombre total de fils d'une branche d'un champ Table hiérarchique.
OptionTriPermet de connaître et de modifier les options de tri définies pour une colonne d'un champ Table hiérarchique.
RetraitGauchePermet de connaître ou modifier l'espace laissé à gauche du texte dans les colonnes d'un champ Table hiérarchique.
RubriqueParcouruePermet de connaître et de modifier la rubrique utilisée pour le parcours automatique des champs Table hiérarchique.
TaillePermet de connaître et de modifier le nombre de colonnes d'un champ Table hiérarchique.
TotauxActifPermet de connaître le mode de fonctionnement des calculs automatiques pour un champ Table hiérarchique et d'interdire ou de forcer les calculs automatiques dans un champ Table hiérarchique.

Pour connaître la liste complète des propriétés du WLangage pouvant être utilisées :
Version minimum requise
  • Version 11
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 30/05/2022

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