rapport technique jasper
TRANSCRIPT
-
8/18/2019 Rapport Technique Jasper
1/12
Création du document : Stéphanie GORGONE – Chloé MANDON
Groupe Restitution Jasper
Date : 1!"!"11
RAPPORT TECHNIQUE JASPER
PROJET DARTIES – GROUPE2
-
8/18/2019 Rapport Technique Jasper
2/12
1
RAPPORT TECHNIQUE
JASPERPROJET DARTIES – GROUPE2
I. CONTENU
I. Contenu....................................................................................................................................... 1
II. Introduction..................................................................................................................................2
III. Création d’un document jasper.................................................................................................3
1. Les tableaux............................................................................................................................. 3
Création de modeles de tableaux................................................................................................3
Les différentes zones d’un rapport...............................................................................................5
Respect du !".......................................................................................................................... 5
2. Les #rap$i%ues.........................................................................................................................&
Creation de modeles de #rap$i%ues............................................................................................&
Respect du !".......................................................................................................................... &
I'. Inté#ration des tableaux et #rap$i%ues en (a)a.......................................................................*
1. C$oix du fic$ier (asper.............................................................................................................*
2. C$ar#ement et compilation d’un rapport jrxml..........................................................................+
3. C$an#ement de re%u,tes.........................................................................................................+
C$an#ement de la clause WHERE de la re%u,te........................................................................+
C-/0ement de la clause select de la re%uete..........................................................................
. assa#e des param4tres....................................................................................................... 1
6itres et sous7titres des rapports................................................................................................1
eriodes dans l’entete des tableaux..........................................................................................1
'. Conclusion.................................................................................................................................11
-
8/18/2019 Rapport Technique Jasper
3/12
II. INTRODUCTION
iReport est un éditeur #rap$i%ue permettant de conce)oir des mod4les de rapport. Ce lo#iciel 8pen
ource fonctionne 9 partir de la librairie (asperReports. Il permet de créer différents t:pes de
rapports ;tableaux< #rap$i%ues< etc.= et d’en )isualiser le rendu.
La création d’un rapport permet d’obtenir un fic$ier >?L ;fic$ier jrxml=. /ous utilisons ces fic$iers
>?L dans notre application pour affic$er les tableaux et #rap$i%ues. @n effet< un dossier
« TableauxXML » comporte tous les fic$iers >?L des tableaux et #rap$i%ues créés sous iReport.
@nsuite< nous utilisons les objets (' %ui permettent la #énération d’un rapport ;ces derniers seront
détaillés dans la deuxi4me partie du rapport=.
Les données des tableaux ou des #rap$i%ues seront alimentées par une base de données. La
sélection de ces données se fera par une re%u,te associée 9 c$acun des tableaux ou #rap$i%ues.
our simplifier la création de ces différents tableaux< nous a)ons c$oisi de créer un tableau pour
c$a%ue couple indicateur7caractéristi%ues. lus précisément< pour c$a%ue on#let< nous a)ons un
tableau pour un indicateur et une caractéristi%ue ;par exemple un tableau C7toutes
caractéristi%ues< un autre C7Réalisé etc.=. i un on#let permet de )oir toutes les caractéristi%ues
;8bjectifs< Réalisé< 6outes= et tous les indicateurs ;C< 'entes< ?ar#es< 6outes=< il : aura 12
mod4les de rapport créés ;en fic$ier jrxml=.
-
8/18/2019 Rapport Technique Jasper
4/12
#III. CRÉATION D’UN DOCUMENT JASPER
1. Les tablea!
CR$A%&ON DE MODE'ES DE %A('EA)*La premi4re étape de création d’un rapport consiste 9 créer un document )ide a)ec une re%u,te
AL #énérale ;sans %uoi la #énération du rapport ne fonctionne pas=.
La liaison entre un tableau et la base de données se fait )ia un dataset ;ensemble de données
récupérées par partir d’une re%u,te AL=.
La création d’un tableau se fait 9 l’aide du dataset. Il permet de récupérer les c$amps de la base de
données %ue l’on )eut affic$er dans le tableau.
@nsuite on peut remplir le tableau en associant une expression ;c$amps résultant de la re%u,te ou
c$amps saisissables= 9 c$a%ue case de celui7ci.
/ous a)ons dB réaliser toutes les re%u,tes pour les affic$a#es dans les tableaux. our pou)oir
affic$er les écarts< le calcul a été fait dans la re%u,te AL. "e m,me pour le ran#< il a été calculé
a)ec l’utilisation de la clause AL R/ 8'@R;=.
8r pour pou)oir affic$er la li#ne des totaux ;somme correspondant au total d’une colonne et écart
total=< nous a)ons utilisé des )ariables. Celles7ci donnent la possibilité d’effectuer des opérations de
calculs sur les expressions et de les affic$er. L’opération utilisée dans ce cas est un SUM de
l’expression 9 sommer. "ans l’exemple ci7dessous< on peut )oir %ue l’on fait la somme ;calculation
SUM = de la )ariable D?;C8E(@C6I!!I6= ( propriété variable expression).
Le dataset palmares a été créé et permet
de récupérer les c$amps résultat (iel!s)
de la re%u,te AL.
C$amps saisissables
C$amps pro)enant des iel!s du
dataset
-
8/18/2019 Rapport Technique Jasper
5/12
+
our les écarts totaux< nous a)ons effectué un calcul utilisant les deux )ariables des totaux.
iReport permet aussi la création de param4tres. Ce sont des données prédéfinies %ue l’on ne peut
pas trou)er dans la source de données. Les param4tres sont définis pour les titres. Ces derniers
seront remplacés par les c$oix effectués par l’utilisateur dans les filtres.
Les deux titres sont affic$és dans la zone F Title » du rapport ;)oir explication partie sui)ante= et
sont des param4tres %ui prendront la )aleur définie par l’utilisateur ;9 l’aide du code ('=. ar
exemple< si l’utilisateur )eut affic$er le C< Réalisé< pour la famille -ifi< le sous7titre contiendra G
F C H Réalisé H -ifi . Le premier titre contient le nom de l’on#let et la période c$oisie.
Il en est de m,me pour les tableaux oJ l’ent,te correspond au mois ou 9 l’année c$oisis par
l’utilisateur dans les filtres F périodes . "es param4tres ont été créés pour pou)oir ,tre associés
aux c$oix de l’utilisateur.
ropriété de la )ariable sélectionnée
-
8/18/2019 Rapport Technique Jasper
6/12
,'ES D&--$REN%ES .ONES D/)N RA00OR%Dn rapport comporte plusieurs zones. La zone « Title » est pour le titre et n’apparait %u’une fois enpremi4re pa#e du rapport.
Les zones « "a#e Hea!er » et F pa#e !ooter correspondent 9 l’ent,te et pied de pa#e du
document. @lles apparaissent donc sur toutes les pa#es du rapport.
@nsuite< « $olumn Hea!er » et « $olumn ooter » correspondent aux noms de colonnes du tableau
de données et sont répétés sur c$a%ue pa#e.
C’est dans la zone F %&tail » %ue sont affic$ées les li#nes de résultats des colonnes %ue l’on désire
affic$er.
@nfin< la zone F Summar' résume des informations présentes dans la zone F %&tail
our l’application< nous a)ons défini le titre et sous titre de c$a%ue tableauK#rap$i%ue dans la zone
« Title » Les tableaux et #rap$i%ues< %uant 9 eux sont disposés dans la zone « %&tail » Ils
pourraient ,tre placés dans la zone F $olumn Hea!er mais celle7ci est limitée en taille et cela
#én4re une erreur lors%ue le tableau contient trop de li#nes. Les autres zones ne sont pas utilisées.
RES0EC% D) S-DC$a%ue tableau est ensuite mis aux normes du !" a)ec les r4#les sui)antes G
• La police est RIL de taille 1<
• Les données et les contours sont en bleu<
• Le contour du tableau< des colonnes et de certaines li#nes sont deux fois plus épais %ue le
contour standard< réser)é aux li#nes et aux séparations entre caractéristi%ues<
• Dn seul c$iffre apr4s la )ir#ule n’est autorisé pour les données<
• Les milliers sont séparés par un espace<
• Les nombres sont justifiés 9 droite< a)ec un retrait de 2 pixels< les textes sont justifiés 9
#auc$e et les titres sont centrés<
• Les cellules des ent,tes de colonnes sont #risées
-
8/18/2019 Rapport Technique Jasper
7/12
• Les titres sont centrés de couleur et taille définis dans le !".
our pou)oir utiliser la couleur rou#e pour les écarts né#atifs et la couleur )erte pour les écarts
positifs< nous a)ons dB utiliser les st:les conditionnels. Ces st:les correspondent 9 un rapport. /ous
a)ons tout simplement ajouté un st:le au%uel nous a)ons ajouté deux conditions ;nombre positif ou
né#atif=. @nsuite< on peut modifier les propriétés de c$a%ue condition. ar exemple< pour mettre en
)ert les )aleurs des écarts positifs< nous a)ons créé un st:le $ comportant deux st:les
conditionnels. @n premi4re condition< si sa )aleur est supérieure 9 < on lui met la couleur )erte G
Le second st:le conditionnel dans $ met la couleur rou#e si le c$amp E$RT$ est inférieur 9 .
Le st:le $ poss4de la couleur bleue du !" comme couleur de texte par défaut. insi< si le c$amp
)aut ;aucune des deux conditions )érifiées=< le texte sera bleu.
2. Les "#a$%&'es
CREA%&ON DE MODE'ES DE GRA02&3)ESDn mod4le de rapport se crée de la m,me mani4re %ue ce soit pour : affic$er des résultats sous la
forme de tableau ou de #rap$i%ue ;création d’un rapport )ide puis d’un dataset=.
@nsuite il faut c$oisir un t:pe de #rap$i%ue< dans notre cas< ce sera des camemberts ou des
$isto#rammes.
iReport permet d’ajouter autant de séries %u’on le désire. Les $isto#rammes en nécessitent 2
;réalisé et objectif=. Auant aux camemberts< c’est un affic$a#e des ré#ions. Ils nécessitent donc
autant de séries %ue de ré#ions< soit 5.
RES0EC% D) S-Dour respecter le !"< nous a)ons personnalisés les séries des #rap$i%ues< cest797dire la couleur
%ue doit représenter une donnée. La propriété F series color d’un #rap$i%ue permet de définir
toutes les couleurs %ue l’on sou$aite. Les lé#endes peu)ent ,tre affic$ées si le !" le demande
;#énéralement objectif ou réalisé ou encore le nom des )illes=.
ropriété du st:le sélectionné
Couleur )erte
Condition
-
8/18/2019 Rapport Technique Jasper
8/12
4I(. INTÉGRATION DES TA)LEAU* ET GRAPHIQUES EN JA(A
Dne fois tous les tableaux et #rap$i%ues créés< ils doi)ent ,tre inté#rés dans linterface de
lapplication dé)eloppée en (a)a sous larc$itecture ?'C ;?od4le7'ue7ContrMleur=.
insi< dans la partie (asper du mod4le< il existe un traitement par profil distinct ;Responsable
ma#asin< Responsable ré#ional et "irecteur commercial= ainsi %uun traitement #énéri%ue dun
document jasper. Ce dernier permet notamment le c$ar#ement dun tableau ou dun #rap$i%ue 9
partir du document *rxml < et le traitement par profil concerne le c$an#ement de re%u,tes en fonction
des param4tres c$oisis par lutilisateur.
Cest dans la partie contrMleur %ue le bon fic$ier (asper est c$oisi et appelé au c$ar#ement dans le
mod4le< car comme expli%ué précédemment< un fic$ier par couple indicateur7caractéristi%ue
différent a été créé.
@nfin< la partie )ue permet de faire le lien entre linterface et les fic$iers (asper en appelant lecontrMleur pour le c$ar#ement dun nou)eau fic$ier en transmettant tous les param4tres< c$a%ue fois
%ue lutilisateur c$an#e la sélection dune liste déroulante.
1 C%+&! , -&%&e# Jas$e#
Comme il a été rapidement énoncé en premi4re partie< nous a)ons établi une r4#le de nomma#e
pour les fic$iers (asper< étant donné leur #rand nombre.
insi< c$a%ue nom de fic$ier contient le nom du profil abré#é ;resp?a#< respRe# ou dirCom= sui)i
du nom de lon#let entier ;ccueil< almares< "etails< ou -istori%ue= et se termine par les initiales du
couple indicateur7caractéristi%ue concerné ;C6< C8< CR< ?6< ?8< ?R< 66< 68< 6R< ...=. La lettreN6N en premi4re position si#nifie tout indicateur ;C$iffre daffaires< ?ar#e et 'entes= et toutes
caractéristi%ues en derni4re position ;8bjectif et Réalisé=.
@nsuite< un N0N est ajouté 9 la fin du nom de fic$ier lors%ue ce dernier est un #rap$i%ue. C$a%ue
on#let et profil ne poss4de pas exactement les m,mes param4tres et tous les fic$iers nexistent
donc pas ;par exemple les fic$iers a)ec tous les indicateurs nexiste pas pour les on#lets détails et
$istori%ue=.
'oici par exemple le c$oix du bon fic$ier pour le palmar4s du responsable ma#asin si lindicateur
c$oisi est le c$iffre daffaires ;sac$ant %ue les )ariables indicateur et caractéristi%ue correspondent
aux param4tres c$oisis et ren)o:és au contrMleur par la )ue= G
-
8/18/2019 Rapport Technique Jasper
9/12
5 /. C%a#"e0et et +0$&lat&+ ,’ #a$$+#t #!0l@n ce %ui concerne le c$ar#ement dun document jrxml dans une application ja)a< un rapport intitulé
DtilisationO(asperO(a)a a été li)ré en cours de projet.
Il expli%ue le lien entre (asper et (a)a 9 laide de sc$émas et expose le code (a)a nécessaire au
c$ar#ement< 9 la compilation< au remplissa#e et 9 lexport du document initial (asper.
"ans notre application< le c$ar#ement du tableau ou #rap$i%ue est appelé dans le mod4le par le
contrMleur suite 9 la définition du nom du fic$ier. @nsuite< le mod4le effectue un c$an#ement de
re%u,te ;)oir partie sui)ante= en fonction des param4tres c$oisis par lutilisateur %ui lui sont
ren)o:és. uis< il compile et remplit le rapport en passant les )aleurs des param4tres (asper définis
dans c$a%ue rapport ;)oir partie =. @nfin< le fic$ier est exporté au format -6?L et affic$é dans
lapplication par un objet na)i#ateur. 'oici une partie du code G
Le passa#e des param4tres sera expli%ué ultérieurement ;partie =.
Le fic$ier exporté porte le m,me nom %ue le document *rxml c$ar#é ;)ariable +ic ci7dessus=< ce %uisimplifie é#alement la rec$erc$e du fic$ier ,tml pour laffic$a#e. Lexport en p!+ permet de créer
é#alement le fic$ier p!+ dans le cas oJ lutilisateur désirerait imprimer.
3. C%a"e0et ,e #e'4tes
)ant la compilation dun rapport< une mét$ode de c$an#ement de re%u,te est appelée a)ec< en
param4tres< tous les crit4res c$oisis par lutilisateur. Cela )a permettre de c$an#er la re%u,te du
!ataset correspondant au tableau ou #rap$i%ue pour correspondre aux restrictions demandées par
lutilisateur ;ce c$an#ement de re%u,te a é#alement été explicité en détails dans le rapport
DtilisationO(asperO(a)a< partie G Re%u,tes 9 la )olée a)ec objets (a)a=.
C2ANGEMEN% DE 'A C'A)SE WHERE DE 'A RE3)6%EDne fois les param4tres de l’utilisateur récupérés< nous pou)ons remplir la clause WHERE de la
re%u,te. Les param4tres pris en compte dans cette clause de restriction sont G la ré#ion< la période
;l’année et le mois ou cumul de mois=< la famille d’articles et l’ensei#ne. lusieurs tests sont alors
effectués pour créer la clause< par exemple pour la famille d’article G
-
8/18/2019 Rapport Technique Jasper
10/12
7L’a)anta#e de ne modifier %ue la clause de restriction est %u’il n’est pas nécessaire de réécrire toute
la re%u,te< celle7ci étant de taille assez consé%uente. La clause WHERE étant la derni4re clause
d’une re%u,te AL< il suffit de récupérer la re%u,te du !ataset initialement créé dans le fic$ier
(asper< de la tron%uer a)ant le -,ere et de lui ajouter notre )ariable clauseW,ere< comme suit G
L’objet *asper%esi#n< créé précédemment au c$ar#ement du fic$ier *rxml < permet de récupérer tous
les !atasets du rapport sous forme de liste. Le !ataset dont la re%u,te doit ,tre modifiée est ensuite
c$oisi par son indice ;ordre de création dans le rapport=. 0énéralement< il : a plusieurs !atasets s’il
: a plusieurs tableaux ou #rap$i%ues dans le rapport.
La )ariable 0E correspond 9 la clause .R/U"01 %u’il faut rajouter apr4s le WHERE < le #roupe
étant fait sur les ré#ions ou les )illes selon les cas.
C2ANGEMEN% DE 'A C'A)SE SELECT DE 'A RE3)E%Earfois< certains c$an#ements peu)ent ,tre é#alement faits dans la clause de sélection de la
re%u,te< notamment le ran#. @n effet< comme nous l’a)ons décrit en premi4re partie< le ran# et la
)ariation sont calculés dans le select de la re%u,te. insi< selon l’indicateur et la caractéristi%ue
c$oisis par l’utilisateur< le contenu de ce calcul )a c$an#er. "ans ce cas< nous sommes contraints deréécrire la re%u,te enti4rement car le ran# inter)ient plusieurs fois dans la re%u,te. 'oici un exemple
de test pour le c$iffre d’affaires G
Lors%ue tous les indicateurs sont affic$és< le ran# est calculé par défaut sur le c$iffre d’affaires< de
m,me %ue pour toutes les caractéristi%ues on calcule par défaut sur le réalisé.
@nsuite la re%u,te est totalement réécrite a)ec les )ariables ran# et clauseW,ere puis )a remplacer
la re%u,te courante du !ataset comme )u ci7dessus.
@nfin< le contenu du SELE$T peut aussi ,tre modifié en fonction de si l’on )eut récupérer les noms
des )illes ou ceux des ré#ions< cela dépend des profils et des on#lets.
-
8/18/2019 Rapport Technique Jasper
11/12
1 5. assa"e ,es $a#a06t#es%&%RES E% SO)S8%&%RES DES RA00OR%SL’utilisation de param4tres dans un rapport (asper a été décrite dans la premi4re partie. La plus
#rande utilité dans notre cas concerne l’affic$a#e du titre et du sous7titre au dessus des tableaux.
Ces titres )arient selon les crit4res c$oisis par l’utilisateur< ils doi)ent donc ,tre transmis au rapport
a)ant la compilation.
Ces titres sont déj9 définis dans le rapport 9 la bonne position et le st:le correspond au !".
'oici un exemple de remplissa#e du sous7titre pour la partie caractéristi%ue G
@nsuite< tous les param4tres sont ajoutés dans une table Has,Map et transmis au remplissa#e du
tableau ;)oir )ariable parameters dans la capture d’écran du 23 4= G
0ER&ODES DANS '/EN%E%E DES %A('EA)*Les param4tres ont é#alement été utilisés pour les on#lets Histori5ue et %&tails. @n effet< ces
tableaux affic$ent en ent,te le nom du mois ou du cumul ;jan)ier 9 mars par exemple= concerné.
Cela dépend donc de la période c$oisie par l’utilisateur.
Ces param4tres sont définis dans un test sur la période sélectionnée et en)o:és au moment du
remplissa#e du rapport de la m,me mani4re %ue précédemment.
@nfin< pour le profil F Responsable ré#ional < l’on#let -istori%ue affic$e 12 petits tableaux par mois
affic$ant les )aleurs cumulées de jan)ier au mois de c$a%ue petit tableau.
8r< dans ce cas< l’utilisateur c$oisit une année et le mois jus%u’au%uel il )eut affic$er les tableaux.
our faire cela< nous a)ons donc réalisé 12 tableaux distincts sous (asper %ue nous a)ons collés les
uns aux autres. insi< nous a)ons pu utiliser les st:les pour conditionner l’affic$a#e de c$a%ue petit
tableau 9 la )aleur du param4tre ;non )ide=.
/ous a)ons donc utilisé 12 param4tres a:ant une double fonction G l’affic$a#e du nom du mois dans
l’ent,te de c$a%ue petit tableau et la mise en condition de l’affic$a#e du tableau.
-
8/18/2019 Rapport Technique Jasper
12/12
1(. CONCLUSION
Le dé)eloppement de cette application EI fut tr4s enric$issant et nous a permis de mettre en
prati%ue les notions t$éori%ues sur l’aide 9 la décision ac%uises tout au lon# de notre formation.
/ous a)ons du faire plusieurs c$oix au cours du dé)eloppement< notamment sur l’outil de reportin#
au début et sur la mani4re la plus adaptée de l’utiliser pour notre application.
/ous ne re#rettons pas le c$oix de l’outil (asper pour sa facilité de mise en place sa bonne
adé%uation a)ec le rendu désiré dans l’application. @n effet< la majorité des tableaux et #rap$i%ues
ont pu ,tre réalisés en respectant scrupuleusement le !". Cet outil demande une certaine prise en
main au début mais permet ensuite une utilisation assez prati%ue et rapide.
/ous a)ons é#alement fait le c$oix de créer beaucoup de fic$iers (asper différents et d’effectuer
ainsi moins de traitements dans le code (a)a. /ous sommes plutMt satisfaits de ce c$oix en fin de
dé)eloppement< car mal#ré le fait %ue la création des tableaux fut fastidieuse< le c$an#ement de
tableaux demande un temps relati)ement acceptable. "’autant plus %u’il n’était pas possible de
c$an#er aisément la structure d’un tableau (asper en (a)a ;c$an#ement du nombre de colonnes=.
our conclure< nous a)ons apprécié de par)enir au dé)eloppement total de l’application pour la
partie (asper et a)ons beaucoup appris dans ce projet %ui nous a é#alement permis d’é)aluer notre
autonomie.