Vous êtes sur la page 1sur 20

Gnration de rapport avec Jasper Report

par Eric Reboisson

Date de publication : 05/11/2005 Dernire mise jour : 16/07/2006

Mise jour de ce tutoriel avec les nouvelles versions des outils mais aussi pour corriger l'absence de certains fichiers dans le tutoriel.

Gnration de rapport avec Jasper Report par Eric Reboisson

I - Introduction II - Cration de la base de donnes II-A - Cration de la base II-B - Cration de la table III - Installation de iReport IV - Utilisation de iReport IV-A - Cration d'une connexion IV-B - Cration du rapport IV-C - Compilation du rapport V - Gnration du rapport PDF via JAVA V-A - Cration du projet ECLIPSE VI - Conclusion

-2Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

I - Introduction
Les applications d'entreprises ncessitent souvent des ditions cran,mais aussi papier, provenants de sources diverses ( base de donnes, fichiers XML, etc..)

Les solutions d'implmentation sont diverses :

Framework d'entreprise propritaire Outils payants ( Actuate, Business Objects, etc.)

Cependant des outils issus du libre existent et sont trs puissants en terme de fonctionnalits : XSL et XSL-FO pour la mise en forme de donnes XML Le framework Jasper Report

Nous tudierons dans ce tutoriel l'utilisation de la librairie Jasper Report au travers de la construction d'un rapport simple via un GUI nomm iReport et de sa gnration au format PDF avec du code JAVA.

La source de donnes choisie est le SGBD MySQL.

-3Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

II - Cration de la base de donnes


