(publié le 28/02/2006)
Présentation du projet BIRT
Le projet BIRT, Business Intelligence and Reporting
Tools, propose un système de création de rapports pour
les applications Web. Comme tous les projets développés
dans le cadre de la fondation
Eclipse, BIRT est open-source et libre d'utilisation. Initié
par la société Actuate, ce projet est particulièrement
actif et propose notamment de nombreux exemples. Les deux principaux composants
de BIRT sont un outil de conception de rapports basé sur Eclipse
et un moteur d'exécution installable dans un serveur d'applications
J2EE.
L'utilisation de BIRT peut se résumer de la façon
suivante :
chaque
rapport est décrit dans un fichier (au format XML). L'éditeur
associé à ce type de fichiers permet de construire graphiquement
le rapport (à la façon d'un traitement de texte).
le but
d'un rapport est d'afficher des données. Pour chaque rapport, l'outillage
de BIRT propose une vue 'Explorateur de données' qui permet la
définition d'une ou plusieurs 'sources de données' (par
exemple une base de données relationnelles) et d'un ou plusieurs
'jeux de données' extraits de la source de données (par
exemple les champs renvoyés par une requête SQL). Les 'jeux
de données' constituent les données à afficher.
L'édition
du rapport se fait en mode graphique en insérant les différents
composants graphiques proposés (Texte, image, tableau, liste, graphique,
...). Les valeurs affichées par ces composants peuvent être
soit statiques, soit extraites des 'jeux de données', soit calculées
en utilisant des formules prédéfinies et des scripts écrits
en JavaScript.
A tout
moment, le concepteur du rapport peut demander son exécution directement
à partir des menus de BIRT. La prévisualisation se fait
au format HTML ou PDF.
La mise
en exploitation se fait en déployant le rapport sur un serveur
d'applications J2EE dans lequel le moteur d'exécution BIRT a été
installé. Le rapport sera alors accessible par une URL dont les
paramètres permettent notamment d'indiquer le format de génération
(PDF ou HTML).
Installation
de BIRT 2.0
Le projet BIRT propose plusieurs téléchargements
(cf page
de téléchargement de BIRT). Le principal découpage
se fait entre la partie outil de conception (Report Designer) et la partie
moteur d'exécution (Report Engine).
- Report Designer : permet d'ajouter l'outillage
de BIRT à une installation d'Eclipse existante. BIRT s'appuyant
sur d'autres sous-projets Eclipse (GEF et EMF) et sur divers projets open-source
n'appartenant pas à la fondation Eclipse (Axis et iText), la procédure
d'installation nécessite plusieurs étapes décrites
sur cette
page. Un des objectifs annoncés de la version 2.1 (juin 2006)
est de simplifier cette procédure d'installation. Un premier aperçu
de cette simplification est disponible avec la version
2.0.1 (février 2006) qui introduit un téléchargement,
nommé 'Report Designer Full Eclipse Install', qui contient
Eclipse SDK, BIRT et la quasi totalité des pré-requis.
Une version autonome de BIRT est aussi proposée
: RCP Report Designer. Cette version de l'outillage de BIRT se
présente sous la forme d'une application Eclipse RCP. Elle contient
le socle d'Eclipse et tous les pré-requis de BIRT. Son installation
est plus légère mais elle ne contient pas l'outillage Java
d'Eclipse (la conception d'un rapport BIRT n'impose pas le développement
de code Java).
- Report Engine : permet d'installer le moteur
de génération de rapports dans un serveur d'applications
J2EE (Tomcat, JBoss,...). A noter qu'un téléchargement nommé
Chart Engine permet d'utiliser la partie génération
de graphiques sans installer le reste de BIRT.
Création
d'un rapport
BIRT ne nécessite pas la création d'un
projet Eclipse d'un type particulier. Les fichiers peuvent se trouver
dans un projet existant (projet Java, projet 'Simple', ...). Un type de
projet nommé 'projet d'état' est tout de même proposé.
La création d'un nouveau rapport se fait en indiquant le nom et
l'emplacement du fichier.
L'assistant de création permet de sélectionner
un modèle prédéfini de rapport.
(A noter que la liste des modèles est extensible)
Une fois créé le rapport est disponible
dans la zone d'édition.
Le mode d'édition par défaut permet de manipuler graphiquement
le contenu du rapport. L'éditeur offre en plus la possibilité
d'éditer le masque des pages, les éventuels scripts associés
au rapport et le code XML du rapport (La syntaxe des fichiers BIRT est
définie dans la
documentation du BIRT Report Object Model)
Définition
des jeux de données
Chaque rapport est associé à un ou plusieurs
jeux de données dont le but est de définir la structure
des données manipulables dans le rapport et la façon dont
BIRT doit les récupérer. Avec BIRT 2.0, les jeux de données
peuvent être obtenus à partir de 4 types de sources différentes
: une base de données relationnelles accessible par JDBC, un fichier
XML, un fichier 'plat' (fichier texte, fichier .csv, ...) ou un script
renvoyant les données (écrit en Java ou JavaScript). Techniquement
la dernière solution permet d'accéder à tout type
de données mais nécessite le développement de code
particulier. Les autres types de sources données ne nécessite
pas de code : une succession d'assistants permet d'indiquer à BIRT
les informations nécessaires à l'extraction des données.
Extraction
à partir d'une base de données
BIRT prend en charge la connexion à la base de
données et l'extraction des données, pour ce faire il faut
préciser d'une part les informations de connexion et d'autre part
la requête SQL à utiliser.
Dans l'assistant de création d'une source de données de
type JDBC il faut indiquer : le driver JDBC, la chaîne de connexion
JDBC, le nom d'utilisateur et le mot de passe.
L'étape suivante consiste à créer
un 'jeu de données' associé à la source de données
et à indiquer la requête SQL correspondante. L'assistant
de création d'un jeu de données permet la visualisation
de la structure des tables et l'édition de la requête SQL.
Extraction
à partir d'un fichier XML
La définition d'un jeu de données à
partir d'un fichier XML passe par la création d'une source de données
indiquant l'emplacement du fichier XML puis par un assistant qui va analyser
la structure du fichier XML et permettre la sélection des éléments
XML à inclure dans le jeu de données. L'assistant permet
de définir pour chaque champ du jeu de données une expression
XPath qui sera utilisée par BIRT pour extraire les données
du fichier XML.
Extraction
à partir d'un fichier plat
Pour définir un jeu de données extrait
d'un fichier plat, il faut indiquer le fichier (.txt, .csv, ...) et les
colonnes à intégrer dans le jeu de données.
Extraction
à partir d'un script
Les données peuvent être récupérées
par programmation. BIRT permet d'associer du code Java ou JavaScript aux
différents évènements qui ponctuent la génération
d'un rapport. En définissant un jeu de données de type script
le développeur va pouvoir faire appeler par BIRT du code lors de
la phase de construction du jeu de données. Le code JavaScript
est à saisir dans l'onglet 'Script' de l'éditeur de rapport.
Le code Java est à placer dans des classes implémentant
des interfaces prédéfinies par BIRT, une propriété
optionnelle du rapport permet d'indiquer la classe Java qui gère
les événements.
Manipulation
d'un jeu de données
Une fois défini le jeu de données apparaît
dans la vue 'Exploration des données'.
Les propriétés du jeu de données
sont éditables, il est notamment possible de rajouter des champs
calculés :
La prévisualisation des données est possible
directement dans l'éditeur des propriétés du jeu
de données :
Conception
d'un rapport
La conception d'un rapport se fait graphiquement en utilisant
l'éditeur proposé par BIRT.
BIRT propose plusieurs types de composants graphiques à insérer
dans un rapport, la vue 'Palette' affiche la liste des types de composants.
La vue 'Structure' ('Outline' en anglais) affiche l'arborescence des composants
du rapport. Cette vue est synchronisée avec l'éditeur :
la sélection d'un composant dans cette vue le sélectionne
dans l'éditeur et vice versa.
Chaque composant du rapport possède ses propres
propriétés qui sont éditables dans la vue nommée
'Editeur de propriétés'.
Les valeurs affichées par les composants 'Texte
dynamique' ainsi que certaines propriétés des composants
peuvent être associées à des expressions Javascript.
BIRT propose un assistant pour saisir ces formules.
Exemple 1 : la valeur d'un composant de type 'Texte dynamique'
peut être calculée.
Exemple 2 : le composant table dispose de nombreuses
fonctionnalités, il est notamment possible de définir des
expressions pour déterminer si une ligne doit être mise en
surbrillance.
Pendant la génération d'un rapport, BIRT
déclenche des évènements sur chacun des composants.
L'onglet 'Script' de l'éditeur permet au développeur d'associer
du code JavaScript aux évènements. Ce code peut notamment
agir sur les valeurs à afficher ou sur la mise en forme des composants.
Outre les composants permettant d'afficher les données
sous forme textuelle (Texte, tableau, liste), BIRT intègre la possibilité
d'ajouter des graphiques dans un rapport. L'assistant de création
de graphiques offre de nombreuses possibilités :
- choix entre plusieurs types de graphiques (cf
ci-contre)
- paramétrage du rendu du graphique (Polices,
couleurs, style 3D ou 2D, position du texte...).
- sélection des données à
afficher. Ces données peuvent provenir directement du jeu de
données ou être calculées.
- choix du type de rendu : PNG, GIF, JPG, SVG
ou BMP.
Exécution
d'un rapport
Pendant la phase de développement, le rapport
peut être exécuté de différentes façons
:
- l'onglet 'Aperçu' de l'éditeur affiche le résultat
au format HTML.
- les options suivantes du menu Fichier 'Aperçu au format PDF'
et 'Aperçu au format HTML' déclenchent la génération
du rapport au format sélectionné et ouvre Acrobat Reader
ou un navigateur Web.
La mise en exploitation se fait en installant le 'BIRT
Report Engine' dans un serveur d'applications J2EE (Tomcat est supporté).
Le 'Report Engine' contient une application Web nommée 'BIRT
Viewer', accessible par URL, et capable de générer les
rapports en fonction des paramètres passés dans l'URL. Les
pages suivantes présentent l'installation
du BIRT Viewer et son
utilisation.
Le BIRT Report Engine peut aussi être livré avec une application
Java autonome dans ce cas le développeur devra utiliser les
API du Report Engine pour demander la génération d'un
rapport.
Conclusion
BIRT propose un outillage complet, intégré
dans Eclipse, pour concevoir des rapports. Dans cet article ont été
présentés les mécanismes de bases de BIRT. De nombreuses
fonctionnalités plus avancées sont proposées: maître/détail,
support des feuilles de styles, sous-rapport, insertion de liens hypertextes,
internationalisation... Parmi les apports les plus importants de la version
2.0 on retiendra les notions de 'librairies' et de 'modèles de
rapport' qui permettent de réutiliser des portions de rapports
et favorisent la séparation des rôles entre les différents
participants à la création d'un rapport.
Le site officiel fournit des exemples pour une grande
partie des fonctionnalités de BIRT :
- Liste
des exemples.
- Tutorial
BIRT.
- Article
sur l'utilisation des notions de librairies et de modèles.
- Les
news d'EclipseTotale concernant BIRT.
|