|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 55 ![]() |
Bonjour,
Dans un rapport j'utilise l'option de regroupement hiérarchique. Ma table contient des liens de type composant/composé entre des n° de lots. la colonne id_lot_sup est composé de 1 ou plusieurs id_lot J'ai par exemple : id_lot_sup -> id_lot A -> B A -> C A -> D B -> E C -> E D -> E E -> F Dans un cas comme celui la, le lot E ne s'affiche qu'une seule fois sous le lot B. Moi je souhaiterais l'afficher à la fois sous B, C et D. Quelqu'un aurait-il une idée de comment faire ? |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : juin 2008 Messages : 96 ![]() |
Dans l'expert base de donnée, il faut utiliser un alias de table par niveau de ta hiérarchie avec des jointures gauches id_lot vers id_lot_sup .
dans ton exemple tu obtiendras 3 enregistrements détail suivants: A -> B -> E -> F A -> C -> E -> F A -> D -> E -> F donc E peut s'afficher 3 fois ... |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 55 ![]() |
Merci pour ta réponse mais le problème est que le nombre de niveau est un paramètre de mon rapport il est donc variable.
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Joffrey Ingénieur systèmes et réseaux Inscription : octobre 2009 Messages : 116 ![]() |
Bonjour,
le plus simple est peut être de générer une table de travail (par procédure stockée) dans laquelle tu auras à l'avance tout tes niveaux du type : A / B / 0 A / C / 0 A / D / 0 B / E / 1 C / E / 1 D / E / 1 E / F / 2 cdt |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 55 ![]() |
C'est déjà ce que je fais, je passe par une procédure stockée dans laquelle j'ai bien tous mes enregistrements dans une table avec le niveau de la hiérarchie.
Mais ça ne marche pas... |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Joffrey Ingénieur systèmes et réseaux Inscription : octobre 2009 Messages : 116 ![]() |
Prenons la table suivante :
A / B / 0 A / C / 0 A / D / 0 B / E / 1 C / E / 1 D / E / 1 E / F / 2 tu fais un groupe sur ta première colonne et tu tries sur la 3ème pour moi ça fonctionne cdt |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juin 2008 Messages : 96 ![]() |
|
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 55 ![]() |
si dans mon cas il est variable car en fait j'utilise une procédure stockée pour mettre à jour une table de travail dans laquelle je mets les données que jusqu'au niveau passé en paramètre
|
|
|
00
|
|
|
#9 | |
|
Futur Membre du Club
![]() Inscription : juillet 2006 Messages : 55 ![]() |
Citation:
A B C D E ... |
|
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Joffrey Ingénieur systèmes et réseaux Inscription : octobre 2009 Messages : 116 ![]() |
Tu peux mettre autant de zone Détails que tu as de niveau (admettons 10 niveau au max => donc 10 zones détails).
Tu mets un sous-rapport par zone détails Sur chaque zone détails tu mets une condition de suppression détail a détail b => condition de suppression "if NIVEAU <> 1 then true else false;" détail c => condition de suppression "if NIVEAU <> 2 then true else false;" détail d => condition de suppression "if NIVEAU <> 3 then true else false;" ... Cdt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com