La source de donnes choisie pour cet article est MySQL ( J'ai utilis la version mysql-5.0.20a disponible sur http://www.mysql.com ). Il est videmment possible d'en choisir une autre comme Oracle, pourvu que vous disposiez des drivers JDBC adapts pour la suite.

Nous supposons que MySQL est install et que vous disposez des droits ncessaires pour la cration des objets du tutoriel ( base, table )

II-A - Cration de la base


Vous devez vous connecter votre serveur MySQL et excuter le script de cration de base suivant :
CREATE DATABASE `jasper_database`;

II-B - Cration de la table


Excuter le script suivant pour crer la table dans la base jasper_database :
CREATE TABLE `jasper_database`.`EMPLOYEE` ( `NOM` VARCHAR(50) NOT NULL, `PRENOM` VARCHAR(50) NOT NULL, `AGE` NUMERIC NOT NULL, `VILLE` VARCHAR(50) NOT NULL, PRIMARY KEY(`NOM`) ) ;

Excuter le script suivant pour peupler la table employee


insert insert insert insert into into into into employee employee employee employee (NOM,PRENOM,AGE,VILLE) (NOM,PRENOM,AGE,VILLE) (NOM,PRENOM,AGE,VILLE) (NOM,PRENOM,AGE,VILLE) values values values values ('DUPONT','Paul',25,'PARIS'); ('MARTIN','Fred',34,'PARIS'); ('WAGNER','Anne',45,'PARIS'); ('POLUX','Elea',64,'TOULOUSE');

-4Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

III - Installation de iReport


Tlcharger iReport sur le site http://ireport.sourceforge.net ( Version 1.2.1 ce jour )

L'installation de iReport est triviale puisqu'il suffit d'extraire l'archive tlcharge ( ici sur D : ) et d'excuter l'application en lanant D:\iReport-1.2.1\bin\startup.bat

-5Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

IV - Utilisation de iReport
Nous allons maintenant construire un rapport simple sur la table prcdemment cre en utilisant l'assistant fourni dans iReport .

Ouvrir iReport en excutant D:\iReport-1.2.1\bin\startup.bat

IV-A - Cration d'une connexion


Ouvrir le menu Data > Datasource > Connections / Datasources

Cliquer sur New et paramtrer la connexion la base de donnes comme suit :


-6Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Cliquer sur le bouton Test pour vrifier la connexion.

-7Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Une fois la connexion valide cliquer sur le bouton Save, la connexion est maintenant cre.

Vous pouvez fermer alors la fentre suivante :

IV-B - Cration du rapport


Dans le menu, ouvrir Fichier > Report Wizard et saisir la requte SQL suivante aprs avoir slectionn la connexion prcdemment cre :
select * from employee

-8Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Cliquer Next et slectionner tous les champs en cliquant >>

Cliquer Next

-9Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Cliquer Next ( dans ce rapport simple nous ne feront pas de groupement )

Laisser ces valeurs par dfaut et cliquer Next

- 10 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Cliquer Finish, le rapport apparat alors dans le designer

- 11 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

IV-C - Compilation du rapport


Nous allons maintenant gnrer sous la forme d'un fichier XML dont l'extension est en fait jrxml ( le format utilis par la librairie Jasper Report )

Dans le menu, ouvrir Build > Compiler

- 12 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Nous allons l encore laisser par dfaut la sauvegarde du fichier classic.jrxml dans le rpertoire D:\iReport-1.2.1

Cliquer sur Enregistrer, la compilation se lance et une fois termine vous devriez avoir dans le volet infrieur :
Compiling to file... .\classic.jasper -> D:\iReport-1.2.1\classic.java it.businesslogic.ireport.ReportClassLoader@120cb10 Compilation running time : 25

- 13 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

V - Gnration du rapport PDF via JAVA


Nous allons maintenant crer un projet sous Eclipse et une classe java qui s'occupera de compiler le fichier classic.jrxml pour en gnrer un rapport PDF.

Tlchargez et installer J2SE 1.5 SDK.

Si vous ne disposez pas d'Eclipse, tlchargez-le et installez le. Dans ce tutoriel j'ai utilis la version 3.1.2 d'Eclipse.

Si ces deux premiers points vous posent http://www.eclipsetotale.com/articles/installation.html

problme,

consultez

la

page

suivante

V-A - Cration du projet ECLIPSE


Nous devons crer et configurer un projet Eclipse. Cette partie est essentielle au bon fonctionnement de la suite.

Ouvrir Fichier > New > Project

Choisissez Java Project puis donnez au projet les caractristiques suivantes et cliquez sur Finish:

- 14 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

1 2 3

Veillez bien cocher "Create separate source and output folders". Si Eclipse vous demande de passer en Java Perspective, rpondez "Yes". Crez partir de l'explorateur windows un rpertoire "lib" dans la racine de votre projet : /eclipse/workspace/jasperTest/lib

Copiez ensuite les fichiers jar suivants se trouvant dans le rpertoire "lib" de l'application iReport ( pour moi dans D:\iReport-1.2.1\lib ) dans le rpertoire "lib" du projet "JasperTest". commons-beanutils-1.5.jar commons-collections-2.1.jar commons-digester-1.7.jar commons-logging-1.0.2.jar commons-logging-api-1.0.2.jar itext-1.3.1.jar jasperreports-1.2.1.jar mysql-connector-java-3.1.11-bin.jar

- 15 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Revenez Eclipse et faites sur le nom du projet "jasperTest" : "Bouton droit > Refresh". Le rpertoire "lib" a d apparatre.

Nous allons maintenant ajouter au classpath du projet les librairies : 1 2 3 Faites sur le projet "jasperTest" : "Bouton Droit > Properties" Cliquez sur "Java Build Path" puis sur l'onglet "Librairies" Cliquez sur "Add jars". Une fentre apparat. Droulez l'arborescence qui doit tre "jasperTest > lib" et slectionnez tous les jar prsents. Puis cliquez sur "OK"

Cration de la classe JAVA : faites sur le nom du projet "jasperTest" : "Bouton droit > New > Class" puis donnez la classe les caractristiques suivantes :

- 16 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

Ouvrez ensuite la classe GeneratePDF.java et remplacez le code par le suivant :

Note : Vous devrez peut tre remplacer les variables login et le password.
import import import import import import import import import import import import import java.sql.Connection; java.sql.DriverManager; java.sql.SQLException; java.util.HashMap; java.util.Map; net.sf.jasperreports.engine.JRException; net.sf.jasperreports.engine.JasperCompileManager; net.sf.jasperreports.engine.JasperExportManager; net.sf.jasperreports.engine.JasperFillManager; net.sf.jasperreports.engine.JasperPrint; net.sf.jasperreports.engine.JasperReport; net.sf.jasperreports.engine.design.JasperDesign; net.sf.jasperreports.engine.xml.JRXmlLoader;

import com.mysql.jdbc.Driver;

- 17 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

public class GeneratePDF { public static void main(String[] args) { // - Paramtres de connexion la base de donnes String url = "jdbc:mysql://localhost/jasper_database"; String login = "root"; String password = "root"; try { // - Connexion la base Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(monDriver); Connection connection = DriverManager.getConnection(url, login, password); // - Chargement et compilation du rapport JasperDesign jasperDesign = JRXmlLoader.load("D:\\iReport-1.2.1\\classic.jrxml"); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); // - Paramtres envoyer au rapport Map parameters = new HashMap(); parameters.put("Titre", "Titre"); // - Execution du rapport JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, connection); // - Cration du rapport au format PDF JasperExportManager.exportReportToPdfFile(jasperPrint, "D:\\iReport-1.2.1\\classic.pdf"); } catch (JRException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { connection.close(); } } }

Cliquez ensuite avec le bouton droit sur la classe GeneratePDF.java et dans le menu contextuel cliquez sur Run as > Java Application afin d'executer la classe.

Un fichier classic.pdf a t gnr dans le rpertoire D:\iReport-1.2.1 , voil le rsultat :

- 18 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

- 19 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/

Gnration de rapport avec Jasper Report par Eric Reboisson

VI - Conclusion
Premirement, un remerciement Ricky81 pour sa relecture et ses prcieux conseils, ainsi qu'aux lecteurs de cet article qui m'ont remont leurs remarques.

Cet article vous a essentiellement montr comment dmarrer avec la librairie Jasper Report.

Bien souvent les besoins d'entreprise ne se limitent pas des gnrations simples de rapport, et les besoins plus complexes demanderont de connatre l'API JaspertReport plus en dtail.

Tlcharger l'article au format PDF Cration de rapports Jasper avec une base de donnes ( code java )

- 20 Copyright - Eric Reboisson. 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.
tutoriel/java/jasper-report/pdf/