BIRT : Eclipse devient un outil de création de rapport

De nombreux outils sont déjà disponibles sur le marché
des outils décisionnels comme Business Object,
Cognos, … BIRT (Business Intelligence and Reporting
Tools) permet d’utiliser Eclipse pour créer des reports.
La force de ce projet nommé BIRT réside dans le fait tout
d’abord qu’il soit Open Source, ensuite qu’il se
matérialise sous la forme d’un plugin Eclipse. Le projet
est sorti en version 1.0 le 8 novembre 2004. Depuis le
29 septembre 2006, la version 2.1.1 est disponible.
De plus il est également intégré à Calisto (distribution
Eclipse intégrant plusieurs plugins : BIRT, CDT, Data
Tools Platform, EMF, GEF, GMF, WTP, Visual Editor,
…) : http://www.eclipse.org/callisto/, ce qui contribue
encore plus à son succès auprès des développeurs.
Le terme Open Source peut parfois signifier que le
projet n’a pas de réel support, hormis celui assuré par
ses « commiters ».

En plus de la communauté  des développeurs, BIRT
est supporté par la société Actuate : http://www.actuate.com,
qui est spécialisée dans les applications de reporting
d’entreprise depuis plusieurs années. BIRT se décompose
en nombreux modules : les deux principaux restent le BIRT
Designer et le BIRT Engine (pour la visualisation).

La visualisation des reports peut bien évidemment être faite
dans Eclipse mais le plus souvent on préfèrera les héberger
sur un serveur d’application J2EE grâce à une WebApp : le
BIRT Viewer. La puissance de ces reports réside dans leur
dynamisme, très utile pour connaître la position de ses
comptes / factures / charges / stocks / …
de manière instantanée.

Ces reports peuvent se baser bien évidemment sur une base
 de données, ce qui sera certainement la majorité des cas,
mais peut également s’appuyer sur des fichiers XML, fichiers
plats (fichier CSV, fichier texte, …) ou un script retournant
des données. Si l’on souhaite obtenir des reports statiques,
cela est bien évidemment possible. On n’est d’ailleurs pas obligé
d’utiliser le BIRT Viewer, on peut se contenter d’exporter le report
au format HTML ou PDF afin de le diffuser.

Installation

Pour pouvoir l’utiliser, vous aurez le choix soit de l’installer sur un Eclipse si
vous en possédez déjà un, soit de récupérer la version « All-in-One » (dans
cette version le plugin est déjà installé sur une version d’Eclipse), soit de préférer
le BIRT RCP Designer qui est basé sur Eclipse RCP mais se veut uniquement un
designer de report. La version 2.1.1 de BIRT requiert Eclipse 3.2, GEF 3.2 et EMF
2.2. Vous pouvez également récupérer l’API iText qui vous sera nécessaire si
vous souhaitez exporter vos reports en PDF. Vous trouverez toutes les
informations sur cette API sur le site http://www.lowagie.com/iText/. Il vous faudra
également les JDBC Drivers relatifs aux bases de données que vous souhaiterez
utiliser. Dans cet article nous utiliserons MySQL.

Prise en main

Le designer intègre un éditeur WYSIWYG se basant sur Eclipse RCP, nous y
retrouverons donc le principe des perspectives et des vues déjà bien connu des
utilisateurs d’Eclipse. Pour ceux qui ne connaissent pas Eclipse ou même qui ne
sont pas développeurs, pas d’inquiétude, l’utilisation ne nécessite aucun code.
L’éditeur vous propose simplement de construire le modèle utilisé pour créer votre
report par glisser/déposer de manière très conviviale.
Il est possible de créer des tableaux dynamiques, des listes, … et des graphiques
(en barre, en ligne, en zone, en camembert, des nuages de points, …). BIRT est
réellement un outil de reporting… basé sur Eclipse, à ce titre, il intègre une
documentation via la vue « Cheat Sheets » qui se décompose en plusieurs sections
à la façon des tutoriaux de nombreux plugins Eclipse.

Cas pratique

Pour débuter la construction de votre report, il vous faudra créer un projet avec
le menu « File » \ « New » \ « Project… » \ « Business Intelligence and
Reporting Tools » \ « Report Project ». Pour ceux qui connaissent déjà Eclipse,
sachez que vous pouvez créer des reports dans n’importe quel type de projet,
vous n’êtes donc pas obligé de créer un « Report Project ». Par soucis de
regroupement et d’organisation, la création d’un tel projet reste cependant
conseillé. Eclipse vous demandera alors si vous souhaitez utiliser la perspective
« Report Design » qui vous permet d’adapter les menus d’Eclipse à la confection
de report. Acceptez ce choix puis dans la vue « Navigator », faites un clic droit sur
votre projet et choisissez « New » \ « Report ». Vous venez de créer un fichier
portant l’extension .rptdesign, qui est celle utilisée pour les reports BIRT.
L’assistant de création du report vous demandera également de choisir le template
que vous souhaitez appliquer à votre report. Vous aurez le choix entre les modèles
suivants : Blank Report, My First Report, Simple
Listing, Grouped Listing, Dual Column Listing, Chart & Listing, Dual Column Chart
& Listing, Side by Side Chart & Listing. Pour commencer nous choisirons
« Blank Report », mais dès que vous aurez pris l’outil en main, vous utiliserez
très rapidement les autres modèles disponibles.
La première des étapes à réaliser va être la création de la liaison à une source
de données. Nous allons utiliser MySQL, pour cela, il va falloir définir le type de
base de données, la chaîne de connexion, l’utilisateur, le mot de passe ainsi que
le JDBC Driver et la classe à utiliser. Voici un exemple de l’assistant de création
de DataSource :


