OVH Cloud OVH Cloud

Comment faire un arbre avec plusieurs tables

4 réponses
Avatar
Cazaux-Moutou Philippe
Bonjour

j ai 4 tables
DP
EDP
ADP
CL
qui on des clefs de liasons

je voudrais representé ces tables sous une forme d arbre
ex: comme ceci

DP 1
EDP
ADP CL
EDP
ADP CL
DP 2
EDP
ADP CL

etc

comment faire ca ?

merci

4 réponses

Avatar
Cazaux-Moutou Philippe
Bien sur que j ai essayé
j arrives a le remplir mais qu avec la 1ere table, je ne comprends pas
comment se servir des autres tables

voici mon code

PROCEDURE doInitArbre()

ArbreSupprimeTout(ARBRE_Arbre1)

HLitPremier(Domaines_publics,"IDDomaines_publics" )

TANTQUE HEnDehors() = Faux

// Ajout dans l'arbre

ArbreAjoute(ARBRE_Arbre1, Domaines_publics.DP_Libelle + TAB +
Domaines_publics.DP_Ville ,IMG_Image1, IMG_Image1, "toto")


HLitSuivant(Domaines_publics, "IDDomaines_publics")

FIN

merci



"Gilles" a écrit dans le message de news:

Après mure réflexion, Cazaux-Moutou Philippe a écrit :
Bonjour

j ai 4 tables
DP
comment faire ca ?



As-tu essayé de le faire?
tu n'es pas obligé d'avoir une racine et des enfants...
Rien n'empêche d'avoir N éléments père au niveau 0.




Avatar
Cazaux-Moutou Philippe
Bon voici ce que je fais,

ca correspond a ce que je voudrais, mais comme je débutes en windev, est ce
bon ?
et y a quand meme un petit pb au niveau des icones celle du 1er niveau du
1er item et du dernier item, ne sont pas les bonnes

voir l image ici

http://www.ancestrologie.com/france/test/A1.jpg

pourquoi

merci
----------------------------------------------------------------------------------------------------------------------------------

HLitPremier(Attribution_DDP, "IDAttribution_DDP" )

nIDDP, nADP_Place, nADP_Client, clefiltre est un entier

aLib, aPlace, aClient est une chaîne

TANTQUE HEnDehors() = Faux

// Ajout dans l'arbre

nIDDP = Attribution_DDP.IDDomaines_publics

nADP_Place = Attribution_DDP.ADP_Num_Place

nADP_Client = Attribution_DDP.IDUtilisateurs


// On recherche le libellé du DP -----------------------------------------

HLitRecherchePremier(Domaines_publics, IDDomaines_publics,nIDDP)


SI HTrouve() ALORS

aLib = Domaines_publics.IDDomaines_publics +"-"+Domaines_publics.DP_Libelle

ArbreAjoute(ARBRE_Arbre1, aLib, aDéfaut, aDefault,
Attribution_DDP.IDAttribution_DDP)

FIN

// on recheche le libellé de l'emplacement ------------------------------

HLitRecherchePremier(Emplacements, IDEmplacements, nADP_Place)


SI HTrouve() ALORS

aPlace = Emplacements.EMP_Libelle

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace, IMG_Image1, IMG_Image1,
Emplacements.IDEmplacements)

FIN


// on recherche le libellé du client ----------------------------------

HLitRecherchePremier(Utilisateurs, IDUtilisateurs, nADP_Client)


SI HTrouve() ALORS

aClient = Utilisateurs.Cl_Nom

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace + TAB + aClient, IMG_Image2,
IMG_Image2, Utilisateurs.IDUtilisateurs)

FIN


HLitSuivant(Attribution_DDP, "IDAttribution_DDP" )

FIN

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



"Gilles" a écrit dans le message de news:

Il se trouve que Cazaux-Moutou Philippe a formulé :
Bien sur que j ai essayé
j arrives a le remplir mais qu avec la 1ere table, je ne comprends pas
comment se servir des autres tables



Il te suffit d'imbriquer le traitement.
Voilà en gros ce que ça donnerait

