PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • 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
  • Reprendre la saisie dans une colonne
  • Ajout ou suppression 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 lors d'un ajout
  • Connaître et modifier les images des lignes
  • Colonne hiérarchique de type Interrupteur
  • 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/iPadApple WatchUniversal Windows 10 AppWindows Mobile
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 à consultez la documentation de ces fonctions. Pour plus de détails, consultez la liste des fonctions de gestion des champs Table hiérarchique.
Versions 18 et supérieures
WEBDEV - Code ServeurWindowsLinux Le champ Table hiérarchique est désormais disponible pour les sites WEBDEV.
PHP Le champ Table hiérarchique est désormais disponible pour les sites PHP.
Nouveauté 18
WEBDEV - Code ServeurWindowsLinux Le champ Table hiérarchique est désormais disponible pour les sites WEBDEV.
PHP Le champ Table hiérarchique est désormais disponible pour les sites PHP.
WEBDEV - Code ServeurWindowsLinux Le champ Table hiérarchique est désormais disponible pour les sites WEBDEV.
PHP Le champ Table hiérarchique est désormais disponible pour les sites PHP.
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).
Versions 19 et supérieures
WINDEV Remarque : Pour optimiser le remplissage d'un champ Table hiérarchique, il est possible d'utiliser la propriété ..AjouteFilsDifféré sur les lignes du champ Table hiérarchique.
Dans ce cas, le principe du remplissage est simplifié :
  • A l'initialisation du champ, seul les éléments du premier niveau sont chargés. Chaque élément est associé à la propriété ..AjouteFilsDifféré.
  • Lorsque l'utilisateur clique sur l'élément de premier niveau pour le dérouler, la procédure définie par la propriété ..AjouteFilsDifféré est exécutée. Cette procédure effectue le remplissage du niveau à dérouler. La recherche des fils n'est effectuée que lorsque l'utilisateur demande à les voir.
Nouveauté 19
WINDEV Remarque : Pour optimiser le remplissage d'un champ Table hiérarchique, il est possible d'utiliser la propriété ..AjouteFilsDifféré sur les lignes du champ Table hiérarchique.
Dans ce cas, le principe du remplissage est simplifié :
  • A l'initialisation du champ, seul les éléments du premier niveau sont chargés. Chaque élément est associé à la propriété ..AjouteFilsDifféré.
  • Lorsque l'utilisateur clique sur l'élément de premier niveau pour le dérouler, la procédure définie par la propriété ..AjouteFilsDifféré est exécutée. Cette procédure effectue le remplissage du niveau à dérouler. La recherche des fils n'est effectuée que lorsque l'utilisateur demande à les voir.
WINDEV Remarque : Pour optimiser le remplissage d'un champ Table hiérarchique, il est possible d'utiliser la propriété ..AjouteFilsDifféré sur les lignes du champ Table hiérarchique.
Dans ce cas, le principe du remplissage est simplifié :
  • A l'initialisation du champ, seul les éléments du premier niveau sont chargés. Chaque élément est associé à la propriété ..AjouteFilsDifféré.
  • Lorsque l'utilisateur clique sur l'élément de premier niveau pour le dérouler, la procédure définie par la propriété ..AjouteFilsDifféré est exécutée. Cette procédure effectue le remplissage du niveau à dérouler. La recherche des fils n'est effectuée que lorsque l'utilisateur demande à les voir.
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 :
WINDEV Remarque : Si l'option "Saisie en cascade" n'est pas sélectionnée :
  • Le champ Table hiérarchique ne comporte aucune ligne à sa création. Dans ce cas, aucune saisie n'est possible. La propriété ..Vide est à Vrai.
  • Pour insérer automatiquement une ligne dans un champ Table hiérarchique vide, utilisez la fonction TableAjoute ou TableAjouteLigne.

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 la table hiérarchique, sans programmation complémentaire. La propriété ..Modifie 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 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 la table hiérarchique).
WINDEVWINDEV Mobile

Reprendre la saisie dans une colonne

La fonction RepriseSaisie peut être utilisée pour se replacer en saisie sur une colonne, de la ligne en cours. Par exemple :
// Traitement d'entrée colonne COL_QTE
// COL_QTE ne peut pas être saisi si COL_PRODUIT n'est pas saisi
SI SansEspace(COL_PRODUIT) = "" ALORS
        Erreur("La colonne Produit doit être saisie en premier")
        RepriseSaisie(COL_PRODUIT)
FIN
WINDEVWINDEV Mobile

Ajout ou suppression d'une colonne

Il est possible de :
  • ajouter une colonne dans une table hiérarchique grâce à la fonction ChampClone.
  • supprimer une colonne dans une table hiérarchique grâce à la fonction ChampSupprime.

Gestion des colonnes calculées

La formule de calcul d'une colonne calculée doit être décrite dans le traitement "Affichage d'une ligne de 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(<Nom 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 de la table hiérarchique supprime toutes les valeurs des colonnes pour cette ligne.
  • La syntaxe utilisée pour la fonction TableSupprimeFils est :
    TableSupprimeFils(<Nom 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(<Nom 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 de la 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 A 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> = <Nom Table hiérarchique>

Contenu d'une ligne spécifique

Pour récupérer le contenu de la ligne d'indice <Indice> :
<Valeur> = <Nom Table hiérarchique>[<Indice>]
Remarque : l'indice de la ligne en cours peut être connu par la fonction TableSelect. Par exemple :
// Récupérer la ligne 10 dans table hiérarchique TABLEH_CLIENT
LigneEnCours = TABLEH_CLIENT[10]
// Nom du client sélectionné
NomClient = COL_NOM[TableSelect(TABLEH_CLIENT)]
// Récupérer la ligne en cours dans 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(<Nom 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(<Nom Table hiérarchique>)
Versions 19 et supérieures
WINDEV Remarque : Si le champ Table hiérarchique utilise le remplissage différé des sous-niveaux via la propriété ..AjouteFilsDifféré, la procédure de remplissage des sous-niveaux sera exécutée pour chaque nouvel élément déroulé.
Nouveauté 19
WINDEV Remarque : Si le champ Table hiérarchique utilise le remplissage différé des sous-niveaux via la propriété ..AjouteFilsDifféré, la procédure de remplissage des sous-niveaux sera exécutée pour chaque nouvel élément déroulé.
WINDEV Remarque : Si le champ Table hiérarchique utilise le remplissage différé des sous-niveaux via la propriété ..AjouteFilsDifféré, la procédure de remplissage des sous-niveaux sera exécutée pour chaque nouvel élément déroulé.

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 lors d'un ajout

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 de la table hiérarchique
TABLEH_TableHiérarchique..ImageDéroulée = "DossierOuvert.gif"
TABLEH_TableHiérarchique..ImageEnroulée = "DossierFermé.gif"

Colonne hiérarchique de type Interrupteur

Il est possible de définir dans un champ Table hiérarchique une colonne de type Interrupteur comme "Colonne hiérarchique". Dans ce cas, la colonne interrupteur permet de gérer la hiérarchie.
La propriété ..Libellé de la ligne permet de connaître et modifier le libellé présent à côté de l'interrupteur. La propriété ..Valeur de la ligne permet de connaître et de modifier la valeur de l'interrupteur.

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.
Versions 19 et supérieures
AjouteFilsDifféré
Nouveauté 19
AjouteFilsDifféré
AjouteFilsDifféré
Permet de définir la procédure qui sera appelée pour un remplissage différé d'une branche.
EnrouléPermet de 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.
Versions 19 et supérieures
NbFilsTotal
Nouveauté 19
NbFilsTotal
NbFilsTotal
Renvoie 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