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 :

Intégration du BIRT Report Viewer [Fait]


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Intégration du BIRT Report Viewer
    Bonjour,

    Je travaille actuellement sur une application java avec Eclipse RCP.

    J'ai réussit à paramétrer le report engine de BIRT qui me génère bien ce que je veux et j'ai aussi réussit à exporter au format Html par exemple.

    Mon problème c'est que je voudrais qu'au lieu d'être exporter sur le disque, le rapport s'ouvre avec le Report Viewer pour que mon utilisateur choisisse lui même le format et le lieu de l'export.
    Si cela doit ouvrir une nouvelle fenêtre, ça ne pose pas de problème.

    En gros je voudrais que dans mon application, il se passe la même chose que lorsqu'on clique sur "View Report" de BIRT : le BIRT Report Viewer s'ouvre avec dedans notre rapport. On peut ensuite exporter, imprimer, etc

    Tout ce que j'ai trouvé sur le site d'Eclipse part d'un serveur TomCat. Moi je n'en ai pas et ne souhaite pas en installer. Est-ce quand même possible ? Si oui comment ? Avez-vous trouvé des tutos ?

    Merci d'avance

  2. #2
    Candidat au Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Le ReportViewer de Birt tourne forcément sur un serveur d'application. Par défaut BIRT fournis une webapp qu'il est facile de déployer sur Tomcat. Pour le designer Birt ce n'est pas bien différent puisqu'il utilise Jetty, un serveur d'application intégré à Eclipse (je ne me souvient plus du nom du feature correspondant)

    Si tu as intégré le designer à ton appli rcp tu peux rajouter, si ce n'est déja fait, le plugin "org.eclipse.birt.report.viewer". Tout est dedans, si tu es familière avec la configuration des plugin rcp (plugin.xml), tu trouveras à l'intérieur tout la conf (en l'occurrence les différentes servlet configurées en local). D'ailleurs un click droit -> Propriétés sur le viewer t'indiquera : http://127.0.0.1:60136/viewer/run?__......

    Par contre je ne sais pas comment tu peux récupérer le port sur lequel il est configuré, mais il y a de fortes chances que cela soit possible

    Autre solution, mais moins propre : générer l'édition et donner la main au systeme d'exploitation pour ouvrir ton rapport (dans ce cas, le choix du format se fera via une dialogue de ton application) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Program program = Program.findProgram(monExtension);
    
    if(program != null && monExtension != "PDF") {
          program.execute(monfichierGenere);
    }else{
          Program.launch(monfichierGenere);
    }
    * Le 2eme cas est nécessaire, Adobe Reader étant sur certaines versions/OS un peu tatillon

    Edit : il y a de la litterature sur le sujet

    http://wiki.eclipse.org/RCP_Example_(BIRT)_2.1
    La FAQ de BE http://www.birt-exchange.com/wiki/BI...n_.28RCP.29.3F parle également d'un article sur un blog mais le lien semble HS

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut Lien qui marche

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup, je vais essayer de chercher dans cette voie, pourl'instant j'ai surtout des problèmes avec l'intégration des api.

    Dès que j'ai réussi à faire quelquechose, je posterai, au cas où ça intéresse dees gens...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Quelqu'un a déjà réussi à faire ce que je veux ?

    Car le turoriel que le site d'Eclipse ne fonctionne pas chez moi.
    J'ai une NullPointerException dans la classe Webviewer importé avec le .jar !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Le turoriel que j'avais suivi avant n'utilisais pas la dernière version de BIRT...

    Donc, grâce au lien http://wiki.eclipse.org/RCP_Example_%28BIRT%29_2.1 (option 1 ou 2), j'ai enfin réussi à lancer le BIRT Web Viewer qui s'ouvre dans une nouvelle fenêtre. Le problème c'est que rien ne s'affiche dedans !

    Quelqu'un a une idée ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 258
    Points : 171
    Points
    171
    Par défaut
    Quand tu dis rien ne s'affiche dedans, tu as un NULL.COM ou le rapport sans données ?
    Je te conseil ce lien de téléchargement, j'ai testé les exemples et cela fonctionne nickel.
    http://www.onjava.com/onjava/2006/07...deployment.zip

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Bien, j'ai maintenant réussi à afficher mon rapport en utilisant un browser (option 4 et 5). Maintenant, je voudrais bien que les boutons d'export et d'impression du web viewer apparaissent aussi dans mon interface, comme dans la figure 4 de http://www.onjava.com/pub/a/onjava/2...rt.html?page=3 . J'ai testé le code mais il n'y a que mon rapport qui apparait, pas de barre d'outils. Une idée ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Ca y est, j'ai finalement réussi !

    Voilà ce que j'ai fait pour ceux que ça intéresse :

    La classe PreviewBirtActiontest :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    import org.eclipse.birt.report.viewer.utilities.WebViewer;
    import org.eclipse.jface.action.IAction;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.swt.browser.Browser;
    import org.eclipse.ui.IWorkbenchWindow;
    import org.eclipse.ui.IWorkbenchWindowActionDelegate;
     
    public class PreviewBirtActiontest implements IWorkbenchWindowActionDelegate {
     
    	//static Logger logger = Logger.getLogger(PreviewBirtAction.class.getName());	
     
    	private IWorkbenchWindow window;
    	private String reportName;
    	private Browser browser;
    	/**
             * The constructor.
             */
    	public PreviewBirtActiontest() {
    	}
     
    	public void setReportName(String report)
    	{
    		reportName = report;
    	}
    	public void setBrowser(Browser brw)
    	{
    		browser = brw;
    	}	
    	public void run(IAction action) {
    		try {
    			System.setProperty( "RUN_UNDER_ECLIPSE", "true" );
    			WebViewer.display(reportName , WebViewer.HTML, browser, "run");	
    			//WebViewer.display("C:/IANA/2005/Birt/RCP/testBirt/testSampleDB.rptdesign", WebViewer.HTML,false);	
    		} catch (Exception e) {
    			//logger.error(e);
    			e.printStackTrace();
    		}
     
    	}
    	public void run() {
    		try {
    			//option 3 display in SWT Browser using /frameset mapping.
    			WebViewer.display(reportName, WebViewer.HTML, browser, "frameset");
     
    			//option 4 display in SWT Browser using /run mapping.
    			//WebViewer.display(reportName, WebViewer.HTML, browser, "run");	
    		} catch (Exception e) {
    			//logger.error(e);
    			e.printStackTrace();
    		}
     
     
     
     
    	}
    	/**
             * Selection in the workbench has been changed. We 
             * can change the state of the 'real' action here
             * if we want, but this can only happen after 
             * the delegate has been created.
             * @see IWorkbenchWindowActionDelegate#selectionChanged
             */
    	public void selectionChanged(IAction action, ISelection selection) {
    	}
     
    	/**
             * We can use this method to dispose of any system
             * resources we previously allocated.
             * @see IWorkbenchWindowActionDelegate#dispose
             */
    	public void dispose() {
    	}
     
    	/**
             * We will cache window object in order to
             * be able to provide parent shell for the message dialog.
             * @see IWorkbenchWindowActionDelegate#init
             */
    	public void init(IWorkbenchWindow window) {
    		this.window = window;
    	}
    }
    que l'on appelle comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        		PreviewBirtActiontest preview = new PreviewBirtActiontest();
        		preview.setReportName(report);
        		preview.setBrowser(browser);
        		preview.run();
        		preview.dispose();
    Et on a ce que je voulais (l'impression écran en pièce jointe) !

    Merci à tous pour votre aide !
    Images attachées Images attachées  

  10. #10
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 189
    Points : 176
    Points
    176
    Par défaut
    Cette discution m'interesse vivement.
    Mais je ne vois pas où vous avez trouvé la classe WebViewer.

    Moi ma classe Servlet qui gère le viewer n'a pas de méthode display.
    Et dans votre fichier Zip, il n'y en a pas aussi.

    Je ne comprends pas trop?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Décembre 2008
    Messages : 36
    Points : 29
    Points
    29
    Par défaut
    Pour être clair :
    preview.setBrowser(browser);
    browser:que ce qu'il faut donner comme un exemple de navigateur.
    tu as utilisé une classe java .Au cas ou on veut intégrer un rapport birt dans une servlet que ce qu'il faut faire.Parce que j'ai déjà tester l'exemple(OnJava) mais j'arrive pas à trouver une résultat.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/05/2009, 17h49
  2. Réponses: 3
    Dernier message: 04/05/2009, 19h08
  3. [2.3.1] Personnalisation du Birt Report Viewer
    Par Junta dans le forum BIRT
    Réponses: 2
    Dernier message: 22/12/2008, 17h22
  4. Réponses: 0
    Dernier message: 30/08/2008, 08h54
  5. Intégration de BIRT à une appli J2EE
    Par tiboudchou dans le forum BIRT
    Réponses: 4
    Dernier message: 06/07/2006, 16h38

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