Tu fais ta boucle de parcours de la 1ere table
Tu ajoutes et mémorise l'élément que tu viens d'ajouter.
Tu met dans cette boucle la 2eme boucle de parcours de 2eme table...
Tu ajoutes en ajoutant le chemin du père mémorisé pour que ça soit
placé au bon endroit...
Et ainsi de suite jusqu'à la énième table
(Si tu fais des procédures, ca ne sera pas plus mal au niveau
lisibilité, au moins une par table descendante)



Avatar
Alexey K.
Moi j'aurais fait comme ceci :

-une requête qui te ramène un tableau composé de tes 4 tables
R=T1,T2,T3,T4 (toutes les colonnes à la suite)
-une boucle :
POUR TOUT enregistrement de ma requête R

ArbreAjoute(...libelléT1, idT1...)
ArbreAjoute(...libelléT1+TAB+libelléT2, idT2...)
ArbreAjoute(...libelléT1+TAB+libelléT2+TAB+libelléT3, idT3...)
ArbreAjoute(...libelléT1+TAB+libelléT2+TAB+libelléT3+libelléT4,
idT4...)

FIN

Cordialement.


Cazaux-Moutou Philippe a écrit :

Bon voici ce que je fais,

ca correspond a ce que je voudrais, mais comme je débutes en windev, es t ce
bon ?
et y a quand meme un petit pb au niveau des icones celle du 1er niveau du
1er item et du dernier item, ne sont pas les bonnes

voir l image ici

http://www.ancestrologie.com/france/test/A1.jpg

pourquoi

merci
------------------------------------------------------------------------- ---------------------------------------------------------

HLitPremier(Attribution_DDP, "IDAttribution_DDP" )

nIDDP, nADP_Place, nADP_Client, clefiltre est un entier

aLib, aPlace, aClient est une chaîne

TANTQUE HEnDehors() = Faux

// Ajout dans l'arbre

nIDDP = Attribution_DDP.IDDomaines_publics

nADP_Place = Attribution_DDP.ADP_Num_Place

nADP_Client = Attribution_DDP.IDUtilisateurs


// On recherche le libellé du DP -------------------------------------- ---

HLitRecherchePremier(Domaines_publics, IDDomaines_publics,nIDDP)


SI HTrouve() ALORS

aLib = Domaines_publics.IDDomaines_publics +"-"+Domaines_publics.DP_Lib elle

ArbreAjoute(ARBRE_Arbre1, aLib, aDéfaut, aDefault,
Attribution_DDP.IDAttribution_DDP)

FIN

// on recheche le libellé de l'emplacement ---------------------------- --

HLitRecherchePremier(Emplacements, IDEmplacements, nADP_Place)


SI HTrouve() ALORS

aPlace = Emplacements.EMP_Libelle

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace, IMG_Image1, IMG_Image1,
Emplacements.IDEmplacements)

FIN


// on recherche le libellé du client ----------------------------------

HLitRecherchePremier(Utilisateurs, IDUtilisateurs, nADP_Client)


SI HTrouve() ALORS

aClient = Utilisateurs.Cl_Nom

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace + TAB + aClient, IMG_Image2,
IMG_Image2, Utilisateurs.IDUtilisateurs)

FIN


HLitSuivant(Attribution_DDP, "IDAttribution_DDP" )

FIN

------------------------------------------------------------------------- --------------------------------------------------------------------------- ---------------------------------------------



"Gilles" a écrit dans le message de n ews:

> Il se trouve que Cazaux-Moutou Philippe a formulé :
>> Bien sur que j ai essayé
>> j arrives a le remplir mais qu avec la 1ere table, je ne comprends pas
>> comment se servir des autres tables
>
> Il te suffit d'imbriquer le traitement.
> Voilà en gros ce que ça donnerait
>
> Tu fais ta boucle de parcours de la 1ere table
> Tu ajoutes et mémorise l'élément que tu viens d'ajouter.
> Tu met dans cette boucle la 2eme boucle de parcours de 2eme table...
> Tu ajoutes en ajoutant le chemin du père mémorisé pour que ça s oit
> placé au bon endroit...
> Et ainsi de suite jusqu'à la énième table
> (Si tu fais des procédures, ca ne sera pas plus mal au niveau
> lisibilité, au moins une par table descendante)
>


