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 :

Tri de données dans un dataset


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Tri de données dans un dataset
    Bonjour,

    Je cherche à trier travailler sur les données d'un dataset mais j'ai un peu de mal car je suis contraint de travailler via les scripts et non via les classes java.

    J'ai un dataset du type:

    Id | Code
    ____ _____
    1 | 001
    2 | 001
    3 | 002
    4 | 003

    Je voudrais obtenir dans un 2eme dataset, le nombre d'apparition de chaque code.

    Je sais le faire en java, mais avec les scripts je ne vois pas comment m'y prendre. Je ne sais pas ou placer le code ni comment parcourir le dataset.

    auriez vous un exemple ou une piste?

    Merci

  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
    Bonjour,

    Tu glisses et déposes ton DataSet dans ton rapport, tu vas dans les propriétés de celui-ci > Group > Add > Tu crées un groupe basé sur le code.

    Tu peux ensuite créer une agrégation pour compter le nombre d'occurrences.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Mon problème est bien de compter les occurrences et de les stocker.
    L'idéal serait de créer un HashMap avec pour clé le code et pour valeur le nombre d'occurence.

    Mais je n'arrive pas a créer ce genre de structure dans Birt.

    Je trouve que la prise en main de birt est vraiment compliquée.

  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
    Pourquoi faire simple quand on peut faire compliqué ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    parce que j'arrive pas a faire simple.

    J'ai bien fait le group, mais je ne vois pas ce que ça apporte pour le traitement dont j'ai besoin.

    A quel type d'agrégation pensais tu?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    On va repartir à la base: comment je peux parcourir mon dataset ligne par ligne?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Je continue sur le sujet d'origine. J'ai trouvé le bloc agrégation
    Avec le "group" et l'agrégation j'obtiens bien le résultat que je souhaite. Mais je n'arrive pas a stocker les données.

    J'ai créé un parameter multivalué mais je n'arrive pas a le remplir dans l'agrégation.

    Auriez vous un exemple?

    Merci d'avance,

  8. #8
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Citation Envoyé par thunderjulien Voir le message
    Je continue sur le sujet d'origine. J'ai trouvé le bloc agrégation
    Avec le "group" et l'agrégation j'obtiens bien le résultat que je souhaite. Mais je n'arrive pas a stocker les données.
    Bonjour,

    Apparemment tu as un besoin autre que de simplement afficher le nobmre d'apparition de chaque code. Il faudrait que tu expliques mieux ce que tu cherches à obtenir, sinon personne ne pourra t'aider.

    Ces données sont destinées à qui/quoi ? Un autre dataset dans le même état? Un autre état ? Un traitement java nécessitant qu'elles soient enregistrées en dur dans un fichier ?

    Et si ça devient compliqué, il serait bon de préciser ton environnement de travail, les outils BIRT utilisés (le webviewer ? le report engine ?), la version, etc.

    A part ça, pour ta question sur le parcours du dataset, dans les scripts d'un dataset (onglet "Script" de ton éditeur BIR sous Eclipse, en ayant le dataset sélectionné), tu trouveras la méthode "fetch" qui s'exécute pour chaque ligne du dataset.

    A+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Désolé, je vais essayé d'être plus clair .

    J'ai un dataset du type:

    Id | Code
    ____ _____
    1 | 001
    2 | 001
    3 | 002
    4 | 003

    Et je veux récupérer le nombre d'occurrences de chaque "code" pour les utiliser dans un graph.
    Donc pour cela j'ai besoin de stocker les résultats obtenus via l'agrégation.

  10. #10
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Un graphique BIRT ? Dans ce cas, c'est assez simple :
    • Tu crées un tableau BIRT ("table") à partir de ton dataset, tu fais l'agrégation de comptage (qui nécessite un groupement sur le champ "code")
    • Tu nommes ton agrégation avec un nom que tu pourras reconnaitre
    • Tu nommes ton tableau (dans le property editor, propriété "name")
    • Tu crées un graphique BIRT, dans la partie "select data", tu utilises l'option "Use Data From" et tu sélectionnes ton tableau (grâce au nom que tu viens de lui donner)
    • Dans le graphique, tu mets en abscisse le code, en ordonnée l'agrégation, et c'est réglé.


    Donc au final, à moins que tu aies besoin d'autre chose, il n'y a aucun script à écrire.

    A+

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Grâce a votre aide j'obtiens presque ce qu'il faut.
    La partie calcul est correcte.

    Dans le graphique, j'ai mis en abscisse les codes et en ordonnée le résultat de l'agrégation.
    Je voudrais obtenir une seule colonne par code.

    Est ce possible?

  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
    Tu peux faire du regroupement par code si tu veux (deuxième onglet de l'édition du graphique, à droite).

  13. #13
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Normalement, tu peux effectuer un groupement sur ton champ "code" dans le graphique. Il s'agit du bouton bleu sur la droite du champ des abscisses, à côté du bouton "fonction". Je te laisse voir.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Ce bouton n'est pas disponible quand mon graph est alimenté par la table. Il se dégrise uniquement si le graph pointe sur le dataset.
    Du coup c'est pas compatible avec mon traitement.

  15. #15
    Membre averti

    Inscrit en
    Avril 2010
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 178
    Points : 418
    Points
    418
    Par défaut
    Oui, pardon, en fait mon histoire de "fait un tableau puis un graphique" provient juste du déroulement de la discussion. En fait, tu n'as pas besoin de tableau.

    Fais directement le graphique à partir du dataset, et dans l'onglet "select data" encore une fois, en bas à droite, tu as un bouton "data binding", qui te permet d'accéder aux données du dataset et... rajouter des agrégations.

    Tu auras donc à la fois l'agrégation et la possibilité de faire un groupement sur le code.

    EDIT : pardon, je me trompe, de cette manière tu ne peux pas faire de groupe sur le code ; quelque chose manque. Je chercherai plus tard si je peux.

    EDIT : je n'ai pas testé, mais sans rajouter d'agrégation dans le data binding, tu peux tenter de mettre ton champ "code" en abscisse, d'aller dans les options de groupement et d'indiquer l'agrégation "count" et de voir ce qu'il se passe... désolé je n'ai pas le temps de creuser plus pour l'instant. Bon courage.

Discussions similaires

  1. SOS : Comment inserer des données dans un dataset ?
    Par alexia_78 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/07/2008, 14h50
  2. Réponses: 2
    Dernier message: 22/05/2008, 13h37
  3. [XSLT Débutant] tri de données dans un XML
    Par astrolane dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/09/2007, 18h30
  4. Tri de données dans un tableau
    Par GESCOM2000 dans le forum Contribuez
    Réponses: 6
    Dernier message: 06/12/2006, 16h55
  5. Réponses: 9
    Dernier message: 09/05/2006, 17h11

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