|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : novembre 2007 Messages : 25 ![]() |
Bonjour à tous,
Débutant sous Birt et Java, j'ai grand besoin de votre aide. Voici mon problème : J'ai créé un rapport qui présente sous forme d'arborescence un ensemble d'enregistrements dépendants hiérarchiquements. C'est-à-dire que ma table de données comprend les champs suivants: Code - Intitulé - Parent et les enregistrements sont liés par le champ Parent. Par exemple, la ligne 2 est enfant de la ligne 1 : Code Intitulé Parent --------------------------- Code1 Intitulé1 Code2 Intitulé2 Code1 Le rapport fonctionne bien mais je voudrais complexifier un peu la chose .Je voudrais que lorsqu'on saisit en paramètre d'entrée n'importe quel code, le rapport recherche le code de l'enregistrement de sommet (le parent de tous les autres) et qu'il se base sur cet enregistrement pour construire la hiérarchie. En fait, quelque chose de ce genre : On exécute de manière itérative la requête pour obtenir le parent le plus élevé Code :
La difficulté est que je ne sais pas comment rédiger ce bout de code ni où le placer (dans quelle méthode, sur une méthode du dataset ou autre, ... ?). J'espère avoir été clair dans mes explications... Pouvez vous m'aider svp ? |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : avril 2008 Messages : 1 053 ![]() |
Vous avez 2 choix.
1. SQL : faire du SQL recursif pour trouver le 'parent'. ( Nested Loops ). http://blog.postgresql.fr/index.php?post/drupal/74 pour Postgres par exemple. 2. Java dans BIRT. Coder un array Java sur le OnFetch du dataset afin d'y stocker toutes les valeurs. Coder une petite routine pour trouver le Parent sur le BeforeFactory du rapport en utilisant l'array. Filtrer le tableau par rapport au parent trouvé dans le BeforeFactory du Tableau. En fonction du volume de données, privilègier l'un ou l'autre. Sur une grosse volumétrie , ce sera très pénalisant. Il va falloir alors denormaliser le modèle en dépliant cette table sur plusieurs colonnes supplémentaires.
__________________
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é de passage
![]() Inscription : novembre 2007 Messages : 25 ![]() |
Bonjour et merci pour cette réponse rapide.
J'ai essayé de mettre en oeuvre la seconde solution mais je ne suis arrivé à rien Mon rapport utilise un scripted data set. Dans un premier temps j'ai essayé de stocker les données ramenées par le dataset dans un tableau pour ensuite simplement les afficher mais cela n'a pas marché. Voici la méthode open : Code :
Code :
.Je ne vois pas bien non plus comment mettre en oeuvre la suite de la solution. Pourriez m'expliquer un peu plus en détail comment faire, et éventuellement me donner un exemple ? Merci pour votre aide. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com