Avatar
Cazaux-Moutou Philippe
Oui j avais deja fait la requete unique, mais sur chaque, il me faut ouvrir
soit la fenetre du DP, ou des Emplacements ou des clilents
donc me faut le ID de chaque item de ligne

"Alexey K." a écrit dans le message de news:

Moi j'aurais fait comme ceci :

-une requête qui te ramène un tableau composé de tes 4 tables
R=T1,T2,T3,T4 (toutes les colonnes à la suite)
-une boucle :
POUR TOUT enregistrement de ma requête R

ArbreAjoute(...libelléT1, idT1...)
ArbreAjoute(...libelléT1+TAB+libelléT2, idT2...)
ArbreAjoute(...libelléT1+TAB+libelléT2+TAB+libelléT3, idT3...)
ArbreAjoute(...libelléT1+TAB+libelléT2+TAB+libelléT3+libelléT4,
idT4...)

FIN

Cordialement.


Cazaux-Moutou Philippe a écrit :

Bon voici ce que je fais,

ca correspond a ce que je voudrais, mais comme je débutes en windev, est
ce
bon ?
et y a quand meme un petit pb au niveau des icones celle du 1er niveau du
1er item et du dernier item, ne sont pas les bonnes

voir l image ici

http://www.ancestrologie.com/france/test/A1.jpg

pourquoi

merci
----------------------------------------------------------------------------------------------------------------------------------

HLitPremier(Attribution_DDP, "IDAttribution_DDP" )

nIDDP, nADP_Place, nADP_Client, clefiltre est un entier

aLib, aPlace, aClient est une chaîne

TANTQUE HEnDehors() = Faux

// Ajout dans l'arbre

nIDDP = Attribution_DDP.IDDomaines_publics

nADP_Place = Attribution_DDP.ADP_Num_Place

nADP_Client = Attribution_DDP.IDUtilisateurs


// On recherche le libellé du DP -----------------------------------------

HLitRecherchePremier(Domaines_publics, IDDomaines_publics,nIDDP)


SI HTrouve() ALORS

aLib = Domaines_publics.IDDomaines_publics
+"-"+Domaines_publics.DP_Libelle

ArbreAjoute(ARBRE_Arbre1, aLib, aDéfaut, aDefault,
Attribution_DDP.IDAttribution_DDP)

FIN

// on recheche le libellé de l'emplacement ------------------------------

HLitRecherchePremier(Emplacements, IDEmplacements, nADP_Place)


SI HTrouve() ALORS

aPlace = Emplacements.EMP_Libelle

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace, IMG_Image1, IMG_Image1,
Emplacements.IDEmplacements)

FIN


// on recherche le libellé du client ----------------------------------

HLitRecherchePremier(Utilisateurs, IDUtilisateurs, nADP_Client)


SI HTrouve() ALORS

aClient = Utilisateurs.Cl_Nom

ArbreAjoute(ARBRE_Arbre1, aLib + TAB + aPlace + TAB + aClient, IMG_Image2,
IMG_Image2, Utilisateurs.IDUtilisateurs)

FIN


HLitSuivant(Attribution_DDP, "IDAttribution_DDP" )

FIN

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------



"Gilles" a écrit dans le message de
news:

> Il se trouve que Cazaux-Moutou Philippe a formulé :
>> Bien sur que j ai essayé
>> j arrives a le remplir mais qu avec la 1ere table, je ne comprends pas
>> comment se servir des autres tables
>
> Il te suffit d'imbriquer le traitement.
> Voilà en gros ce que ça donnerait
>
> Tu fais ta boucle de parcours de la 1ere table
> Tu ajoutes et mémorise l'élément que tu viens d'ajouter.
> Tu met dans cette boucle la 2eme boucle de parcours de 2eme table...
> Tu ajoutes en ajoutant le chemin du père mémorisé pour que ça soit
> placé au bon endroit...
> Et ainsi de suite jusqu'à la énième table
> (Si tu fais des procédures, ca ne sera pas plus mal au niveau
> lisibilité, au moins une par table descendante)
>