4D v16.3

Créer et utiliser des list box hiérarchiques

Accueil

 
4D v16.3
Créer et utiliser des list box hiérarchiques

Créer et utiliser des list box hiérarchiques  


 

 

4D vous permet de définir et d’utiliser des list box hiérarchiques. Une list box hiérarchique est une list box dans laquelle le contenu de la première colonne apparaît sous forme hiérarchique. Ce type de représentation est adapté à la présentation d’informations comportant des valeurs répétées et/ou hiérarchiquement dépendantes (pays/région/ville...).

Seules les list box de type tableau peuvent être hiérarchiques. 

Les list box hiérarchiques constituent un mode de représentation particulier des données, mais ne modifient pas la structure de ces données (les tableaux). Les list box hiérarchiques sont gérées exactement de la même manière que les list box non hiérarchiques.

Pour définir une list box hiérarchique, vous disposez de trois possibilités :

  • configurer manuellement les éléments hiérarchiques via la liste des propriétés dans l’éditeur de formulaires.
  • générer visuellement la hiérarchie à l’aide du pop up menu de gestion des list box, dans l’éditeur de formulaires.
  • utiliser les commandes LISTBOX SET HIERARCHY et LISTBOX GET HIERARCHY. Ces commandes sont décrites dans le manuel Langage de 4D.

Cette section présente la création et les principes d'utilisation des list box hiérarchiques dans l'éditeur de formulaires de 4D et en exécution. Pour plus d'informations sur la gestion programmée des list box hiérarchiques (sélections, ruptures, utilisation des événements formulaire On Expand et On Collapse...), reportez-vous à la section Gestion des List box hiérarchiques dans le manuel Langage de 4D.

Vous pouvez activer et configurer le mode hiérarchique à l'aide du thème "Hiérarchie" de la Liste des propriétés. Pour plus d'informations, reportez-vous à la section Propriétés spécifiques des List box.

Le menu contexuel de l’éditeur de formulaires propose les commandes Créer hiérarchie et Annuler hiérarchie lorsque vous cliquez sur un objet list box.

Lorsque vous sélectionnez au moins une colonne en plus de la première dans un objet list box (de type tableau) dans l’éditeur de formulaires, la commande Créer hiérarchie est disponible dans le menu contextuel :

Lorsque vous choisissez cette commande, les actions suivantes sont effectuées :

  • l’option "List box hiérarchique" est cochée pour l’objet dans la Liste des propriétés.
  • Les variables des colonnes sont utilisées pour définir la hiérarchie. Elles remplacent les variables éventuellement déjà définies.
  • Les colonnes sélectionnées n’apparaissent plus dans la list box (à l’exception du titre de la première).

Exemple : soit une list box dont les premières colonnes contiennent Pays, Région, Ville et Population. Lorsque Pays, Région et Ville sont sélectionnées (cf. illustration ci-dessus), si vous choisissez Créer hiérarchie dans le menu contextuel, une hiérarchie à trois niveaux est créée dans la première colonne, les colonnes 2 et 3 sont supprimées et la colonne Population la deuxième :

Lorsque la première colonne est sélectionnée et déjà définie comme hiérarchique, vous pouvez utiliser la commande Annuler hiérarchie. Lorsque vous choisissez cette commande, les actions suivantes sont effectuées :

  • l’option "List box hiérarchique" est désélectionnée pour l’objet,
  • les niveaux hiérarchiques 2 à n sont supprimés et transformés en colonnes ajoutées dans la list box.

A la première ouverture d’un formulaire contenant une list box hiérarchique, par défaut toutes les lignes sont déployées. 

Une ligne de rupture et un "noeud" hiérarchique sont automatiquement ajoutés dans la list box lorsque des valeurs sont répétées dans les tableaux. Par exemple, imaginons une list box contenant quatre tableaux définissant des villes, chaque ville étant caractérisée par un pays, une région, un nom et un nombre d’habitants : 

Si cette list box est affichée sous forme hiérarchique (les trois premiers tableaux étant inclus dans la hiérarchie), vous obtenez :

Les tableaux ne sont pas triés avant la construction de la hiérarchie. Si par exemple un tableau contient les données AAABBAACC, la hiérarchie obtenue sera :
    >    A
    >    B
    >    A
    >    C

Pour déployer ou contracter un "noeud" hiérarchique, cliquez dessus. Si vous effectuez Alt+clic (Windows) ou Option+clic (Mac OS) sur le noeud, tous ses sous-éléments seront déployés ou contractés.

Dans une list box en mode hiérarchique, un tri standard (effectué suite à un clic dans un en-tête de colonne de la list box) est toujours construit de la manière suivante :

  • En premier lieu, tous les niveaux de la colonne hiérarchique (première colonne) sont automatiquement triés par ordre croissant.
  • Le tri est ensuite effectué par ordre croissant ou décroissant (suivant l’action utilisateur) sur les valeurs de la colonne où le clic a eu lieu.
  • Toutes les colonnes sont synchronisées.   
  • Lors des tris ultérieurs des colonnes non hiérarchiques de la list box, seul le dernier niveau de la première colonne est trié. Il est possible de modifier le tri de cette colonne en cliquant sur son en-tête.

Soit par exemple la list box suivante, dans laquelle aucun tri spécifique n’est défini :

Si vous cliquez sur l’en-tête "Population" afin de trier les populations par ordre croissant (ou alternativement décroissant), les données apparaissent ainsi :

Comme pour toutes les list box, vous pouvez désactiver le mécanisme de tri standard en désélectionnant la propriété "Triable" pour la list box et gérer le tri par programmation.

Lorsque des valeurs de type date ou heure sont incluses dans une list box hiérarchique, elles sont affichées dans un format normalisé :

  • les dates sont affichées au format système court (par exemple, pour le 30 mai 2009, "05/30/09" sur un système américain et "30/05/09" sur un système européen).
  • les heures sont également affichées au format système court ("12:15:30" ou "12:15" en fonction des paramètres système).

 
PROPRIÉTÉS 

Produit : 4D
Thème : List box

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)