|
Started by tacfl, May, 19 2017 3:04 PM - 3 replies |
| |
| | | |
|
| |
Registered member 13 messages |
|
Posted on May, 19 2017 - 3:04 PM |
Bonjour,
Je travaille en ce moment (sur Windev 21) sur une application qui a pour but de gérer une base de données (avec accès natif Mysql) et d'afficher sous forme d'un arbre hiérarchisé les éléments,sous-éléments, etc qu'elle contient. Pour faire cela j'utilise donc la fonction ArbreAjoute afin de placer l'élément en cours où je le désire. Cependant, pour chaque élément je dois faire un ArbreAjoute et donc faire une boucle sur chaque fichier contenant mes élément de différent niveau (voir code ci-dessous). Le problème de cette méthode c'est qu'elle est particulièrement longue (car je suis obligé de la faire lors de l'initialisation de l'arbre) surtout lorsque que le nombre d'éléments augmente. Existerait-il une autre méthode me permettant d’accélérer l'initialisation de l'arbre?
Merci d'avance pour votre aide, Cordialement,
POUR TOUT Test_Projet ArbreAjoute(ARBRE_test,Test_Projet.Nom) POUR TOUT Test_Produit SI Test_Produit.Date_de_garantie < DateDuJour() ET Test_Produit.infogarantie = Faux ALORS Info(Test_Produit.Nom + " a dépassée la date de garantie") Test_Produit.infogarantie=Vrai HEnregistre(Test_Produit) FIN SI Test_Produit.IDTest_Projet=Test_Projet.IDTest_Projet ALORS ArbreAjoute(ARBRE_test,Test_Projet.Nom + TAB + Test_Produit.Nom) POUR TOUT Test_Carte SI Test_Carte.Date_de_garantie < DateDuJour() ET Test_Carte.infogarantie = Faux ALORS Info(Test_Carte.Nom + " a dépassée la date de garantie") Test_Carte.infogarantie=Vrai HEnregistre(Test_Carte) FIN SI Test_Carte.IDTest_Produit=Test_Produit.IDTest_Produit ALORS ArbreAjoute(ARBRE_test,Test_Projet.Nom + TAB + Test_Produit.Nom + TAB + Test_Carte.Nom) FIN FIN FIN FIN FIN Message modified, May, 19 2017 - 3:19 PM |
| |
| |
| | | |
|
| | |
| |
Posted on May, 19 2017 - 7:56 PM |
Tu peux créer une table fichier, et il y a alors la possibilité de faire une table hiérarchique qui correspond à ton besoin.
Si tu souhaites rester sur des tables mémoire, il va falloir lire toutes les données, en se débrouillant pour les lire à peu près dans l'ordre, puis pour chaque ligne lue, il faut faire un TableCherche() avant le TableAjouteFils() |
| |
| |
| | | |
|
| | |
| |
Registered member 2,574 messages Popularité : +222 (260 votes) |
|
Posted on May, 20 2017 - 3:31 PM |
Bonjour,
Regarde la propriété AjouteFilsDiffere.
-- Cordialement,
Philippe SAINT-BERTIN Géode Informatique |
| |
| |
| | | |
|
| | |
| |
Registered member 5 messages |
|
Posted on June, 03 2017 - 12:00 PM |
Bonjour,
Sur votre arbre, vous pouvez deja passer la propriété ..AffichageActif a faux pendant tout le remplissage, ce qui evite des recalculs a chaque arbreAjoute. Ensuite, ayant eu un peu la meme problematique sur une table hierarchique, j'ai fini par ne remplir que le premier niveau, puis le niveau suivant que lorsque l'utilisateur selectionne un elt dans l'arbre. On ne voit pas du coup s'il s'agit d'une feuille ou d'une branche. Sinon, faire un mixte, ne remplir que les 2ers niveaux, et remplir le 3eme a la volée qd l'utilisateur selectionne le 1er... |
| |
| |
| | | |
|
| | | | |
| | |
|