|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
Bonjour à tous,
j'utilise depuis peu Birt, et je voudrais savoir s'il est possible de récupérer une donnée qui se trouve dans une case d'une Grille (Grid) ou d'un composant donnée (Data) ou encore Text ou text dynamique ("Dynamic Text") de mon rapport. En fait, dans 9 cases différentes de ma grille, je met 9 valeurs differentes provenant de 9 data sets differents. Et dans une 10eme case, je voudrais faire la somme de ces valeurs. Comment faire ça simplement? (sans être obligé de faire une succession de jointure pour avoir les 9 valeurs dans un même data set...) j'espère avoir été assez clair pour exposer mon problème :-) Merci, Jérémy. |
|
|
00
|
|
|
#2 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Oui, si tu restes à l'intérieur du tableau : row[0]+row[1]+...row[N], etc. (ou row["NomColonne0"]+row["NomColonne0"]+...row["NomColonneN"] ou row.NomColonne0+row.NomColonne1+...row.row.NomColonneN.
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
Merci de la réponse rapide, malheureusement, je ne comprend pas comment ça marche...
Faisons +simple: si je créé un tableau, disons de 3 colonnes et de 1 lignes, j'ai une colonne supplémentaire à gauche avec "Header Row", "Detail Row" et "Footer Row". dans la première case à droite de Detail row, je fais glisser mon indicateur (du premier data set) qui s'appelle "ind1": dans la case j'ai un composant data, marqué [ind1] et avec comme valeur "dataSetRow["ind1"]" Juste à côté, je fais la même opération avec un indicateur "ind2" venant d'un 2eme data set.(j'ai donc un composant data marqué [ind2] avec comme valeur "dataSetRow["ind2"]" Maintenant dans la 3ème colonne je veux faire la somme des 2 colonnes précédentes, je met dans la case, un composant data, et j'ai beau faire row[0]+row[1] ou row["ind1"]+row["ind2"] ça marche pas Qu'est ce que je fais mal ou qu'est ce que je n'ai pas compris ? Merci, Jérémy |
|
|
00
|
|
|
#4 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Tu as tout compris sauf que c'est un élément Dynamic Text que tu dois ajouter. Pour faire l'opération en étant sûr de ne pas te tromper : Available Column Bindings => Table (il peut y en avoir plusieurs, essaye d'identifier la bonne et tu double clic sur ton premier champ (il s'affiche en haut) + (appuie sur le bouton d'opération si tu préfères) ton deuxième champ.
Voilou. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
...je dois avoir un problème de binding c'est pas possible, il y a quelque chose qui m'échappe... quand je regarde dans "Available Column Bindings", je n'ai pas les champs du tableau... Quand je fais glisser le premier champ du premier data set dans le tableau, le tableau se lie automatiquement au premier data set, et donc je ne peux pas faire glisser le champ qui vient du 2eme data set ! Je dois changer le binding du tableau pour que le champ du 2eme data set puisse être mise dedans... mais je pense que ça pose problème. Un tableau peut être lié à plusieurs data set, non? comment le préciser. encore merci, Jérémy (c'est pénible de ne pas réussir quelque chose qui semble tout bête |
|
|
00
|
|
|
#6 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Ah oui
Selectionne ton tableaun clic droit => Edit Data Binding, tu sélectionnes le DataSet auquel il est associé. Après ce sera bon. |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
on doit avoir un petit problème de compréhension.. puisque dans mon tableau, j'ai des valeurs (des champs) venant de différents data sets... je ne peux pas lier un tableau à un seul data set..
|
|
|
00
|
|
|
#8 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Ah oki...
Tu peux mettre en pièce jointe ton rptdesign please ? Je vois pas tout à fait comment tu as fait même si j'ai ma petite idée... |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
ok,
je t'envois mon fichier de test (mon vrai fichier contient quelques données privées...) faut juste remettre l'extension rptdesign pour que ça passe (je pouvais pas joindre le fichier avec l'extension "rptdesign"...) |
|
|
00
|
|
|
#10 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Je demanderais d'ajouter l'extension
[EDIT]Je viens de regarder... C'te bordel !! Il sort d'où ton row["ttt"] ? C'est un label. Pour faire la somme de la colonne ttt, fait Total.sum(row["test1"]) déjà dans un premier temps.[/EDIT] |
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
oui désolé, mon fichier de test est tres bordelique !
en fait c'est dans les derniers tableaux que j'essayais ce que tu me disais de faire... dans les premiers tableaux je testais tout et n'importe quoi (d'où le row["ttt"]... |
|
|
00
|
|
|
#12 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
As tu esasyé ce que je t'ai dit ?
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
j'ai mis Total.sum(row["test1"]) dans une case du premier tableau, mais rien ne s'affiche...
Pourtant en dessous du label ttt, dans la case [test1], j'ai 1 (qui correspond à la valeur de test1) (en dessous du label yyy, dans la case [test2] j'ai bien la valeur de test2 qui est 44... |
|
|
00
|
|
|
#14 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Enlèves tous les éléments graphiques de ton état (aides toi de la vue Outline si nécessaire).
Crées un tableau avec un header, une ligne de détail et un footer. Tu cliques droit sur le tableau et tu fais Edit Data Binding. Tu sélectionnes ton DataSet nommé Data Set. Tu glisses le champs test1 dans la ligne de détail de ton tableau. 1. Affiches-tu des informations pour row["test1"] (affiché [test1] sur ton état) dans un premier temps. 2. Si oui, de quel type sont elles ? |
|
|
00
|
|
|
#15 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
tu as raison, reprenons du début
bon j'ai fais c'que tu m'as dis, j'ai tout viré et créé un nouveau tableau, j'ai glissé test1 depuis "Data Set" dans le tableau, il me créé automatiquement le label test1 dans le header et quand j'affiche le rapport, j'ai Test1 1 1 et la date. Pourquoi 2 fois "1" ? ça je ne sais pas... je te joins des imprim-écrans pour que tu vois de tes propres yeux (ne fais pas gaffe à la date, j'ai dû mettre une date passée à mon PC...donc je retarde de 3 mois Pour infos supplémentaires, quand je double clique sur [test1], le Data Set est "Container's Data Set", s'affiche en dessous les 4 champs de "Data Set" et test1 est coché, de type Float, de valeur DataSetRow["test1"] ( et la colonne "Aggregate On" = N/A) [EDIT: si ça s'affiche 2 fois, je pense que ça vient de ma selection du data Set... faut que je change ça pour n'avoir qu'une seule ligne..] [EDIT 2: J'ai changé les data Set (juste au niveau des valeurs) maintenant j'ai bien une valeur unique pour chaque champs (faisons simple), donc dans l'affichage du rapport, j'ai bien un seul "1" en dessous du "Test1", désolé ] |
|
|
00
|
|
|
#16 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
La date correspond à la date et heure d'impression, elle se trouve par défaut sur la Master Page (le patron de la page en quelques sorte : entête et pied de page).
Pour faire la somme tu rajoutes dans la cellule du Footer un Dynamic Text avec dedans en données : Code :
"Résultat : "+Total.sum(row["test1"]); |
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
ça, ça a l'air de marcher, jusqu'ici tout va bien
|
|
|
00
|
|
|
#18 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
As-tu compris le principe ?
En fait, quand j'ai regardé ton exemple cela me générait quelques erreurs avant même de l'executer... Et oui, il faut regarder la vue Problems dans Eclipse, elle n'est pas faite pour faire joli |
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : août 2006 Messages : 39 ![]() |
j'ai compris le principe, faire des sommes sur 2 champs d'un même data set ne pose aucun problème, mais une somme sur 2 champs qui ne sont pas du même data set reste encore un mystère...
|
|
|
00
|
|
|
#20 |
![]() ![]() Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT Inscription : janvier 2005 Messages : 7 299 ![]() |
Et bien on va avancer mais je ne vois pas pourquoi tu veux afficher des champs de deux DataSet différents... Expliques moi un peu, donne moi un exemple...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com