Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2007, 10h33   #1
Invité de passage
 
Inscription : janvier 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 32
Points : 4
Points : 4
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 :
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
dosy07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 10h54   #2
Membre régulier
 
Inscription : novembre 2005
Messages : 173
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 173
Points : 84
Points : 84
Salut,
pour récupérer les éléments d'un report:
Code :
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
FredKéKé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 11h31   #3
Invité de passage
 
Inscription : janvier 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 32
Points : 4
Points : 4
merçi,
mais comment tu initialises ton objet reportDesign ?

cdt,
dosy07
dosy07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 13h27   #4
Membre régulier
 
Inscription : novembre 2005
Messages : 173
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 173
Points : 84
Points : 84
Alors, tu initialise ton engine puis:
Code :
1
2
3
 
SessionHandle session = birtEngine.getDesignEngine().newSessionHandle(ULocale.ENGLISH);
ReportDesignHandle reportDesign = session.openDesign("xxx.rptdesign");
FredKéKé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 13h58   #5
Invité de passage
 
Inscription : janvier 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 32
Points : 4
Points : 4
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
dosy07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 14h30   #6
Membre régulier
 
Inscription : novembre 2005
Messages : 173
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 173
Points : 84
Points : 84

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
FredKéKé est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 17h49   #7
Invité de passage
 
Inscription : janvier 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 32
Points : 4
Points : 4
j'ai enfin réussi à ouvrir un design

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

Code :
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
dosy07 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2007, 17h53   #8
Membre Expert
 
Avatar de moritan
 
Homme
Développeur Java
Inscription : juin 2005
Messages : 658
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : Développeur Java

Informations forums :
Inscription : juin 2005
Messages : 658
Points : 1 051
Points : 1 051
Pour le mode servlet :

Code :
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
moritan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h30.


 
 
 
 
Partenaires

Hébergement Web