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 :

[Debutante] utilisation des *.rptdesign


Sujet :

BIRT

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut [Debutante] utilisation des *.rptdesign
    bonjour,
    je ne sais pas trop comment faire, on ma demandé de travailler sur les rapport via BIRT, dans un environnement deja établie (c'est à dire que le plugion BIRT avait déjà été installé... sous eclipse pour avoir l'interface 'ReportDesign'.)
    donc j'ai créé quelques rapport *.rptdesign et je souhaiterais maintenant les utiliser via une application java, sous forme d'un simple bouton pouvoir éditer un rapport. mais seulement je ne sais pas vraiment comment faire ...
    j'ai vu des exemples de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    EngineConfig engineConfig = new EngineConfig();
    		engineConfig.setEngineHome("Chemin A");
    		ReportEngine engine = new ReportEngine(engineConfig);
    		IReportRunnable design = null;
    		try {
    			design = engine
    					.openReportDesign("Chemin B");
    		} catch (EngineException e) {
    			e.printStackTrace();
    		}
    		IRunAndRenderTask task = engine.createRunAndRenderTask(design);
    le truc c'est que je ne connais pas le résultat de ce code ! est cette partie de code qui me permet d'ouvrir un rapport ? si oui quelles sont les chemins à préciser ? le B, j'ai compris que c'était celui du rapport, par contre le chemin A ? dans les exemples on voit souvent "C:/birt-runtime-2_0_1/Report Engine" sauf que moi je n'ai pas de répertoire :birt-runtime-2_0_1/Report Engine ? alors est ce que lors de l'installation du plugin il fallait le créer et donc il est préférable que je réinstalle le plugin ou est ce normal ?
    pour l'instant mes plugin pour birt sont dans le repertoire des plugin d'eclipse !
    merci de votre aide !

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /* Partie initialisation */
    EngineConfig engineConfig = new EngineConfig();
    engineConfig.setEngineHome("Chemin A");
    ReportEngine engine = new ReportEngine(engineConfig);
    IReportRunnable design = null;
    RenderOptionBase option = new RenderOptionBase();
    option.setOutputFormat(RenderOptionBase.OUTPUT_FORMAT_PDF);	//Format du fichier de sortie
    /* Fin initialisation */
     
    /* Préparation de l'édition */
    try {
    	design = engine.openReportDesign("Chemin B");
    } catch (EngineException e) {
    	e.printStackTrace();
    }
    IRunAndRenderTask task = engine.createRunAndRenderTask(design);
    /* Fin de la préparation */
     
    /* Création PDF */
    option.setOutputFileName("Chemin C");	//Nom du fichier de sortie
    task.setRenderOption(option);		//Chargement du fichier
    /* Fin création PDF */
    task.run();					//Déclenchement de l'édition
    Chemin A = C:/birt-runtime-2_0_1/Report Engine. Dans mon cas, j'ai copier/coller le répertoire Report Engine dans mon répertoire lib où je rassemble toutes mes librairies. Donc tu mets le chemin correspondant à ce répertoire (pas de chemin relatif).

    Chemin B = Nom de ton édition (.rptdesign), toujours pas de chemin relatif.

    Chemin C = Nom de ton fichier de sortie (.pdf)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    En fait la personne qui avait crée mon espace de travail n'avait pas installé le ReportEngine API, du coup je n'avais pas tous ce qu'il fallait, j'ai réinstallé, et rajouté dans mon classPath les *.jar issue du répertoire 'C:\birt-runtime\ReportEngine\lib' et depuis ca marche presque...
    en fait ce que j'aimerais maintenant c'est gérer le viewer pour pouvoir utiliser mes rapport comme le ferais l'utilisateur.
    J'ai trouvé des exemples de code pour intégrer le viewer mais l'Application implémente IPlatformRunnable et je me demande si cette application pourra être exécuté à partir d'une interface SWT ???... car pour l'instant je le lance via eclipse en faisant Run As / Eclipse Application.
    Donc sans eclispe d'ouvert cela fonctionnera-t-il encore.
    Car j'ai vu que le plus simple était d'utiliser des servlet... mais comme je n'utilise pas de serveur...

  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
    Le problème de l'intégration d'un tel outil dans un client lourd, c'est que ca va largement l'alourdir...

    Perso, je n'ai jamais utilisé le BIRT Viewer mais si tu cherches un peu sur le forum il y a déjà eu des discussions à ce sujet.

    Ensuite, on peut utiliser le ReportEngine en client lourd mais c'est déconseillé. Et je ne sais pas si on peut utiliser le BIRT Viewer dans ce cas.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    en fait je n'ai peut être pas bien compris à quoi sert ReportEngine et le Viewer...
    Moi ce que je veux, c'est à partir d'une application SWT je puisse charger des rapports *.rptdesign, que l'utilisateur entre ses parametres et qu'il puisse voir le résultat sous forme de tableau comme eclispe le permet via l'interface Designer je crois....
    Maintenant j'ai cru comprendre qu'il fallait utiliser le Viewer... mais dans ce cas je ne comprends pas vraiment l'utilité du ReportEngine, si c'est juste pour générer des rapports et ne pas pouvoir les utiliser... quoi que je crois qu'on peut les sauvegarder en pdf....
    J'ai bien compris ?
    Merci encore de toutes les reponse que vous m'apportez...

  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
    Ben disons que si tu ne génères pas les rapport, dans ce cas, ca ne sers plus a rien d'utiliser BIRT....

    BIRT permet d'extraire des données d'une base de données ou d'objets Java et de les mettre en forme dans le but de les présenter synthétiquement et généralement sous forme PDF ou HTML.

    Le ReportEngine prend un *.rptdesign en entrée et d'éventuels paramètres et en ressort un fichier PDF ou HTML selon le format choisi au départ. Ce fichier peut être visualisé directement ou enregistré.

    Le BIRT Viewer est une servlet qui permet de visualiser le rapport généré, elle présente une barre d'outils entre autre.

    Le prévisualisation que tu vois sous BIRT directement n'est pas du tout liée à l'un ou l'autre des choses précédentes, elle permet juste de prévisualiser ce que tu as fait sans avoir à déployer compiler lancer et remplir les paramètres via ton application, c'est exclusivement révservé au développement.

    Personnellement, quand j'ai fini de générer le rapport, je l'affiche dans ma page internet en cours (c'est un PDF) via Acrobat Reader.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    Merci pour l'explication, c'est plus clair maintenant,

    donc tu ouvre ton rapport directement en format pdf. Maintenant cela veut dire que si ton rapport nécéssite des paramètres c'est toi qui les rentre via le code java ...
    D'accord.... car moi ce qu'on m'a demandé bah c'est de visualiser les rapport avec la barre d'outil, d'avoir une IHM permettant de rentrer les parametres et de pouvoir sauvegarder en pdf ou HTML suivant ce que veut l'utilisateur (donc la barre d'outil)... cela s'apparente fortement à ce que fait le viewer... donc je vais chercher de ce coté là... merci encore pour votre aide.

  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
    Je demande d'abord les paramètres à l'utilisateur via une interface et les donne au rapport via du code Java.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    Bonjour Bim,
    je suis toujours sur le meme probleme, lol. (en même temps je réalise mes rapports parralelement *.rptdesign).
    En fait j'ai une application qui tourne en SWING, je voulais implémenter directement le WebViewer mais apparement ce n'est pas si simple que ça... en tout cas cela ne marche pas comme je veux.
    Donc je me suis dit que j'allais peut etre passé par le ReportEngine, réaliser/générer mes rapports et ensuite les ouvrir avec AbodeReader ?
    Pourrais tu me passer un exemple de code qui permettrait d'implementer cela facilement...
    merci d'avance

  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
    Citation Envoyé par lilou77
    Bonjour Bim,
    je suis toujours sur le meme probleme, lol. (en même temps je réalise mes rapports parralelement *.rptdesign).
    En fait j'ai une application qui tourne en SWING, je voulais implémenter directement le WebViewer mais apparement ce n'est pas si simple que ça... en tout cas cela ne marche pas comme je veux.
    Donc je me suis dit que j'allais peut etre passé par le ReportEngine, réaliser/générer mes rapports et ensuite les ouvrir avec AbodeReader ?
    Pourrais tu me passer un exemple de code qui permettrait d'implementer cela facilement...
    merci d'avance
    En même temps si je te dis que tu es obligée de passer par le ReportEngine, c'est que sans lui, tu n'obtiendras rien, c'est lui qui te permet de générer ton .pdf. Ensuite, il faut que tu regardes comment intégrer une application dans du JAVA (je l'avais fait dans un projet d'école il y a quelques années en Swing) ou alors comment intégrer un WebViewer dans ton application (Ca je suis certaine que c'est possible mais malheureusement dans ton cas, je pense qu'il faut que Tomcat tourne derrière, ca va trop loin pour une simple application).

    Bon courage !

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    C'est clair qu'il faut du courage, surtout que j'ai toujours des erreurs lol.

    Bon pour etre simple j'ai téléchargé l'exemple org.eclipse.birt.examples.rcpengine, qui montre avec le rcpengine comment visualiser un rapport :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    	EngineConfig config = new EngineConfig();
    	config.setEngineHome("C:/birt_runtime/birt-runtime-2_1_0/ReportEngine");
    	try {
    		Platform.startup(config);
    	} catch (BirtException e1) {		} 
    	config.setLogConfig("C:/birt_runtime/birt-runtime-2_1_0/ReportEngine",Level.SEVERE );
    	IReportEngineFactory factory = (IReportEngineFactory) Platform
    	.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
    	IReportEngine engine = factory.createReportEngine( config );
    	IReportRunnable design = null;
    	try {
    		FileInputStream fs = new FileInputStream(reportPath);
    		design = engine.openReportDesign(fs);
    		IRunAndRenderTask task = engine.createRunAndRenderTask(design);
    		HTMLRenderContext renderContext = new HTMLRenderContext();
    		renderContext.setImageDirectory("D:/Travail/ReportTest/properties");	
    		HashMap<String, HTMLRenderContext> contextMap = new HashMap<String, HTMLRenderContext>();
    		contextMap.put( EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT, renderContext );			
    		task.setAppContext(contextMap);
     
    		IRenderOption options = new HTMLRenderOption( );
    		ByteArrayOutputStream bos = new ByteArrayOutputStream();
    		options.setOutputStream(bos);
    		options.setOutputFormat("html");
    		task.setRenderOption(options);
    		task.run();
    		task.close();
    // AFFICHAGE DANS mes composant du résultat bos-ByteArrayOutputStream 
    		ReportView reportView = new ReportView(bos,report.getLabel());
    		reportView.setVisible(true);
     
    // browser.setText(bos.toString()); // issu de l'exemple
     
    		engine.destroy();
    	} catch (Exception e) {//..}
    Voila donc j'ai pris le code tel quel et j'ai juste mis mais chemins et mon code pour visualiser le résultat.

    Donc si je teste cela dans mon appli en sélectionnant un rapport donné A, je n'ai aucun rendu, c'est à dire que le code HTML qui m'est retourné ne contient rien, même pas le titre du rapport.
    PAr contre si je teste le meme rapport A mais à partir de l'exemple téléchargé (et dont j'ai copié le code dans mon appli), j'obtiens bien un résultat avec le titre les couleurs...
    Je sais que je n'obtient pas le meme résultat car j'ai fait :
    System.out.println(bos.toString());

    je ne comprends pas pourquoi le meme rapport ne s'éxécute pas bien, je n'ai a priori pas d'erreur....
    si quelqu'un peut m'expliquer pour que je corrige merci beaucoup

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Points : 288
    Points
    288
    Par défaut
    bon j'ai trouvé la réponse et j'ai oublié de la mettre :
    il ma manquait la librairie Tidy.jar...
    voila

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

Discussions similaires

  1. Règles d'utilisation des forums C
    Par Franck.H dans le forum C
    Réponses: 3
    Dernier message: 26/01/2008, 17h35
  2. [CR8.5] Utilisation des codes barre
    Par Robert dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/01/2005, 16h13
  3. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 18h24
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 17h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

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