+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 637
    Points : 6 804
    Points
    6 804

    Par défaut Génération de rapports BIRT à l'aide de la 'BIRT Design Engine API'

    Bonjour,


    Destiné aux débutants, ce tutoriel a pour objectif de vous présenter une méthode pour générer dynamiquement des rapports BIRT :


    Génération de rapports BIRT à l'aide de la 'BIRT Design Engine API'
    , par Florian Cornolle

    Bonne lecture
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  2. #2
    Membre à l'essai
    Inscrit en
    juin 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 31
    Points : 24
    Points
    24

    Par défaut

    Petite erreur dans le tutoriel :
    "- le moteur de visualisation de rapports. Il repose sur la REAPI : Report Design Engine API. "

    Report Design Engine -> supprimer le "design".
    Me semblait bien en lisant que ça faisait long

    Et j'oublie de remercier pour le tutoriel, c'est vraiment sympa de partager ses connaissances. Merci.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 25
    Points : 25
    Points
    25

    Par défaut

    Hello merci pour la correction ! Je viens de rectifier l'erreur.
    Ayant bénéficié depuis quelques années des tutoriels présents sur développer.com, c'est la moindre des choses que j'apporte ma maigre pierre à l'édifice.
    A tantôt!

  4. #4
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2007
    Messages : 76
    Points : 50
    Points
    50

    Par défaut

    Bonjour, je suis sur ce tutoriel depuis ce matin, cependant je rencontre l'erreur suivante :
    "Exception in thread "main" org.eclipse.birt.report.model.api.command.NameException: The name "id" duplicates an existing name. Please choose a different name.".

    J'ai essayé de changer "id" dans la HashMap "mappingNomColonneLibelle", mais à ce moment là, je rencontre la même erreur sur "prix".

    L'erreur se produit sur le "design.getBody().add(tableHandle);", et je crois que c'est lié à la HashMap "mappingNomColonneLibelle".

    à noter que j'utilise la base de données Caché Intersystems et non Postgres, je ne sais pas si ça a une influence...

    Auriez-vous une idée de ce qu'il se passe s'il vous plaît?

    Merci,

    Jeff

  5. #5
    BiM
    BiM est déconnecté
    Modératrice
    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 : 31
    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 : 11 109
    Points
    11 109

    Par défaut

    Bonjour,

    Je pense qu'il y a une erreur dans le tutoriel :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while (iterateurListeColonne.hasNext()) {
    	valeur = iterateurListeColonne.next();
    	libelle = mappingNomColonneLibelle.get(valeur);
    	cs1 = StructureFactory.createComputedColumn();
    	cs1.setName(valeur);
    	cs1.setExpression("dataSetRow[\"" + valeur + "\"]");
    	computedSet.addItem(cs1);
    }

    A la place de :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    cs1.setName(valeur);
    Il voulait probablement écrire :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    cs1.setName(libelle);

    Si cette solution corrige ton problème, je transmets à l'auteur
    __~{@ BiM - Modératrice "Business Intelligence" @}~
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    ___________.~{@ Lapine crétine @}~

  6. #6
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2007
    Messages : 76
    Points : 50
    Points
    50

    Par défaut

    Merci pour la rapidité, cependant, cela ne corrige pas le problème

    Et j'ai observé ce matin qu'en mettant en commentaire "design.getBody().add(tableHandle);", le fichier .rptdesign était bien écrit et contenait ce qu'il fallait mis à part la table que je souhaite intégrer au rapport.

    Donc c'est clairement l'écriture de la table dans le .rptdesign qui pose problème...

  7. #7
    BiM
    BiM est déconnecté
    Modératrice
    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 : 31
    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 : 11 109
    Points
    11 109

    Par défaut

    Après débuggage intensif, voici la correction à apporter...

    A un moment on a :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    LabelHandle label1 = factory.newLabel(valeur);
    Au lieu de :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    LabelHandle label1 = factory.newLabel(libelle);

    J'avertis l'auteur, merci beaucoup !
    __~{@ BiM - Modératrice "Business Intelligence" @}~
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    ___________.~{@ Lapine crétine @}~

  8. #8
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2007
    Messages : 76
    Points : 50
    Points
    50

    Par défaut

    Waow, ça marche!!
    Merci beaucoup beaucoup à toi

  9. #9
    Membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    novembre 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2007
    Messages : 76
    Points : 50
    Points
    50

    Par défaut

    Citation Envoyé par BiM Voir le message
    Bonjour,

    Je pense qu'il y a une erreur dans le tutoriel :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    while (iterateurListeColonne.hasNext()) {
    	valeur = iterateurListeColonne.next();
    	libelle = mappingNomColonneLibelle.get(valeur);
    	cs1 = StructureFactory.createComputedColumn();
    	cs1.setName(valeur);
    	cs1.setExpression("dataSetRow[\"" + valeur + "\"]");
    	computedSet.addItem(cs1);
    }

    A la place de :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    cs1.setName(valeur);
    Il voulait probablement écrire :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    cs1.setName(libelle);

    Si cette solution corrige ton problème, je transmets à l'auteur
    Bon, après tests, il apparaît qu'il fallait bel et bien laisser
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    cs1.setName(valeur);
    Sinon, on se retrouve avec des erreurs de type "Invalid bound column name".
    A part ça, c'est bon

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 25
    Points : 25
    Points
    25

    Par défaut

    Salut !

    Désolé j'arrive un peu tard pour apporter des éclaircissements sur le sujet.
    Le problème survient sur la version 2.5.2 mais n'apparaît pas sur les versions 2.3.2.1. et 2.3.2.2.

    Cela est lié au fait que toute valeur de l'attribut 'name' associé à un objet implémentant l'interface IReportElement doit être unique (cet objet est référencé par son nom).

    En partant de ce principe :

    Lorsqu'on instancie un LabelHandle comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LabelHandle label1 = factory.newLabel(valeur);
    On attribut le nom 'valeur' à l'instance de Label associé à l'objet label1 lors de son instanciation.

    De même lorsqu'on instancie ensuite un DataItemHandle comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataItemHandle data = factory.newDataItem(valeur);
    On attribut le nom 'valeur' à l'instance de Data associée à l'objet data lors de son instanciation.

    Alors comme il s'agit de deux objets dont les classes implémentent IReportElement :
    - en version 2.5.2 : une exception est générée
    - en version 2.3.2.1 et 2.3.2.2 : le nom est automatiquement modifié (le nom de base est conservé et un numéro est ajouté à côté)

    Si vous utilisez la version 2.5.2, pour résoudre ce problème le plus simple pour ce tutoriel est de remplacer (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataItemHandle data = factory.newDataItem(valeur);
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataItemHandle data = factory.newDataItem("data_"+valeur);

    On peut aussi utiliser la solution de BIM qui consiste à agir sur le LabelHandle (le tout c'est d'avoir des noms différents).

    Je vais modifier le tutoriel pour prendre en compte ce problème.
    Merci.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : mars 2008
    Messages : 25
    Points : 25
    Points
    25

    Par défaut

    Bonjour,
    Le tutoriel a été mis à jour.
    Bonne journée.

  12. #12
    BiM
    BiM est déconnecté
    Modératrice
    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 : 31
    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 : 11 109
    Points
    11 109

    Par défaut

    Merci Florian !
    __~{@ BiM - Modératrice "Business Intelligence" @}~
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    ___________.~{@ Lapine crétine @}~

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : mai 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut BIRT - utilisation d'EMF

    Je suis débutant Birt.
    Mon problème est de pouvoir générer un rapport à partir d'une source EMF ECORE data source et non JDBC avec l'API Report engine et/ou Design engine Java.

    Merci d'avance de votre aide.

  14. #14
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2012
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    Bonjour,
    Je suis débutante BIRT, Je veux savoir s'il existe une possibilité d'intégration dans une application Web et une application Eclipe RCP en même temps.

    Merci

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2013
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Gentelman

    très bon tutoriel, Mercii beaucoup

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2013
    Messages : 7
    Points : 6
    Points
    6

    Par défaut

    Merci beaucoup pour ce tutoriel intéressant

  17. #17
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2010
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2010
    Messages : 1 048
    Points : 589
    Points
    589

    Par défaut

    Bonjour,

    J’ai suivi le tutoriel a la lettre, mais j'ai un problème à la dernière étape qui est "Test du script et du fichier généré" j'ai bien le ficher "testBIRT.rptdesign" qui est généré, mais pour fenêtre juste après dans mon cas elle est vide ?!!

    Je ne comprends pas pourquoi (tous les paramétré et la base de données son bien configuré)

    Merci de vos commentaires de correction.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2013, 20h52
  2. Réponses: 19
    Dernier message: 07/08/2009, 16h21
  3. Réponses: 1
    Dernier message: 17/03/2009, 11h01
  4. Réponses: 5
    Dernier message: 02/06/2008, 18h25

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