Nous utiliserons ici une base de données sous MySQL, il faut donc récupérer le
pilote correspondant. Une fois cette source de données créée (vous pouvez bien
évidemment avoir plusieurs DataSources dans un même report),
il  faudra créer des DataSets (jeu d’enregistrements)
avec l’aide de l’assistant suivant :



Nous ne détaillerons pas toutes les fonctionnalités proposées par BIRT,
cependant, l’une d’elles très appréciée pourra être le fait d’avoir les colonnes du
DataSet générées (à utiliser par exemple pour les données calculées). Des notions
en SQL seront tout de même nécessaires pour créer votre DataSet : notamment
pour la syntaxe, les jointures, ...

Dans la partie gauche de la fenêtre de cet assistant, vous trouverez différentes
options afin de personnaliser ce dernier : DataSource, Query, Output Columns,
Computed Columns, Parameters, Filters, Property Binding, Cache Preference,
Preview Results.

Les parties « Data Source » et « Query » vous permettront de revenir aux étapes
précédentes de l’assistant de création du DataSet. La partie « Output Columns »
permet de visualiser le type de retour des colonnes de votre jeu d’enregistrements
et éventuellement de leur attribuer des alias et nom d’affichage.

La partie « Computed Columns » de l’assistant sera particulièrement pratique pour
effectuer des opérations de calcul :


Vous pouvez également choisir de rendre votre formulaire dynamique en fonction
des entrées faites par un utilisateur. C’est ce qui vous sera accessible via la partie
« Parameters », « Filters » et « Property Binding ». Vous n’avez donc plus à mettre
vos opérations de restriction dans votre SQL mais directement et facilement grâce
aux assistants proposés.

Enfin, une étape de prévisualisation de votre jeu d’enregistrement vous sera
proposée avant de pouvoir l’intégrer dans votre report :


Vous pouvez aller plus loin au niveau des DataSets en créant des
« Join Data Set » qui vous permettrons de faire du regroupement de données
provenant de différentes différents type de DataSources (base de données et XML
par exemple).

La vue « Data Explorer » d’Eclipse vous permettra d’obtenir le résumé des
DataSources & DataSets présents dans votre projet :



Les parties « Report Parameters », « Body », « MasterPages », « Styles »,
« Embedded Images » & « Librairies » vous permettront de personnaliser de manière
plus poussée vos reports.
Vous pourrez par exemple appliquer un style CSS à vos reports afin de les rendre
homogènes quelque soit leurs formats d’exportation.

C’est à partir de cette vue que vous pourrez glisser / déposer soit les champs
dynamiques un par un, soit le DataSet en entier directement dans l’éditeur de report.
Dans l’exemple que nous construisons, nous allons regrouper nos données par nom
de famille. Pour cela il faut utiliser le menu contextuel « Insert Group » mis à disposition
sur le DataSet « OrderDetails » ayant été déposé dans l’onglet « Layout » de l’éditeur
de report :


Un assistant de configuration du groupe vous permettra de définir son comportement :
Le sens du regroupement à effectuer, le champ dynamique sur lequel le regroupement
se fait, les filtres, …


Mieux, vous pouvez même faire varier le rendu de votre report en fonction des
valeurs affichées. Dans notre exemple, j’ai choisi de changer la couleur de la
police en rouge et mettre la police en gras dans le cas où la quantité commandée
est supérieure à 6. Cependant, vous pourrez dynamiser votre report de manière
plus marquée : changer les bordures, la couleur de fond de la cellule, taille de la
police, … :


Un assistant appelé « Expression Builder » vous permet d’accéder à des fonctions
de BIRT dédiées aux calculs des dates, à la finance, aux sommes, aux tests
booléens, … et d’accéder également à des fonctions JavaScript très pratiques pour
récupérer la date courante, des fonctions mathématiques, manipuler des chaînes de
caractères, … Pour les fans d’XML, vous avez un des différents onglets de l’éditeur
du report qui se nomme « XML Source » qui vous permettra de visualiser la définition
de ce dernier. En réalité, les fichiers .rptdesign sont des fichiers XML analysés par le
BIRT Engine et le BIRT Viewer afin de créer le rendu en temps réel de celui-ci :

 

