|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Bonjour,
J'ai un petit soucis pour récupérer une donnée dans une table BIRT. En fait j'ai uen liste d'identifiant et pour chaque identifiant je dois avoir un affichage de cet identifiant avec en dessous le graphique correspondant. Pour cela j'ai pensé à faire une table de 1x1. Je met mon identifiant et juste en dessous je met le graphique. Cette table est répété autant de fois que j'ai d'identifiant. Pour cela j'ai créé 2 DataSet. Un DataSet qui me récupère ma liste d'identifiant avec comme méthode open : Code :
Code :
Open : Code :
Je précise que ma table est binder avec mon DataSet qui récupère les identifiants et qu'en dessous mon graphique se sert du dataSet graphique pour afficher les séries dans celui-ci. Lors de l'affichage de mon rapport j'ai bien pour chaque table mon identifiant qui change mais le graphique en dessous qui reste le même, normal c'est la raison de mon topic Merci de votre aide. |
||||||
|
|
00
|
|
|
#2 | |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Bonjour,
On ne peut pas parcourir un DataSet en claquant des doigts. J'ai plusieurs solutions à te proposer :
Ta solution obligerait à créer un DataSet pour chaque graphique, tu ne trouves pas ça un peu lourd ? Et il faudra passer par du Java quasi-sûr. Après, si tu pouvais donner la structure voulue de ta table pour une courbe, ça permettrait de se faire une meilleure idée. |
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Bonjour,
Tout d'abord merci pour la réponse je vais regarder un peu du coté du Scripted Data Set en Java. Et sinon vu que je débute je ne me rend pas encore trop compte de la lourdeur ou de toutes ces choses la Mon objectif est d'avoir une table de ce genre : --------------------------------- Identifiant 1 | -------------------------------- | Graphique appelant une fonction | avec Identifiant 1 en paramètre | pour récupérer les bonnes | courbes | | --------------------------------- --------------------------------- Identifiant 2 | -------------------------------- | Graphique appelant une fonction | avec Identifiant 2 en paramètre | pour récupérer les bonnes | courbes | | --------------------------------- et ainsi de suite sachant que je ne sais pas à l'avance combien j'aurais d'identifiant. Donc je me suis créé un dataSetIdentifiant que je met dans une table 1x1. Dans le open de ce dataSet je récupère ma liste d'indetifiant qui est en paramètre du rapport (reportContext.getParameterValue("listeIdentifiant")) et dans le fetch je renseigne ma colonne du dataset (row["columnIdentifiant"] = liste.get(pointCourant).getIdentifiant() Avec ce principe j'arrive bien à avoir une table qui se répète avec mon identifiant qui change a chaque fois. Parallèlement à ça j'ai un graphique se servant d'un autre dataSet pour afficher les courbes désirées. Cela fonctionne aussi. Et mon but est que chaque graphique soit dépendant d'un identifiant passé en paramètre de ma fonction qui remplit les courbes. Cette fonction est appelée dans le OPEN de mon DataSetGraphique. Je m'étais donc dit qu'en mettant le graphique dans ma table d'identifiants déjà existante je pourrais récupérer l’identifiant en cours et le passer en paramètre de ma fonction dans le DataSetGraphique pour obtenir juste les courbes désirées. Mais visiblement c'est pas si simple que ça. Voila j'espère avoir été plus clair. |
|
|
00
|
|
|
#4 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Y'a t'il plusieurs courbes par identifiant ?
Comment sont définies tes courbes ? Coordonnées des points ? Date, valeur ? Autre ? |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Oui il y a 5 courbes plus un histogramme.
En abscisse j'ai des heures et en abscisse j'ai une valeur par type de courbe. Du coup je créé autant de séries que j'ai de courbes. Donc en ordonnée ça donne : Série 1 : Valeur1 Série 2: Valeur2 .... etc.. ... |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Nicolas Vives Inscription : avril 2010 Messages : 178 ![]() |
Bonjour,
J'ai quelques doutes sur la faisabilité de ton architecture (l'utilisation des open/fetch, la construction de tes datasets, etc), tu n'utilises probablement pas les data sets de la manière la plus naturelle, et j'espère que tes courbes seront gérées correctement. Mais pour ta première question, tu peux essayer cette syntaxe : C'est peut-être ce que tu cherches. |
|
|
00
|
|
|
#7 | ||||
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
L'idéal serait alors que tu arrives à construire un DataSet de ce type :
ID | Courbe | Heure | Valeur Ensuite, tu pourras grouper par ID puis afficher ton graphique par courbe sans problèmes. Tu aurais donc (syntaxe non vérifiée), un DataSet construit comme suit : Open : Code :
Code :
|
||||
|
|
00
|
|
|
#8 | |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Merci pour vos réponses. Je vais essayer et je vous tiens au courant. Mais en gros ce n'est pas possible de récupérer la valeur d'un DataSet dans un autre DataSet ?
|
|
|
00
|
|
|
#10 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Je ne crois pas, c'est possible dans une Table, mais pas dans un DataSet.
|
|
|
00
|
|
|
#11 | ||||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Pour information :
Ne fonctionne pas dans mon cas. Sinon j'ai tenté d'adapter un peu le script pour que ça corresponde bien à mon problème Code :
Code :
- Heure - Valeur1 - Valeur2 - Valeur3 - Valeur4 Et lors de mon premier passage de boucle la liste renvoyé est vide. Je pense qu'il y a un problème avec les next et autres. Je regarde mais si mes indications vous permettent de voir plus rapidement que moi je vous écoute avec grand plaisir |
||||
|
|
00
|
|
|
#12 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Ah oui c'est normal, tu utilises des tableaux, moi j'ai donné un exemple avec des itérateurs.
Le principe reste cependant le même, à toi d'adapter le code pour que cela corresponde à la lecture d'un tableau et non d'un itérateur ... d'où la syntaxe dans un Handler Java qui permet de voir ce genre d'erreurs |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Euh ou vois tu un tableau ? Je ne comprend pas
|
|
|
00
|
|
|
#14 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Heu je suppose que c'est un tableau, mais ça peut très bien être une List, un Set, une Map, un objet que tu as créé toi-même. Bref, dans mon exemple je me suis basée sur des Iterator, mais tu dois adapter le code pour que cela corresponde à l'objet que tu envoies à BIRT.
|
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Ah tu parles de la variable "courbes"
C'est en effet une liste donc un iterator doit marcher dessus normalement |
|
|
00
|
|
|
#16 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Oui mais il faut quand même rajouter faire :
Code :
courbes = rapportRemplissage.remplissageCourbes(identifiant).iterator(); Si tu veux essayer de le faire via Handler, tu peux poster ce que tu as déjà (ou va faire) et on le perfectionne ensemble pour arriver au résultat voulu. |
|
|
00
|
|
|
#17 | ||
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
J'ai réussi à faire ça dans le fetch :
Code :
Donc je ne sais pas si j'ai une boucle infinie ou si c'est à cause du trop grand nombre de données. |
||
|
|
00
|
|
|
#18 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Le problème n'est pas le DataSet mais le nombre de graphiques visiblement.
Tu as essayé en commençant avec 2 éléments de 5 courbes chacun ? Es-tu sûr que tu fais correctement tes graphiques ? As-tu essayé d'ajuster le DPI des graphiques (je crois que c'est faisable) ? As-tu des images dans ton rapport ? Si oui, comment sont-elles intégrées ? |
|
|
00
|
|
|
#19 |
|
Membre du Club
![]() Inscription : juillet 2006 Messages : 240 ![]() |
Je suis en train d'essayer d'afficher moins de données dans le graphique et de prendre moins d'identifiants.
Mais oui les graphiques sont bien faits j'en ai déjà fait. Sinon je n'ai pas d'image et je n'ai pas encore regarder le DPI des graphiques. Je regarde si tout ça peux changer qqchose mais sinon je suppose que je n'ai pas beaucoup de moyen pour agir sur la lenteur de la génération ? |
|
|
00
|
|
|
#20 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Il y en a un tas. La première chose à regarder est que ton DataSet est bien rempli.
Ensuite, il faut voir si tes graphiques sont construits correctement sachant qu'on vient de changer l'architecture de ton DataSet. Et si vraiment tu galères, il te reste à poster ton rptdesign |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com