Php Jasper Reports

  • View
    21

  • Download
    1

Embed Size (px)

Transcript

Intgration PHP / JasperReportspar Charly Clairmont (Site perso)

Date de publication : 01/06/2007 Dernire mise jour : 24/08/2007

Ce document a pour but d'expliquer comment mettre en oeuvre l'appel de rapports raliss au format JasperReports depuis une application PHP via le pont PHP / JAVA Bridge.

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

I - Introduction II - Installation de PHP / Java Bridge II-A - installation sous GNU Linux II-B - nstallation sous Windows II-C - vrification du support java de PHP II-D - votre premire intgration entre PHP et Java III - Appel des fichiers JasperReports depuis PHP III-A - btir votre modle de document avec iReport III-B - crire le script PHP qui appelle votre fichier JRXML IV - Conclusion Pour aller plus loin Auteur

-2Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

I - IntroductionPHP a gagn d'annes en annes une image de langage professionnel, simple et performant. Comme le montre l'Association Franaise des Utilisateurs de PHP dans son livre blanc PHP en Entreprise (1) , il y a un trs grand nombre de sites internet de renom, de socits du CAC 40 qui dveloppent en PHP. Ce qui renforce alors cette image de robustesse. Cette notorit du langage est aussi visible compte tenu du nombre d'articles qui lui est consacr, et le nombre trs important de recherches effectues sur Google (2) .

Illustration 1: Google Trends : JAVA, PHP, .NET, PYTHON Il existe quelques librairies de bon niveau pour la production de graphiques, de documents au format pdf. Toutefois, peu d'entre elles fournissent un environnement pour assister les concepteurs de rapports dans leur laboration et leur publication. Agatha Reports (3) , un projet Brsilien prsente l'ambition d'apporter PHP les outils de reporting qui lui manque. Cette solution bien que fonctionnelle ne supporte pas ce jour PHP5 (4) . De mme, la nouvelle plate-forme de Zend en version 3.0.2 (5) affiche un support pour BIRT (6) , un environnement de conception de rapport bas sous Eclipse et appuy par Actuate. Jasper Reports a offert au monde Java TM un moteur de grande qualit pour la gnration de rapports rassemblant tableaux, graphiques, mlant des sources de donnes trs htrognes (rapport multi-sources). Cet outil en plus d'tre trs performant sait exporter vers divers formats tels que : pdf, html, xls, xml, cvs, txt, rtf et notamment un support pour Open Office depuis sa dernire version. Par ailleurs, iReport, un environnement de dveloppement pour Jasper Reports procure une assistance de haut niveau dans la construction des autres rapports ou tats. En plus, les deux projets suivent une volution synchronise. Ainsi, toutes les fonctionnalits ajoutes au moteur Jasper Reports sont prises en compte par iReport. Nombreuses sont les interrogations postes sur les forums sur les outils de reporting en PHP, ou encore sur l'intgration entre PHP et des environnement de reporting tierce. Voil une rponse : PHP et Jasper Reports ! Celle-ci nous semble lgante parce qu'elle apporte de la productivit, grce iReport qui est assez simple prendre en main vitant alors d'apprendre l'API de la librairie. Ensuite, Jasper Reports est un moteur aujourd'hui prouv : de nombreuses solutions libres ou propritaires l'embarquent, des grandes socits comme Siemens, des administrations franaises en font un usage rguliers. Enfin, l'association PHP, Java, via PHP / Java Bridge (7) commence gagner ses gallons. Mme si certains pensent qu'il existe des marges d'amlioration (8) . Ce projet rend possible l'instanciation d'objets java depuis des programmes PHP avec la syntaxe PHP.

-3Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

Vous l'avez compris pour intgrer des rapports Jasper Reports vos programmes PHP il est ncessaire d'installer PHP / Java Bridge.

-4Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

