|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 81 ![]() |
Bonjour à tous,
Je débute en BIRT et j'ai un petit soucis. J'ai un xml exemple d'entrée (en pièce jointe). J'aimerai crée un document par catalog, et sur chaque document, faire un tableau listant les cds. Pour le moment, j'arrive a obtenir un seul tableau avec tous les cds, sans pouvoir différencier les collections. ou alors un tableau avec les premiers cds de chaque collection. Y'a t'il une marche a suivre particulière? Merci pour votre aide, |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
Je pense qu'il vous faut un peu d'apprentissage XML.
Pour bien itérer , il faut bien connaitre la structure du XML. En fonction de ceci , il faut mettre le bon X Path. Pour itérer , il faut prendre à minima le niveau X path qui itère ( celui qui contient un tableau par exemple ).
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 81 ![]() |
Pourriez vous me donner un exemple ou m'orientez vers un lien pouvant m'aider à résoudre mon problème?
Merci beaucoup pour votre aide |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
le problème c'est que vos 2 collections ont exactement le même nom etc.
comment voulez vous les distinguer?
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 81 ![]() |
Effectivement, mais c'était juste un fichier exemple que j'ai monté à la va vite, ne pouvant pas transmettre le vrai fichier source.
Il faut considérer les balises collections comme ayant un id unique a chaque occurence. Désolé de ne pas l'avoir précisé plutôt et merci pour votre aide. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
il faut mettre d'abord ce qu'il y a dans la balise cd , ensuite le cd , ensuite le reste.
X Path absolu. Moi j'ai un beau tableau avec tout , à travers un simple Groupe dans un Tableau BIRT c'est parfait.
__________________
BIRT / Actuate Nouveau ! : Actuate v11 LIVE avec cubes en mémoire, dashboard analythique, accès mobile et exports Office intélligents! Télécharger Evaluation ici : http://www.birt-exchange.com/be/downloads/ Nouveau ! : Tutoriel/Formation sur comment installer et utiliser la version d'évaluation Actuate v11 Vous former ici : http://www.birt-exchange.org/org/wik...h_BIRT_iServer |
|
|
00
|
|
|
#7 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Bonjour,
Alors, faire un document par catalogue, ce n'est possible qu'avec un traitement préalable. Cependant, on peut faire un saut de page après chaque catalogue. Tu as plusieurs choix pour créer ton document. Si les données sont toujours aussi simples, je te propose de faire un DataSet pour les catalogues et un pour les CD. Derrière on fait un tableau imbriqué (solution absolument déconseillée sauf si les données sont simples !). Pour procéder, il te faut tout d'abord tes DataSet (jeux de données), il faut que tu crées un XML Data Source qui pointe vers le fichier qui contient tes données. Ensuite, tu crées un XML DataSet nommé Catalogue basé sur ton DataSource XML. Chaque ligne correspond au XPATH /root/catalog (Row Mapping) et tes données (Column Mapping) sont tous les attributs (@title, @owner, @last-update). Puis un autre XML DataSet nommé CD de la même manière avec chaque ligne qui correspond au XPATH /root/catalog/cd et tes données sont les attributs et l'identifiant du catalogue (dans ton cas, on pourrait éventuellement différencier les catalogues par leur titre mais visiblement, tu n'as pas de différence entre les deux catalogues en exemple. Sinon par leur position dans le XML) (@... et position(../)). On rajoute donc position() dans le DataSet catalogue pour créer un identifiant minimal. Ensuite tu crées un tableau bindé sur Catalogue, dans le détails de celui-ci, tu mets un autre tableau bindé sur CD. Puis tu mets un saut de page automatique après ce second tableau (Propriétés du tableau > Page Break > Before : Always). Tu ajoutes un filtre sur le second tableau qui filtre les données du second tableau sur la donnée "catalog" qui doit être égale à l'identifiant du premier tableau (row["catalog"] Is equal to row._outer["ID"]). Tu as aussi une solution avec DataSet unique. S'il n'y a que trois donnée dans chaque catalogue, c'est pas gênant. Exemple en PJ. |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : mars 2006 Messages : 81 ![]() |
Merci BiM pour votre aide, cela m'a effectivement débloqué.
J'ai cependant une autre question: Est-il possible, dans un tableau, de spécifier la largeur d'une colonne selon une valeur numérique provenant du flux xml? Merci beaucoup, |
|
|
00
|
|
|
#9 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Oui, regarde ce sujet qui pourrait t'orienter :
http://www.developpez.net/forums/d10...page-fonction/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com