|
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.
|
|
|