IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

comment récupérer une donnée du rapport pour la réutiliser dans le même rapport ?


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut comment récupérer une donnée du rapport pour la réutiliser dans le même rapport ?
    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.

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut

    ...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 )

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ah oui

    Selectionne ton tableaun clic droit => Edit Data Binding, tu sélectionnes le DataSet auquel il est associé. Après ce sera bon.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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..

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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...

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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"...)
    Fichiers attachés Fichiers attachés

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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]

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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"]... )

  12. #12
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    As tu esasyé ce que je t'ai dit ?

  13. #13
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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...

  14. #14
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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 ?

  15. #15
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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é ]
    Images attachées Images attachées   

  16. #16
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    "Résultat : "+Total.sum(row["test1"]);
    Et tu refais éventuellement un imprim écran si tu ne comprends pas tout et tu auras le droit à des explications supplémentaires si nécessaire.

  17. #17
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    ça, ça a l'air de marcher, jusqu'ici tout va bien

  18. #18
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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

  19. #19
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    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...

  20. #20
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    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...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/10/2010, 11h02
  2. Comment récupérer une donnée dans la fenêtre LOG?
    Par débutantenSAS dans le forum SAS STAT
    Réponses: 4
    Dernier message: 29/11/2009, 12h07
  3. Réponses: 3
    Dernier message: 17/06/2008, 17h05
  4. comment récupérer une donnée dans une requête
    Par valerie02 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/06/2007, 23h20
  5. [VB6] Comment récupérer une donnée à travers un activeX ?
    Par ferry.jules dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/06/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo