Vous êtes sur la page 1sur 12

RAPPORT TECHNIQUE JASPER

PROJET DARTIES GROUPE2

Cration du document : Stphanie GORGONE Chlo MANDON


Groupe Restitution Jasper
Date : 12/02/2011

RAPPORT TECHNIQUE
JASPER
PROJET DARTIES GROUPE2
I.

CONTENU

I.

Contenu....................................................................................................................................... 1

II.

Introduction.................................................................................................................................. 2

III.

Cration dun document jasper.................................................................................................3

1.

Les tableaux............................................................................................................................. 3
Cration de modeles de tableaux................................................................................................3
Les diffrentes zones dun rapport...............................................................................................5
Respect du SFD.......................................................................................................................... 5

2.

Les graphiques......................................................................................................................... 6
Creation de modeles de graphiques............................................................................................6
Respect du SFD.......................................................................................................................... 6

IV.

Intgration des tableaux et graphiques en Java.......................................................................7

1.

Choix du fichier Jasper............................................................................................................. 7

2.

Chargement et compilation dun rapport jrxml..........................................................................8

3.

Changement de requtes.........................................................................................................8
Changement de la clause WHERE de la requte........................................................................8
CHANGement de la clause select de la requete..........................................................................9

4.

Passage des paramtres....................................................................................................... 10


Titres et sous-titres des rapports................................................................................................10
Periodes dans lentete des tableaux..........................................................................................10

V.

Conclusion................................................................................................................................. 11

II.

INTRODUCTION

iReport est un diteur graphique permettant de concevoir des modles de rapport. Ce logiciel Open
Source fonctionne partir de la librairie JasperReports. Il permet de crer diffrents types de
rapports (tableaux, graphiques, etc.) et den visualiser le rendu.
La cration dun rapport permet dobtenir un fichier XML (fichier jrxml). Nous utilisons ces fichiers
XML dans notre application pour afficher les tableaux et graphiques. En effet, un dossier
TableauxXML comporte tous les fichiers XML des tableaux et graphiques crs sous iReport.
Ensuite, nous utilisons les objets JAVA qui permettent la gnration dun rapport (ces derniers seront
dtaills dans la deuxime partie du rapport).
Les donnes des tableaux ou des graphiques seront alimentes par une base de donnes. La
slection de ces donnes se fera par une requte associe chacun des tableaux ou graphiques.
Pour simplifier la cration de ces diffrents tableaux, nous avons choisi de crer un tableau pour
chaque couple indicateur-caractristiques. Plus prcisment, pour chaque onglet, nous avons un
tableau pour un indicateur et une caractristique (par exemple un tableau CA-toutes
caractristiques, un autre CA-Ralis etc.). Si un onglet permet de voir toutes les caractristiques
(Objectifs, Ralis, Toutes) et tous les indicateurs (CA, Ventes, Marges, Toutes), il y aura 12
modles de rapport crs (en fichier jrxml).

III.

CRATION DUN DOCUMENT JASPER


1. Les tableaux

CRATION DE MODELES DE TABLEAUX


La premire tape de cration dun rapport consiste crer un document vide avec une requte
SQL gnrale (sans quoi la gnration du rapport ne fonctionne pas).
La liaison entre un tableau et la base de donnes se fait via un dataset (ensemble de donnes
rcupres par partir dune requte SQL).
La cration dun tableau se fait laide du dataset. Il permet de rcuprer les champs de la base de
donnes que lon veut afficher dans le tableau.

Le dataset palmares a t cr et permet


de rcuprer les champs rsultat (Fields)
de la requte SQL.

Ensuite on peut remplir le tableau en associant une expression (champs rsultant de la requte ou
champs saisissables) chaque case de celui-ci.
Champs saisissables
Champs provenant des Fields du
dataset
Nous avons d raliser toutes les requtes pour les affichages dans les tableaux. Pour pouvoir
afficher les carts, le calcul a t fait dans la requte SQL. De mme pour le rang, il a t calcul
avec lutilisation de la clause SQL RANK OVER().
Or pour pouvoir afficher la ligne des totaux (somme correspondant au total dune colonne et cart
total), nous avons utilis des variables. Celles-ci donnent la possibilit deffectuer des oprations de
calculs sur les expressions et de les afficher. Lopration utilise dans ce cas est un SUM de
lexpression sommer. Dans lexemple ci-dessous, on peut voir que lon fait la somme (calculation
SUM) de la variable SUM(CAOBJECTIFFAITS) (proprit variable expression).

Proprit de la variable slectionne

Pour les carts totaux, nous avons effectu un calcul utilisant les deux variables des totaux.
iReport permet aussi la cration de paramtres. Ce sont des donnes prdfinies que lon ne peut
pas trouver dans la source de donnes. Les paramtres sont dfinis pour les titres. Ces derniers
seront remplacs par les choix effectus par lutilisateur dans les filtres.