Pour le moment, nous avons vu comment afficher le contenu d’un DataSet dans le report de
manière très rapide, cependant beaucoup d’autres formes de mise en page sont possibles :
Texte dynamique (lié à un élément du DataSet), liste, grille, graphique (2D, 3D) , …


Il y a une grande diversité de choix dans les graphiques qui sont exportables selon
plusieurs formats : PNG, JPG, BMP et SVG. Un assistant de création des graphiques
 permet de le paramétrer très simplement :


Une fois le choix du type de graphique fait, et la liaison avec un DataSet fait,
l’assistant vous proposera une prévisualisation du résultat dans l’onglet
« Select Data ». Il suffit alors de spécifier le champ dynamique qui sera positionné
sur quel axe du graphique afin de voir la prévisualisation du rendu :


Une fois la définition de votre graphique effectuée à l’aide de l’assistant, vous
pouvez revenir  l’onglet « Layout » de l’éditeur du report afin d’effectuer les
modifications des différents éléments que vous souhaitez afin de le finaliser :


Une astuce pour organiser votre report plus facilement : utilisez dans la
palette l’objet « Grid » pour positionnez dans ses cellules les éléments
(tables, graphiques, …) composant votre report.  Toujours dans l’éditeur de
report, vous pouvez obtenir le rendu de celui-ci grâce à l’onglet « Preview » :



Si vous souhaiter modifier à nouveau votre graphique car vous n’êtes pas satisfait
de votre prévisualisation, vous pouvez revenir à tout moment à l’onglet « Layout »
afin d’éditer votre report. Lorsque votre report est finalisé, vous pouvez l’exporter en
HTML, PDF, dans le BIRT Viewer :


L’avantage de la visualisation dans le BIRT Viewer est que vous pourrez avoir accès
 à une page d’index, tout comme dans la visualisation d’un report en PDF. Cette
option est accessible seulement si vous avez défini des groupes dans votre report, et
si celui-ci comporte un listing de plusieurs pages.

Conclusion

Le reporting est plus que vital pour les entreprises, mais les
outils restent chers ou, dans le cas d’outils gratuits, assez limités
en fonctionnalités. BIRT se présente avec un nombre
impressionnant de fonctionnalités faciles à mettre en œuvre.
Vous pouvez réaliser des reports croisés qui permettront ainsi
de naviguer entre vos différents reports de votre projet via un
simple clic sur une cellule d’un de vos tableaux ou sur un élément
de votre graphique afin d’accéder à un autre report …
Ce projet est très réactif : des packs de langages sont disponibles,
une implémentation sous PHP a été réalisée, des outils commerciaux
intègrent BIRT, …
Pour obtenir des informations complémentaires à cet article
rendez-vous sur le site du projet : http://www.eclipse.org/birt.

N’hésitez pas à vous rendre aux adresses suivantes pour visionner
des tutoriaux flash :
http://download.eclipse.org/birt/downloads/
examples/reports/2.1/tutorial/tutorial.html
http://download.eclipse.org/birt/downloads/
examples/misc/BIRT2.1Demo/EclipseDemo.html
Le site du projet est très complet, vous y retrouverez
des exemples, de la documentation,
un Wiki, …. Grâce aux différentes API de BIRT, vous
pouvez tout à fait intégrer des fonctions
de report dans vos applications web, vos clients RCP,
en ligne de commande, … les
possibilités sont multiples.



Retrouvez ci-dessous les autres sections du Laboratoire Sun
Evènements
Java Sun Net Talk LIVE CHAT le 2 Avril à 16h303/29/08
SolarisSunDécouvrez les nouveaux Sun Fire sous Intel10/11/07
JavaValtech Days10/9/07
JavaApacheCon du 1 au 4 mai à Amsterdam2/13/07

Exemples de code
JavaManipuler les looks and feel (lister et affecter)10/15/07
JavaFaire sa propre injection de dépendance avec les annotations5/9/06
JavaSplash screen avec progress Bar5/5/06
JavaFaire un splash screen en swing5/5/06

Actualités
SunProjet Kenai: une nouvelle forge open source10/3/08
SunSun Microsystems en forme !8/4/08
SunOpenDS un ldap 100% java7/24/08
SunSun et Fujitsu annoncent un nouveau Sparc647/16/08
SunVisualVM, un outil de surveillance des applications Java7/10/08

Tips du laboratoire
EclipseVisual Editor avec Eclipse Europa, c'est possible3/28/08
EclipseGérer les projets dans un workspace.10/16/07
JavaManager votre server d'application avec Eclipse4/21/07
JavaVue des sub-packages avec Eclipse4/21/07
JavaGlisser-déposer avec Eclipse4/21/07

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée