Nous avons un objet récursif sur plusieurs niveaux.
Nous cherchons un moyen de l’afficher de façon “dépliable” : une liste des niveaux 1 qu’on peut déplier chacun de façon récursive.
Mais sans devoir cliquer sur les n1 un par un.
Tout dépend de ce qu’on veut en front, une liste avec des colonnes recherchables (comme le panel des attributs d’objet), un arbre TreeView avec une recherche simple avec bcp moins de fonctionnalités mais qui permet de parcourir des objets différents par relations façon “menu”.
Pour reproduire un affichage en table panel, il faut avoir un objet parent pour filtrer les records du panel fils. Par exemple :
créer un objet “XRoot” qui filtre la racine unique de tous les niveaux 1 : search spec qui ramène la racine de l’arbre
et l’objet réflexif “XNodes” avec un lien (physique ou virtuel) 0,n vers ce root en Panel.
Ensuite il suffira d’ouvrir le formulaire de la racine XRoot / simplifier l’affichage pour surtout voir le panel XNodes en dessous..
Merci beaucoup pour ta réponse rapide, l’objet racine est une super idée.
Pour le treeView, y a-t-il une doc quelque part pour le manipuler ? Parce que jusqu’ici je n’ai réussi qu’à l’afficher à partir d’une instance donnée. Ou alors là aussi je dois utiliser l’objet racine ?
Le TreeView est accessible depuis chaque record de l’arbre qui en devient la racine dans un écran splitté en 2.
Sinon il y a le mode d’affichage en menu principal mais plutôt si on veut afficher un catalogue par exemple.
Quel que soit l’affichage, il faut modéliser quelque part au niveau logique le père des niveaux 1 :
soit un lien reflexif vers un record “ROOT” unique
soit une jointure avec un autre objet si les niveaux 1 ont tous le même lien vers une autre entité : le niveau 1 des type X, le niveau 1 des types Y…
Ca me donne l’idée de faire évoluer l’affichage en “group-by”, qui permet de grouper les listes sur 1 niveau, pouvant servir de “racine” à un affichage en arbre dans chaque groupement de données d’un objet réflexif.