Les deux titres sont affichs dans la zone Title du rapport (voir explication partie suivante) et
sont des paramtres qui prendront la valeur dfinie par lutilisateur ( laide du code JAVA). Par
exemple, si lutilisateur veut afficher le CA, Ralis, pour la famille Hifi, le sous-titre contiendra :
CA | Ralis | Hifi . Le premier titre contient le nom de longlet et la priode choisie.
Il en est de mme pour les tableaux o lentte correspond au mois ou lanne choisis par
lutilisateur dans les filtres priodes . Des paramtres ont t crs pour pouvoir tre associs
aux choix de lutilisateur.

LES DIFFRENTES ZONES DUN RAPPORT


Un rapport comporte plusieurs zones. La zone Title est pour le titre et napparait quune fois en
premire page du rapport.

Les zones Page Header et page Footer correspondent lentte et pied de page du
document. Elles apparaissent donc sur toutes les pages du rapport.
Ensuite, Column Header et Column Footer correspondent aux noms de colonnes du tableau
de donnes et sont rpts sur chaque page.
Cest dans la zone Dtail que sont affiches les lignes de rsultats des colonnes que lon dsire
afficher.
Enfin, la zone Summary rsume des informations prsentes dans la zone Dtail

Pour lapplication, nous avons dfini le titre et sous titre de chaque tableau/graphique dans la zone
Title . Les tableaux et graphiques, quant eux sont disposs dans la zone Dtail . Ils
pourraient tre placs dans la zone Column Header mais celle-ci est limite en taille et cela
gnre une erreur lorsque le tableau contient trop de lignes. Les autres zones ne sont pas utilises.
RESPECT DU SFD
Chaque tableau est ensuite mis aux normes du SFD avec les rgles suivantes :

La police est ARIAL de taille 10,


Les donnes et les contours sont en bleu,
Le contour du tableau, des colonnes et de certaines lignes sont deux fois plus pais que le
contour standard, rserv aux lignes et aux sparations entre caractristiques,
Un seul chiffre aprs la virgule nest autoris pour les donnes,
Les milliers sont spars par un espace,
Les nombres sont justifis droite, avec un retrait de 2 pixels, les textes sont justifis
gauche et les titres sont centrs,
Les cellules des enttes de colonnes sont grises,

Les titres sont centrs de couleur et taille dfinis dans le SFD.

Pour pouvoir utiliser la couleur rouge pour les carts ngatifs et la couleur verte pour les carts
positifs, nous avons d utiliser les styles conditionnels. Ces styles correspondent un rapport. Nous
avons tout simplement ajout un style auquel nous avons ajout deux conditions (nombre positif ou
ngatif). Ensuite, on peut modifier les proprits de chaque condition. Par exemple, pour mettre en
vert les valeurs des carts positifs, nous avons cr un style CA comportant deux styles
conditionnels. En premire condition, si sa valeur est suprieure 0, on lui met la couleur verte :
Proprit du style slectionn

Couleur verte
Condition

Le second style conditionnel dans CA met la couleur rouge si le champ ECARTCA est infrieur 0.
Le style CA possde la couleur bleue du SFD comme couleur de texte par dfaut. Ainsi, si le champ
vaut 0 (aucune des deux conditions vrifies), le texte sera bleu.

2. Les graphiques
CREATION DE MODELES DE GRAPHIQUES
Un modle de rapport se cre de la mme manire que ce soit pour y afficher des rsultats sous la
forme de tableau ou de graphique (cration dun rapport vide puis dun dataset).
Ensuite il faut choisir un type de graphique, dans notre cas, ce sera des camemberts ou des
histogrammes.
iReport permet dajouter autant de sries quon le dsire. Les histogrammes en ncessitent 2
(ralis et objectif). Quant aux camemberts, cest un affichage des rgions. Ils ncessitent donc
autant de sries que de rgions, soit 5.
RESPECT DU SFD
Pour respecter le SFD, nous avons personnaliss les sries des graphiques, c'est--dire la couleur
que doit reprsenter une donne. La proprit series color dun graphique permet de dfinir
toutes les couleurs que lon souhaite. Les lgendes peuvent tre affiches si le SFD le demande
(gnralement objectif ou ralis ou encore le nom des villes).

IV.

INTGRATION DES TABLEAUX ET GRAPHIQUES EN JAVA

Une fois tous les tableaux et graphiques crs, ils doivent tre intgrs dans l'interface de
l'application dveloppe en Java sous l'architecture MVC (Modle-Vue-Contrleur).
Ainsi, dans la partie Jasper du modle, il existe un traitement par profil distinct (Responsable
magasin, Responsable rgional et Directeur commercial) ainsi qu'un traitement gnrique d'un
document jasper. Ce dernier permet notamment le chargement d'un tableau ou d'un graphique
partir du document jrxml, et le traitement par profil concerne le changement de requtes en fonction
des paramtres choisis par l'utilisateur.
C'est dans la partie contrleur que le bon fichier Jasper est choisi et appel au chargement dans le
modle, car comme expliqu prcdemment, un fichier par couple indicateur-caractristique
diffrent a t cr.
Enfin, la partie vue permet de faire le lien entre l'interface et les fichiers Jasper en appelant le
contrleur pour le chargement d'un nouveau fichier en transmettant tous les paramtres, chaque fois
que l'utilisateur change la slection d'une liste droulante.

1 Choix du fichier Jasper


Comme il a t rapidement nonc en premire partie, nous avons tabli une rgle de nommage
pour les fichiers Jasper, tant donn leur grand nombre.
Ainsi, chaque nom de fichier contient le nom du profil abrg (respMag, respReg ou dirCom) suivi
du nom de l'onglet entier (Accueil, Palmares, Details, ou Historique) et se termine par les initiales du
couple indicateur-caractristique concern (CAT, CAO, CAR, MT, MO, MR, TT, TO, TR, ...). La lettre
"T" en premire position signifie tout indicateur (Chiffre d'affaires, Marge et Ventes) et toutes
caractristiques en dernire position (Objectif et Ralis).
Ensuite, un "G" est ajout la fin du nom de fichier lorsque ce dernier est un graphique. Chaque
onglet et profil ne possde pas exactement les mmes paramtres et tous les fichiers n'existent
donc pas (par exemple les fichiers avec tous les indicateurs n'existe pas pour les onglets dtails et
historique).
Voici par exemple le choix du bon fichier pour le palmars du responsable magasin si l'indicateur
choisi est le chiffre d'affaires (sachant que les variables indicateur et caractristique correspondent
aux paramtres choisis et renvoys au contrleur par la vue) :

3. Chargement et compilation dun rapport jrxml


8
En ce qui concerne le chargement d'un document jrxml dans une application java, un rapport intitul
Utilisation_Jasper_Java a t livr en cours de projet.
Il explique le lien entre Jasper et Java l'aide de schmas et expose le code Java ncessaire au
chargement, la compilation, au remplissage et l'export du document initial Jasper.
Dans notre application, le chargement du tableau ou graphique est appel dans le modle par le
contrleur suite la dfinition du nom du fichier. Ensuite, le modle effectue un changement de
requte (voir partie suivante) en fonction des paramtres choisis par l'utilisateur qui lui sont
renvoys. Puis, il compile et remplit le rapport en passant les valeurs des paramtres Jasper dfinis
dans chaque rapport (voir partie 4). Enfin, le fichier est export au format HTML et affich dans
l'application par un objet navigateur. Voici une partie du code :

Le passage des paramtres sera expliqu ultrieurement (partie 4).


Le fichier export porte le mme nom que le document jrxml charg (variable fic ci-dessus), ce qui
simplifie galement la recherche du fichier html pour l'affichage. L'export en pdf permet de crer
galement le fichier pdf dans le cas o l'utilisateur dsirerait imprimer.

4. Changement de requtes
Avant la compilation d'un rapport, une mthode de changement de requte est appele avec, en
paramtres, tous les critres choisis par l'utilisateur. Cela va permettre de changer la requte du
dataset correspondant au tableau ou graphique pour correspondre aux restrictions demandes par
l'utilisateur (ce changement de requte a galement t explicit en dtails dans le rapport
Utilisation_Jasper_Java, partie : Requtes la vole avec objets Java).
CHANGEMENT DE LA CLAUSE WHERE DE LA REQUTE
Une fois les paramtres de lutilisateur rcuprs, nous pouvons remplir la clause WHERE de la
requte. Les paramtres pris en compte dans cette clause de restriction sont : la rgion, la priode
(lanne et le mois ou cumul de mois), la famille darticles et lenseigne. Plusieurs tests sont alors
effectus pour crer la clause, par exemple pour la famille darticle :

Lavantage de ne modifier que la clause de restriction est quil nest pas ncessaire de rcrire toute
la requte, celle-ci tant de taille assez consquente. La clause WHERE tant la dernire clause
dune requte SQL, il suffit de rcuprer la requte du dataset initialement cr dans le fichier
Jasper, de la tronquer avant le where et de lui ajouter notre variable clauseWhere, comme suit :

Lobjet jasperDesign, cr prcdemment au chargement du fichier jrxml, permet de rcuprer tous