II - Installation de PHP / Java Bridge II-A - installation sous GNU LinuxL'installation sous GNU Linux est assez simple car les packages sont disponibles au format rpm. Il convient de tlcharger le fichier php-java-bridge-x.y.z-1-i386.rpm et de l'installer : fichier rpm pour l'installation du bridge entre php et javarpm -i php-java-bridge-x.y.z-1-i386.rpm

o "x.y.z" correspond la dernire version stable. Bien sr il est ncessaire d'avoir une machine virtuelle Java installe sur sa machine. Dans le fichier php.ini il faut au moins initier la variable java.java. Vous devez dans votre fichier php.ini (ou php.d/java.ini) ajouter les entres : configuration du fichier php.inijava.java_home={Rpertoire d'installation JAVA} java.java={Rpertoire d'installation JAVA}/java

o {Rpertoire d'installation JAVA} est remplacer par le chemin vers votre intallation du SDK. Si vous souhaitez faire dialoguer vos applications PHP et un serveur J2EE installer le package php-java-bridge-tomcat : fichier rpm pour exploiter une interface avec tomcatrpm -i php-java-bridge-tomcat-x.y.z-1.i386.rpm

Pour tlcharger les fichiers adquats voir : http://sourceforge.net/project/showfiles.php?group_id=117793

II-B - nstallation sous WindowsIci, il faut tlcharger php-java-bridge_y.x.z_j2ee.zip, le dcompresser dans un rpertoire temporaire. Parmi les fichiers dcompresss il y a une archive web JavaBridge.war. Dcompressez le aussi et copiez les fichiers JavaBridge.jar et java-x86-windows.dll respectivement depuis WEB-INF/lib et WEB-INF/cgi dans le rpertoire de vos extension php. Enfin, il vous faut ajouter quelques entres dans votre fichier php.ini. configuration php.iniExtension=php_java.dll

Votre fichier php.ini intgre alors la ligne prcdante et est proche de ce qui suit :

-5Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

configuration php.ini; windows Extensions ; Note that ODBC support is built in, so no dll is nedded for it. ; Note that mny DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) ... ... ;extension-php_mbstring.dll ;extension-php_bz2.dll ... ... extension-php_java.dll ... ...

Enfin configurez le connecteur Java pour PHP configuration php.ini;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; [java] java.java_home = "c:\Program File\Java\jdk1.5.0_10\bin" java.java = "c:\Program File\Java\jdk1.5.0_10\bin\javaw.exe" java.class.path = "c:\php\ext\JavaBridge.jar" java.library.path = "c:\php\ext" ;java.hosts = "127.0.0.1:8080" ;java.servlet = On java.log_level = 2

Bien sr les diffrentes variables sont initialiser avec les valeurs relatives votre evironnement Java (le rpertoire o est install votre SDK), ou de votre serveur d'application J2EE. pour plus d'iformations : http://www.dsl.uow.edu.au/~sk33/php5java.htm

II-C - vrification du support java de PHPVous devez redmarrer votre serveur apache et vrifier que vous avez bien le support java de PHP. Crez une page phpinfo.php et insrez y les lignes suivantes : phpinfo()

Sauvez ce fichier, publiez le sur votre environnement web, et appelez la page depuis votre navigateur. Vous devrez observer le support java de php.

-6Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports par Charly Clairmont (Site perso)

Illustration 4: module php / java bridge

II-D - votre premire intgration entre PHP et JavaCrez un fichier java.php et collez les lignes suivantes : appel de java depuis phpcompileReport($reportsPath .$reportFileName.".jrxml"); // Remplir le modle avec les donnes $sJfm = new JavaClass("net.sf.jasperreports.engine.JasperFillManager"); $print = $sJfm->fillReport( $report, new Java("java.util.HashMap"), $Conn->getConnection() );

- 10 Copyright 2007 - C. Clairmont. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de domages et intrts.http://charly-clairmont.developpez.com/tutoriels/php-jasper-reports/

Intgration PHP / JasperReports