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 :

Utilisation du service générique de génération de la FAQ [Fait]


Sujet :

BIRT

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut Utilisation du service générique de génération de la FAQ
    Bonjour à tous.

    J'ai trouvé quelque chose dans la FAQ qui me parait très bien (Comment faire un service générique de génération BIRT dans une application J2EE ?) mais je bloque sur un point.
    En effet, dans le constructeur, nous devons indiquer le chemin des ressouces et des librairies et je ne sais pas que mettre.

    J'ai installé BIRT sous eclipse en téléchargeant le framwork et en faisant un copier/coller des features et des pluggin.

    Merci par avance pour votre aide !

    Nicolas

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Voici mon code si ca peut aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private GenerationPdf() throws BirtException {
    		EngineConfig config = new EngineConfig();
    		realPath = "C:\\........\\WebContent";
    		config.setResourcePath(new File(realPath, "birt-report-framework-2_3_1").getAbsolutePath());
    		config.setBIRTHome(new File(realPath, "WEB-INF/lib").getAbsolutePath());	//endroit où se trouvent les librairies du Runtime
    		Platform.startup(config);
    		IReportEngineFactory factory = (IReportEngineFactory) Platform
    			.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
    		engine = factory.createReportEngine(config);
    		option = new RenderOption();
    	}
    Dans mon dossier webContent du projet, j'ai bien un dossier birt-report-framework-2_3_1 contenant le dossiers pluggin et configuration de mon ReportEngine.

  3. #3
    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,

    Je pense qu'il y a quelquechose de faux dans ton appel monstor car la méthode setResourcePath permet de faire le lien vers les fichiers de ressources (.properties) qui servent généralement à l'internationalisation.

    Par contre, la méthode setBIRTHome() permet de définir où se trouvent les librairies du runtime. Mon conseil est de télécharger le birt-runtime-version correspondant à votre version (exactement la même que celle de développement) et de mettre le dossier et de pointer vers le dossier ReportEngine de ce runtime. Vous pouvez également copier/coller ce dossier à un endroit de votre application et pointer vers celui ci.

    Par contre, attention BIRT n'accepte que des chemins absolus, il faut donc pour plus de souplesse (encore un conseil) :
    • Récupérer le chemin absolu de la racine de l'application
    • Y ajouter le chemin relatif vers le ReportEngine

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Bonjour et merci pour votre réponse.

    N'est-il pas possible de récupérer le path de mon serveur tomcat pour plus de souplesse ?

  5. #5
    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 pense que ce sujet peut répondre à ta question :
    http://www.developpez.net/forums/d65...mins-relatifs/

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Ok, merci.

    Allez une dernière petit question (désolé d'abuser).
    J'ai défini un fichier rptdesign dans lequel j'ai fait un tableau m'affichant toutes les entrées d'une table de ma base.
    Est-il possible lors de la génération de ce pdf de court-circuiter le processus normal afin de passer à Birt une autre requête que celle définie dans le rptdesign ?

    J'espère avoir été clair dans mon explication

  7. #7
    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, en passant via les scripts.

    Ensuite à toi de nous préciser si tu veux remplacer par une requête paramétrée ou non.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    En fait j'aimerai que sur le desiner je fasse par exemple un tableau contenant la totalité d'une table et prendre la main sur la requette de génération de ce tableau dans mon code java en passant soit une nouvelle requête pour ce tableau soi carrément un jeu de données.

  9. #9
    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,

    Pour passer un jeu de données en Java, il faut utiliser les Scripted DataSet.
    http://www.developpez.net/forums/m3151166-15/

    Sinon modifier la requête en JavaScript :
    http://www.developpez.net/forums/d67...et-javascript/

    Ou bien modifier la requête en Java :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    design.getDesignInstance().getDataSet("MonDataSet").setQueryText("SELECT CHAMP1, CHAMP2 FROM MATABLE");
    design est de type IReportRunnable.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Merci beaucoup pour toutes ses infos super utilises.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Bonjour

    Alors, j'ai créé un rptdesgn qui est censé m'afficher toutes les données d'une table. Donc pour cela j'ai créé un dataset mappé sur ma table. Dans la preview du designer pas de soucis tout fonctionne bien, cependant lorsque j'essaye de générer mon pdf depuis mon code java, j'ai le message d'erreur suivant : org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class
    Je suppose qu'il me manque un paramètre à passé. ?

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

    Non il manque le driver de ta base de données.

    Où l'as-tu mis ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Dans le répertoire WebInf/lib de mon appli.
    Ma dataset et bien configurée avec le driver et va bioen chercher les infos en base puisqu'avec le mode preview tout fonctionne.... :/

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Ou bien modifier la requête en Java :
    Code Java :

    design.getDesignInstance().getDataSet("MonDataSet").setQueryText("SELECT CHAMP1, CHAMP2 FROM MATABLE");

    design est de type IReportRunnable.
    Bonjour,

    Pouvez-vous m'indiquer comment initialiser design svp ?

    Est-il possible aussi, plutot que de générer le fichier dans un fichier de sortie, le générer dans un flux? Ainsi, nous aurions la fenêtre classique nous demandant si nous voulons simplement ouvrir le fichier ou l'enregistrer ?

  15. #15
    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,

    Je ne comprend pas ce que tu veux faire, tu me parles de deux choses qui n'ont absolument rien à avoir !

    D'un côté, tu me demandes comment modifier le SQL d'un DataSet.
    D'un autre, tu me demandes si on peut demander une sortie dans un flux.

    Pour la question 1 :

    Dans le code Java (de la classe exemple), tu as une ligne qui te permet d'ouvrir un rptdesign :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IReportRunnable design = engine.openReportDesign(new File(realPath, "WEB-INF/etats/" + etat + ".rptdesign").getAbsolutePath());
    Voilà où et comment est initialisé design.

    Tu peux également modifier la requête en JavaScript dans le initialize du rapport :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    design = reportContext.getReportRunnable();
    design.getDesignInstance().getDataSet("MonDataSet").setQueryText("SELECT CHAMP1, CHAMP2 FROM MATABLE");

    Ou modifier la requête dans le beforeOpen du DataSet :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    this.queryText = "SELECT <Champ> FROM <Table> WHERE <condition>"

    Pour la question 2 :

    Tu peux enregistrer dans un flux avec cette méthode :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    option.setOutputStream(monStream);

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Il y a en effet 2 points bien différents, le premier concerne la génération du document et donc ses données, le second la façon de l'afficher ou de l'enregistrer !

    En tout cas merci beaucoup, je vais essayé tout ça !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser le service d'indexation windows
    Par GeYinho dans le forum ASP.NET
    Réponses: 6
    Dernier message: 21/06/2007, 16h39
  2. Utilisation de services C++ importés
    Par Cheb09 dans le forum Delphi
    Réponses: 8
    Dernier message: 18/06/2007, 21h59
  3. utiliser un service de windows
    Par anisj1m dans le forum Windows
    Réponses: 3
    Dernier message: 21/02/2007, 15h22
  4. Utiliser un service web dans une page ASP
    Par REMACC1 dans le forum ASP
    Réponses: 2
    Dernier message: 30/08/2006, 10h17
  5. utilisation integration services MSSS05
    Par Cape31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/05/2006, 17h37

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