les datasets du rapport sous forme de liste. Le dataset dont la requte doit tre modifie est ensuite
choisi par son indice (ordre de cration dans le rapport). Gnralement, il y a plusieurs datasets sil
y a plusieurs tableaux ou graphiques dans le rapport.
La variable GB correspond la clause GROUPBY quil faut rajouter aprs le WHERE, le groupe
tant fait sur les rgions ou les villes selon les cas.
CHANGEMENT DE LA CLAUSE SELECT DE LA REQUETE
Parfois, certains changements peuvent tre galement faits dans la clause de slection de la
requte, notamment le rang. En effet, comme nous lavons dcrit en premire partie, le rang et la
variation sont calculs dans le select de la requte. Ainsi, selon lindicateur et la caractristique
choisis par lutilisateur, le contenu de ce calcul va changer. Dans ce cas, nous sommes contraints de
rcrire la requte entirement car le rang intervient plusieurs fois dans la requte. Voici un exemple
de test pour le chiffre daffaires :

Lorsque tous les indicateurs sont affichs, le rang est calcul par dfaut sur le chiffre daffaires, de
mme que pour toutes les caractristiques on calcule par dfaut sur le ralis.
Ensuite la requte est totalement rcrite avec les variables rang et clauseWhere puis va remplacer
la requte courante du dataset comme vu ci-dessus.
Enfin, le contenu du SELECT peut aussi tre modifi en fonction de si lon veut rcuprer les noms
des villes ou ceux des rgions, cela dpend des profils et des onglets.

1 5. Passage des paramtres


TITRES ET SOUS-TITRES DES RAPPORTS
Lutilisation de paramtres dans un rapport Jasper a t dcrite dans la premire partie. La plus
0
grande utilit dans notre cas concerne laffichage du titre et du sous-titre au dessus des tableaux.
Ces titres varient selon les critres choisis par lutilisateur, ils doivent donc tre transmis au rapport
avant la compilation.
Ces titres sont dj dfinis dans le rapport la bonne position et le style correspond au SFD.
Voici un exemple de remplissage du sous-titre pour la partie caractristique :

Ensuite, tous les paramtres sont ajouts dans une table HashMap et transmis au remplissage du
tableau (voir variable parameters dans la capture dcran du IV. 2.) :

PERIODES DANS LENTETE DES TABLEAUX


Les paramtres ont galement t utiliss pour les onglets Historique et Dtails. En effet, ces
tableaux affichent en entte le nom du mois ou du cumul (janvier mars par exemple) concern.
Cela dpend donc de la priode choisie par lutilisateur.
Ces paramtres sont dfinis dans un test sur la priode slectionne et envoys au moment du
remplissage du rapport de la mme manire que prcdemment.
Enfin, pour le profil Responsable rgional , longlet Historique affiche 12 petits tableaux par mois
affichant les valeurs cumules de janvier au mois de chaque petit tableau.
Or, dans ce cas, lutilisateur choisit une anne et le mois jusquauquel il veut afficher les tableaux.
Pour faire cela, nous avons donc ralis 12 tableaux distincts sous Jasper que nous avons colls les
uns aux autres. Ainsi, nous avons pu utiliser les styles pour conditionner laffichage de chaque petit
tableau la valeur du paramtre (non vide).
Nous avons donc utilis 12 paramtres ayant une double fonction : laffichage du nom du mois dans
lentte de chaque petit tableau et la mise en condition de laffichage du tableau.

1
V.
1

CONCLUSION

Le dveloppement de cette application BI fut trs enrichissant et nous a permis de mettre en


pratique les notions thoriques sur laide la dcision acquises tout au long de notre formation.
Nous avons du faire plusieurs choix au cours du dveloppement, notamment sur loutil de reporting
au dbut et sur la manire la plus adapte de lutiliser pour notre application.
Nous ne regrettons pas le choix de loutil Jasper pour sa facilit de mise en place sa bonne
adquation avec le rendu dsir dans lapplication. En effet, la majorit des tableaux et graphiques
ont pu tre raliss en respectant scrupuleusement le SFD. Cet outil demande une certaine prise en
main au dbut mais permet ensuite une utilisation assez pratique et rapide.
Nous avons galement fait le choix de crer beaucoup de fichiers Jasper diffrents et deffectuer
ainsi moins de traitements dans le code Java. Nous sommes plutt satisfaits de ce choix en fin de
dveloppement, car malgr le fait que la cration des tableaux fut fastidieuse, le changement de
tableaux demande un temps relativement acceptable. Dautant plus quil ntait pas possible de
changer aisment la structure dun tableau Jasper en Java (changement du nombre de colonnes).
Pour conclure, nous avons apprci de parvenir au dveloppement total de lapplication pour la
partie Jasper et avons beaucoup appris dans ce projet qui nous a galement permis dvaluer notre
autonomie.