I. Introduction▲
Le reporting permet de synthétiser des données sous forme de rapport. Ainsi, il est plus agréable, plus pratique, plus lisible, plus présentable d'exploiter nos données.
Des exemples simples de rapports sont nos bulletins de paye, nos factures, un calendrier de l'année, le bilan de l'année,\x{0085}
Aujourd'hui, il est facile de générer ce type de rapport à l'aide d'outil comme Jasper, Pentaho, Business Object, crystal reports, cognos,\x{0085}, mais aussi BIRT, celui que j'ai choisi de vous présenter.
I-A. Pourquoi BIRT▲
Voici une liste de tableaux comparatifs entre BIRT 2.6.0, Jaspersoft 3.7 Community et Pentaho 3.5.
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
Site Internet |
www.birt-exchange.com www.eclipse.org/birt |
www.jasperforge.com |
reporting.pentaho.com |
License |
Eclipse Public License |
GNU Lesser General Public License |
GNU Lesser General Public License |
REPORT DESIGNER |
BIRT Report Designer 2.6.0 |
Jasper iReport 3.7 |
Pentaho Report Designer 3.5.0 stable |
Plateforme du Designer |
Windows, Linux, Mac OS X |
Windows, Linux, Mac OS X |
Windows, Linux, Mac OS X |
Plug-in pour Eclipse |
OUI |
NON |
NON |
Plug-in pour NetBeans |
NON |
OUI |
NON |
Design Paradigm |
Web Page Design paradigm: frames, tables, lists |
positionnement des pixels |
positionnement des pixels |
Format des rapports |
XML (les fichiers .RPTDESIGN sont entièrement en XML) XML (les fichiers .RPTDESIGN sont entièrement en XML) |
Les fichiers .JRXML sont compilés en fichiers .JASPER, qui sont en Java Byte Code |
XML (Les fichiers .PRPT sont des ZIP contenant un fichier XML et d'autres ressources) |
Compilation des rapports |
Non requis |
Requis |
Requis |
Composant du Designer:
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
Sous rapport |
OUI |
OUI |
OUI |
- Édition de rapport |
OUI |
OUI |
OUI |
Tableaux |
OUI |
NON |
NON |
Tableaux croisés |
OUI |
OUI |
\x{0093}Expérimentale\x{0094} sur Pentaho 3.5 |
Tri horizontal panoramique |
OUI |
Toujours défiler vers le bas, même si c'est un tableau croisé à cellules côte à côte |
NON |
Plug-in pour NetBeans |
NON |
OUI |
NON |
Nouvelle/ mise en page multicolonne |
NON |
OUI |
NON |
Lien vers un autre rapport |
OUI |
OUI |
OUI |
Graphe actionnable |
OUI lien, au passage de la souris |
Lien partiel |
NON |
Cascading Style Sheets (CSS) |
OUI |
NON |
NON |
Mise en forme conditionnelle |
OUI |
Partielle |
OUI |
Source des données :
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
Plusieurs sources et requêtes par rapport |
OUI + possibilité de jointure |
Seulement avec des sous-requêtes. |
Seulement avec des sous-requêtes ou des graphes. |
Possibilité de joindre plusieurs sources de données dans le designer |
OUI |
NON |
NON |
Les rapports peuvent retrier, filtrer ou regrouper les données retournées par une requête. |
OUI |
Partial \x{0096} Jasper peut manipuler les données avant de construire un tableau croisé |
NON |
Type de source de données |
- Database JDBC |
- Database JDBC |
- Database JDBC |
Requête |
OUI |
OUI |
OUI |
Designer de requête graphique |
Seulement un prototype |
OUI (SQL Leonardo) |
OUI (SQL-Leonardo) |
Script |
- JavaScript |
- JavaScript |
- JavaScript |
Format de sortie :
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
HTML paginé |
OUI |
OUI |
OUI |
HTML non paginé |
OUI |
NON |
NON |
|
OUI |
OUI |
OUI |
Excel (XLS) |
OUI |
OUI |
OUI |
XML |
OUI |
OUI |
OUI |
Texte brut |
OUI |
OUI |
OUI |
RTF |
OUI |
OUI |
OUI |
PowerPoint (PPT) |
OUI |
NON |
NON |
CSV |
OUI |
OUI |
OUI |
Postscript |
OUI |
OUI |
OUI |
OpenOffice (document et feuille de calcul) |
NON |
OUI |
NON |
Microsoft Office 2007 (DOCX, XLSX) |
NON |
OUI |
NON |
Flash (SWF) |
NON |
OUI |
NON |
Format customisé |
OUI |
OUI |
OUI |
Forme géométrique et ligne |
OUI |
OUI |
OUI |
Code-barre |
OUI |
OUI |
OUI |
Graphes |
OUI |
OUI |
OUI |
Assistant Graphe |
OUI |
2 étapes assistées, Le reste est une boite de dialogue |
NON |
Interaction avec les graphes |
OUI (lien, passage de la souris\x{0085}) |
OUI (seulement les liens) |
NON |
Thèmes des graphes |
OUI |
OUI |
NON |
Contrôle précis des graphes |
OUI |
NON |
NON |
Type de graphe : |
OUI |
OUI |
OUI |
Graphe en anneau |
NON |
NON |
OUI |
Graphe en tube |
OUI |
NON |
NON |
Graphe en cône |
OUI |
NON |
NON |
Pyramide |
OUI |
NON |
NON |
Séries de temps |
OUI |
OUI |
NON |
Mesure / Gauge |
OUI |
OUI |
NON |
Chute d'eau |
NON |
NON |
OUI |
Radar |
OUI |
NON |
OUI |
Thermomètre |
NON |
OUI |
NON |
Gantt |
OUI |
OUI |
NON |
Échelle |
NON |
NON |
OUI |
Paramétrer le rapport
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
Paramètres statiques |
OUI |
OUI |
OUI |
Paramètres dynamiques |
OUI |
OUI |
OUI |
Paramètres en cascade |
OUI |
OUI |
OUI |
Date du calendrier pour les paramètres de type date |
OUI |
OUI |
OUI |
Spécification de la valeur par défaut |
OUI |
OUI |
OUI |
Liste à case à cocher |
OUI |
OUI |
OUI |
Liste à radio bouton |
OUI |
OUI |
OUI |
Agrégation / Calcul
BIRT 2.6.0 |
Jaspersoft 3.7 Community |
Pentaho 3.5 |
|
---|---|---|---|
agrégations communes |
- Moyenne |
- Moyenne |
- Moyenne |
Définitions de fonctions / d'expressions |
OUI |
OUI |
OUI |
Définitions d'agrégations |
OUI |
OUI |
OUI |
Chaque élément peut avoir son propre code, événement, fonction\x{0085} |
OUI |
Seulement le rapport lui-même peut avoir ce type de fonctionnalité |
Pas dans le designer |
I-B. Installation▲
Pour utiliser BIRT, il faut installer le logiciel Eclipse (version Helios Release par exemple) avec l'extension de BIRT (lien ici).
De plus, il est possible d'ajouter une extension afin de pouvoir faire pivoter du texte (lien ici).
I-C. Fonctionnalités▲
BIRT (Business Intelligence and Reporting Tools) est un outil de reporting Open Source reposant sur Eclipse.
Cet outil est graphique c'est-à-dire que nous avons une palette permettant de sélectionner l'élément que nous voulons placer sur notre rapport (par exemple, un label, une image, un tableau).
Ensuite, nous avons la possibilité de connecter le rapport avec une base de données afin de pouvoir afficher le résultat d'une requête SQL comme nous le souhaitons sur notre feuille de travail. Pour cela, nous devons ajouter une « Data Sources » qui permet de nous connecter à une base de données.
Puis, nous pouvons ajouter une « Data Set » qui, elle, contient la requête SQL. Cette dernière peut générer des requêtes statiques, mais aussi dynamiques en ajoutant des paramètres modifiables lors de l'exécution du rapport. De plus, nous pouvons modifier le nom de certaines colonnes du résultat de la requête, en créant des alias ce qui permet de reconnaitre les champs plus facilement lorsque nous voulons les placer sur notre rapport (ceci est indispensable lorsque nous faisons une jointure avec deux tables dont deux champs ont le même intitulé comme 'libelle' ou 'id').
Le « Data Cube » permet de créer un tableau croisé (« cross table »). Ceci est pratique lorsque nous voulons faire des statistiques sur une durée par exemple. Cette fonctionnalité possède beaucoup d'avantages, notamment l'affichage de données par colonne et le calcul du total automatique pour les statistiques.
Comme dit précédemment, nous pouvons générer des requêtes dynamiques. Pour cela nous devons créer des variables qui serviront de paramètres au rapport. Ainsi, nous devons utiliser l'option « Report parameters » qui permet de créer ces paramètres et de préciser leurs types (entier, chaine de caractère, booléen\x{0085}) et leurs valeurs par défaut.
Il y a la possibilité d'insérer des graphiques. Sous BIRT, les graphiques sont entièrement personnalisables et dépendent d'un data set ou d'un data cube. Nous pouvons l'afficher en 2D, 2D avec profondeur ou 3D.
Les éléments de la page peuvent être personnalisés en modifiant les propriétés. Parmi ces dernières, il y a la possibilité de changer l'aspect d'un élément (couleur, taille, police, fond), mais aussi de modifier le fonctionnement (ajouter une condition d'affichage, des liens). À l'aide de l'onglet « Binding », nous assignons une requête (« Data Set ») à un élément afin de pouvoir utiliser l'un de ses champs pour l'affichage.
BIRT permet aussi d'ajouter un haut de page et un bas de page statiques ou dynamiques modifiables avec l'onglet « Master Page ». Ici, nous pouvons insérer des textes automatiques situés dans la palette comme le numéro de page ou la date et l'heure.
Nous pouvons programmer des fonctions utilisables dans notre rapport en les stockant dans l'onglet « Script ». Ces scripts peuvent être exécutés au démarrage du rapport ou à la fermeture du rapport, pour un élément précis ou pour le rapport en entier. De plus, nous pouvons avoir accès au code source XML.
I-D. Génération et exportation de rapport Birt▲
Tout d'abord, nous pouvons générer des rapports en temps réel à l'aide de l'onglet « Preview ».
De plus, nous pouvons exporter le rapport sous différents formats. Ceci permet l'export sous format doc (document Word), HTML (page Internet), PDF, PPT (document PowerPoint), XLS (document Excel) ou Web viewer (application Web). Chacun d'entre eux ayant une interprétation différente, il faut faire attention à pouvoir internationaliser nos rapports.
II. Data Source▲
La Data Source permet de se connecter à une base de données. Sans cela, le rapport et ses données resteront statiques.
Il est possible de charger n'importe quel driver SQL (mysql JDBS\x{0085}). Pour se connecter à une base de données, il suffit de donner l'URL vers celle-ci via le driver. Dans l'exemple ci-dessous, l'URL est notée comme jdbc:mysql://localhost :3306/test où jdbc:mysql évoque le type de connexion à la base de données (ici, une connexion java avec mysql), localhost représente l'adresse (ici l'adresse locale), 3306 le port et test indique le nom de la base de données. Ensuite il suffit de donner le nom d'utilisateur et le mot de passe. Il est possible avant de valider de tester la connexion via le bouton « Test Connection\x{0085} ».
Il est possible de se connecter à plusieurs Data Source.
III. Data Set▲
Un Data Set contient une requête SQL. Cette requête peut être dynamique (avec paramètre) ou statique.
Lorsque nous éditons notre requête via la console du Data Set, nous avons accès à toutes les tables et champs des Data Source dans la partie Query > Available Items. Ceci permet de faciliter l'écriture de nos requêtes.
Dans l'onglet Output Column, nous pouvons voir l'ensemble des colonnes que la requête renvoie et ainsi, nous pouvons modifier leurs noms en leur donnant un alias.
L'onglet « Computed column » permet d'ajouter des colonnes calculables via d'autres colonnes.
Si nous voulons générer des requêtes dynamiques dépendant de variables passées en paramètre au rapport, il suffit d'ajouter nos paramètres existant dans la partie « Parameters ». Ainsi, lors de l'écriture de la requête, si nous voulons en utiliser un, il suffit de placer un point d'interrogation à sa place et le Data Set ira le chercher automatiquement. Dans le cas où il y a plusieurs paramètres, le Data Set prend les entrées dans l'ordre. Par exemple s’il y a deux points d'interrogation, le 1er correspond au 1er paramètre et le 2e au 2e paramètre.
La console contient un onglet « Filters ». Celui-ci donne l'occasion de filtrer nos champs. Par exemple, si nous récupérons une date, nous pouvons l'encadrer. Ceci revient à faire une condition dans le « where » de la requête.
La partie « Property Binding » permet d'écrire notre requête en utilisant les fonctionnalités du JavaScript.
Il est possible de voir un aperçu du résultat avec l'onglet « Preview result ».
IV. Data Cube▲
Un Data Cube permet de calculer des statistiques en fonction des champs retournés par un Data Set. Celui-ci peut être affiché seulement avec un tableau croisé (CrossTab).
Dans la console du Data Cube, nous pouvons sélectionner notre data set dans l'onglet « Dataset ».
Ensuite, lorsque nous allons dans « Group and Summaries », nous devons créer des groupes de données qui représenteront le haut et la colonne de gauche du tableau croisé. Par exemple, si nous voulons afficher une date dans la partie supérieure du tableau, alors nous pouvons créer un groupe « date » contenant, un champ pour l'année, un autre pour le mois et un autre pour le jour. Ensuite, nous devons afficher une opération au centre du tableau. C'est la partie « Summary ». Celle-ci se réfère à un champ du Data Set et effectue une opération en fonction des groupes créés et affichés dans le tableau croisé.
La partie « Link Group » affiche notre Data Cube sous forme de modélisation.
V. Report Parameters▲
Le rapport pouvant être dynamique, il est donc possible de lui fournir des paramètres.
Pour créer un paramètre, il faut lui donner un nom, un type (chaine de caractères, entier, booléen, case à cocher\x{0085}) et lui dire s'il est obligatoire ou non.
Selon le type du paramètre, nous pouvons lui sélectionner des valeurs par défaut ou même des valeurs. En effet, si notre paramètre est une liste nous pouvons générer cette liste via un Data Set ou l'écrire manuellement.
Lors de l'exécution du rapport, une fenêtre s'affiche et demande d'entrer les paramètres. Dans le cas où le paramètre n'est pas obligatoire, alors celui-ci sera affiché sous forme de deux boutons radio : le 1er avec la valeur que vous lui passez, le 2e avec la valeur « nulle ».
VI. Script▲
Les scripts servent à appliquer des fonctions sur des éléments du rapport. Ils sont programmés en JavaScript. Il est possible d'exécuter des scripts à différents moments de l'exécution (avant l'ouverture, avant l'exécution, après, pendant\x{0085}).
Lorsque nous voulons déclarer des fonctions utilisables dans le rapport entier, il est judicieux de les placer lors de l'initialisation de la page (clic sur la page, puis sur script, et sélection sur « initialize »).
Chaque élément peut se servir du script pour différentes raisons. Par exemple, un Data Set peut modifier sa requête en affectant une chaine de caractères contenant la nouvelle requête à la variable queryText. L'avantage de ceci est d'utiliser directement des paramètres du rapport via la syntaxe params['NomDuParametre'].value. De plus, nous pouvons utiliser les fonctionnalités du JavaScript afin par exemple d'ajouter à la requête des conditions si certains paramètres sont renseignés, d'alléger l'écriture de la requête si certains endroits se répètent\x{0085}
Les fonctions déclarées dans les scripts peuvent être utilisées à chaque fois que le symbole « fx » apparait.
VII. La palette de BIRT▲
Les deux premières lignes représentent un mode de sélection (par groupe d'éléments ou par élément individuel).
Les quatre suivants servent à afficher du texte : _ Le label affiche du texte statique. _ Le Texte (Text) :
_ Le texte dynamique (dynamic Text) :
_ La donnée (Data)
Cet élément est semblable à une variable utilisable qu'une seule fois. Elle est en général placée dans un tableau et représente un élément d'un data set ou d'un data cube. Ainsi, à chaque nouvelle ligne du résultat du Data Set, ce texte sera mis à jour selon la nouvelle valeur. Il est ainsi possible de modifier l'un des champs pour personnaliser son affichage via le bouton « fx ».
Ensuite, nous avons . Il permet tout simplement d'insérer une image. Celle-ci peut être fixe (une image quelconque uploadée) ou dynamique (une image récupérée via un data set ou data cube).
Les cinq derniers représentent des containers. Ce sont eux qui vont permettre d'afficher le résultat d'une requête. Ainsi, nous avons :
_ une grille : cela permet de placer n'importe quels éléments dans une partie du document. Par exemple, si nous voulons placer deux éléments l'un à côté de l'autre, il suffit de créer une grille à deux colonnes ;
_ une liste : elle affiche les données d'une requête sous forme de groupe de listes. Ainsi, nous pouvons agrandir ou réduire la liste :
_ un tableau : Cela permet d'afficher le résultat de la requête telle quelle. Il est possible de créer des groupes sur des champs et de modifier l'ordre d'affichage. Un tableau est toujours attaché à un data set ;
_ un graphique (Chart) : les graphiques sont entièrement personnalisables sous BIRT. Ils peuvent être sous n'importe quelle forme (camembert, graphe, diagramme\x{0085}). De plus, nous pouvons choisir de l'afficher en 2D, 2D profondeur ou 3D. Lors de l'ajout de cet élément, une fenêtre s'ouvre. Trois onglets séparent cette dernière. Le premier sert à choisir le type du graphique, sa dimension et son format (PNG, JPG, SVG\x{0085}). Le deuxième permet de sélectionner les données soit d'un data set, soit d'un data cube. Enfin, le troisième permet de personnaliser le graphique. Nous pouvons modifier les couleurs, les libellés, la visibilité, l'échelle, la légende\x{0085}
_ un tableau croisé (Cross Tab) : il affiche les données d'un data cube. Il est souvent utilisé pour afficher des statistiques selon deux champs d'un data cube.
Il est possible de placer des tableaux dans des tableaux (qu'ils soient imbriqués ou non).
Enfin, il est possible d'ajouter une extension et dans ce cas il peut y avoir ses éléments :
Le premier permet de remplacer des chiffres par des ronds. Si le chiffre est 2 alors il y aura 2 ronds.
Le deuxième permet tout simplement de faire pivoter le texte.
Pour finir, il reste les qui sont des éléments calculables à placer dans un tableau comme un total ou une moyenne.
VIII. Les propriétés▲
Dans l'éditeur de propriétés, nous pouvons remarquer que nous avons des onglets horizontaux et verticaux. Chaque élément a son propre éditeur de propriétés. Dans l'exemple ci-dessus, il s'agit de l'éditeur d'un tableau.
Dans les onglets horizontaux, nous trouvons : _ les propriétés générales (properties).
* Dans la partie générale, nous pouvons modifier le nom de l'élément, sa taille (width, height), sa position (verticale et horizontale), son style (feuille de style personnalisable), et le style du texte figurant dans l'élément (sa couleur, sa police, sa taille\x{0085}).
* Ensuite, nous avons la partie border qui permet de définir les contours des cases du tableau :
Sur l'image précédente, nous pouvons observer que nous pouvons modifier les bordures soit en cliquant sur les traits du carré de droite, soit en sélectionnant les boutons en bas à gauche.
* Nous pouvons définir des marges afin d'aérer notre rapport.
* La partie page break permet de définir le moment où nous voulons que notre rapport change de page automatiquement :
Ainsi, nous pouvons sauter de page avant, pendant ou après l'affichage de l'élément.
* Il est possible de masquer des éléments sous certaines conditions lorsque le rapport est affiché dans un format spécifique. Ceci est assez pratique si vous voulez masquer l'affichage d'un paramètre non obligatoire qui n'a pas été renseigné :
ou masquer pour un format particulier non supporté par le rapport :
* Il y a encore plusieurs propriétés pouvant être modifiées, mais nous allons les passer et arriver directement à la dernière qui est nommée 'Advanced'. Celle-ci permet de modifier l'ensemble du style de l'élément. C'est un tableau de style modifiable à la volée :
_ Après les propriétés générales, nous trouvons les Binding :
Les bindings représentent des données ainsi que des éléments calculables (agrégations) pouvant être affichés dans l'élément courant. Un élément gérant les bindings ne peut sélectionner qu'un seul Data Set ou un seul élément (données d'un élément).
_ Il est possible de faire des groupements de données. Ceci est pratique lorsque nous voulons grouper des éléments d'un tableau :
_ Le mapping consiste à remplacer une donnée lors d'une certaine condition par une autre donnée. Ceci est pratique lorsque nous voulons remplacer toutes les données égales à 0 par une chaine de caractères comme « donnée indisponible » par exemple.
_ Le highlight consiste à donner un style particulier à un champ sous certaines conditions. Ceci est pratique dans la mesure ou nous pouvons personnaliser le style selon la donnée. Par exemple, nous voulons griser le fond d'une ligne sur deux d'un tableau :
_ La partie sorting permet de trier un ensemble de lignes d'un composant listant des données :
_ Les filtres permettent de créer des jointures entre les éléments de deux composants ou de filtrer les données de l'élément selon certaines conditions :
IX. Master Page▲
Le master page permet de définir le haut de page et le bas de page du rapport. Il est possible d'y insérer toutes formes de donnée. De plus, nous avons accès à des données spécifiques à cette partie comme le numéro de page, la date d'impression, \x{0085} Ce sont des textes automatiques :
Le master page possède quelques propriétés déjà vues précédemment, mais elle possède aussi la propriété suivante qui consiste à pouvoir afficher le header avant ou après le footer :
X. XML Source▲
Le rapport BIRT peut être converti en fichier XML. Ainsi, nous pouvons modifier directement le rapport via le XML.
Les parties importantes du fichier XML sont :
_ la définition du rapport ainsi que sa version :
<report
xmlns
=
http
:
//www.eclipse.org/birt/2005/design
version
=
"3.2.22"
id
=
"1"
>
_ la définition des méthodes dans le script définit entre les balises :
<method
name
=
"initialize"
>
<![CDATA[
code
]]\></method>
_ les paramètres du rapport entre les balises « parameters » avec la syntaxe et les propriétés suivantes :
<parameters>
<scalar-parameter
name
=
"nom_du_parametre"
id
=
"2233"
>
<property
name
=
"valueType"
>
static</property>
<property
name
=
"isRequired"
>
true</property>
<property
name
=
"dataType"
>
string</property>
<property
name
=
"distinct"
>
true</property>
<simple-property-list
name
=
"defaultValue"
>
<value
type
=
"constant"
>
valeur_par_defaut</value>
</simple-property-list>
<property
name
=
"paramType"
>
simple</property>
<property
name
=
"concealValue"
>
false</property>
<property
name
=
"controlType"
>
text-box</property>
<property
name
=
"autoSuggestThreshold"
>
1</property>
<structure
name
=
"format"
>
<property
name
=
"category"
>
Unformatted</property>
</structure>
</scalar-parameter>
</parameters>
_ la définition des Data Source comme suit :
<data-sources>
<oda-data-source
extensionID
=
"org.eclipse.birt.report.data.oda.jdbc"
name
=
"Data Source"
id
=
"7"
>
<list-property
name
=
"privateDriverProperties"
>
<ex-property>
<name>
contentBidiFormatStr</name>
<value>
ILYNN</value>
</ex-property>
<ex-property>
<name>
metadataBidiFormatStr</name>
<value>
ILYNN</value>
</ex-property>
</list-property>
<property
name
=
"odaDriverClass"
>
com.mysql.jdbc.Driver
</property>
<property
name
=
"odaURL"
>
jdbc:mysql://localhost:3306/developpez
</property>
<property
name
=
"odaUser"
>
Utilisateur
</property>
<encrypted-property
name
=
"odaPassword"
encryptionID
=
"base64"
>
Mot de passe crypté en base 64
</encrypted-property>
</oda-data-source>
</data-sources>
Remarquons que nous renseignons le driver, l'URL de la base de données, l'utilisateur et le mot de passe cryptés en base 64.
_ Ensuite, nous avons la définition des Data Set dans la balise :
<data-sets>
Chaque Data Set est défini dans une balise :
<oda-data-set
extensionID
=
"org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet"
name
=
"Data Set"
id
=
"2303"
>
Puis suit la liste des paramètres dans la balise :
<list-property
name
=
"parameters"
>
Chaque paramètre est défini via la syntaxe suivante :
<structure>
<property
name
=
"name"
>
nom_parametre</property>
<property
name
=
"paramName"
>
nom</property>
<property
name
=
"dataType"
>
string</property>
<property
name
=
"position"
>
1</property>
<property
name
=
"isInput"
>
true</property>
<property
name
=
"isOutput"
>
false</property>
</structure>
Puis la requête est écrite dans les balises :
<xml-property
name
=
"queryText"
>
<![CDATA[
Requete ]]\></xml-property>
_ Puis, nous avons la définition des styles entre les balises 'style'
_ Pour terminer le header, nous définissons le master page entre les balises :
<page-setup>
<simple-master-page
name
=
"Simple MasterPage"
id
=
"2"
>
<page-header>
definition</page-header>
<page-footer>
definition</page-footer>
</simple-master-page>
</page-setup>
_ Enfin, nous avons dans la balise « body » le détail de chaque élément du rapport.
XI. Conclusion▲
Ce tutoriel est terminé. Vous avez pu analyser tout les éléments que BIRT vous propose. Vous êtes maintenant à même dé réaliser vos rapports.
Merci d'avoir suivi ce tutoriel et à bientôt !
XII. Remerciement▲
Je tiens à remercier ovh pour ses nombreuses idées ainsi que jacques_jean pour la relecture orthographique.