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 :

[2.2.0] Ouvrir un rptdesign pour récupérer les info


Sujet :

BIRT

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 36
    Points
    36
    Par défaut [2.2.0] Ouvrir un rptdesign pour récupérer les info
    Bonjour à tous,

    J'essaye de générer un tableau dans un JSP pour afficher la liste des rapports disponible. Je voudrais récupérer le nom du rapport, la description, l'auteur ...

    J'ai donc installé Birt dans ma webapp avec eclipse (mode automatique) :
    WEB-INF :
    lib
    plateform
    configuration
    plugins

    L'exemple /frameset fonctionne correctement
    http://localhost:8080/indicateurs/fr...e=my+parameter

    Ensuite j'essaye de suivre l'exemple de la page
    http://www.eclipse.org/birt/phoenix/...tEngineAPI.php
    J'ai aussi essayé cela :
    http://www.demay-fr.net/blog/index.p...ion-de-rapport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
    	EngineConfig conf = new EngineConfig();
    	conf.setEngineHome("plateform");
    	ReportEngine engine = new ReportEngine(conf);
    	Platform.startup(conf);
    	IReportRunnable design = engine.openReportDesign("test.rptdesign");
    Et bien sûr cela ne fonctionne pas :
    Can't load the report engine
    java.lang.NullPointerException
    at org.eclipse.birt.report.engine.api.ReportEngine.openReportDesign(ReportEngine.java:120)
    at org.apache.jsp.listReport_jsp._jspService(org.apache.jsp.listReport_jsp:66)

    Dans conf.setEngineHome(<CONFIG>); je ne sais pas quoi mettre dedans sachant que je ne dois pas mettre de chemin absolu, l'appli doit rester portable.

    Y a t'il un moyen plus simple pour ouvrir un rptdesign et récupérer les information contenue dans le fichier en utilisant les libs birt ?


    Merci d'avance,

    cdt,
    dosy07

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Points : 123
    Points
    123
    Par défaut
    Salut,
    pour récupérer les éléments d'un report:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DesignElementHandle designElementGrill = reportDesign.findElement("nomElementduReportDesign");
    tu peux ensuite caster cet élément (exemple en AutoTextHandle) et accéder aux méthodes spécifiques de cet élément.
    a+
    Fred

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    merçi,
    mais comment tu initialises ton objet reportDesign ?

    cdt,
    dosy07

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Points : 123
    Points
    123
    Par défaut
    Alors, tu initialise ton engine puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SessionHandle session = birtEngine.getDesignEngine().newSessionHandle(ULocale.ENGLISH);
    ReportDesignHandle reportDesign = session.openDesign("xxx.rptdesign");

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Merci Fred, t'es un chef

    Juste une dernière question, quand Birt est intégré dans ta web-app (cf ci dessus)
    Qu'est ce que je dois mettre dans conf.setEngineHome(<ici>);

    cdt,
    dosy07

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Points : 123
    Points
    123
    Par défaut

    ben moi j'ai mon AS (jBoss), et je lui donne le path absolu de l'engine de Birt (opt/birt/reportengine/).. ça marche sans problème.
    dans une web app je sais pas trop.. t'as qu'à essayé de le mettre à la base de ton projet et de lui donner le path à partir de la.. si ça marche pas essaie de le mettre dans le dossier lib.
    si tu réussi fais-moi savoir stp.

    a+
    Fred

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    j'ai enfin réussi à ouvrir un design

    Quand birt est installé dans la webapp, il ne faut pas initialiser le BIRT_HOME

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    EngineConfig myconf = new EngineConfig();
    ReportEngine engine = new ReportEngine(myconf);
    String reportHome = config.getServletContext().getInitParameter("BIRT_VIEWER_WORKING_FOLDER");
    IReportRunnable report = engine.openReportDesign(reportHome+"/test.rptdesign");
    out.print(report.getReportName()+"<BR>");
    out.print("ici");
    par contre, je n'ai toujours pas accès aux méthode getName ou getAuthor
    bref toutes les info contenus dans le rptdesign

  8. #8
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Pour le mode servlet :

    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
     
     
     EngineConfig config = new EngineConfig();
    config.setEngineHome("");
      IPlatformContext context = new PlatformServletContext( sc );
      config.setPlatformContext( context );
     
      try
      {
       Platform.startup( config );
      }
      catch ( BirtException e )
      {
       e.printStackTrace( );
      }
     
      IReportEngineFactory factory = (IReportEngineFactory) Platform
      .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
      birtEngine = factory.createReportEngine( config );
    ou sc est ton ServletContext

Discussions similaires

  1. Comment fait-on pour récupérer les infos d'une image
    Par Mario Rousson dans le forum VB.NET
    Réponses: 4
    Dernier message: 30/11/2011, 14h10
  2. Réponses: 5
    Dernier message: 02/05/2008, 15h28
  3. Réponses: 1
    Dernier message: 30/04/2008, 15h09
  4. Réponses: 21
    Dernier message: 16/04/2008, 10h06
  5. Réponses: 3
    Dernier message: 23/05/2007, 23h52

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