I'm like a BIRT :) [Forum]
BIRT : Business Intelligence and Reporting Tools (ver. 1.0 au 08/11/04)
BIRT est un projet Eclipse Open Source concurrent de Businesss Objects, Cognos ou Hyperion.
Il se compose de 2 modules : Designer & Engine.
Il est disponible sous forme de plugin (All-in-One) ou bien en version autonome (avec Eclipse RCP, comme le projet Talend par exemple). Son partenariat avec Actuate lui confère un avenir pérenne.
Le seul visionnage du tutorial BIRT (~10min) suffit pour créer ses propres rapports !
[Tutorial connection à une base via jdbc - ici Oracle]
- New Datasource > jdbc Data Source
- Dans Manage Drivers ajouter le jar de connection à la base (ici: ojdbc14-9i.jar)
- Vous pouvez trouver les jar de toutes les bases les plus courantes dans le répertoire "lib\java" de Talend !!
- Sélectionnez alors "oracle.jdbc.driver.OracleDriver"
- Entrez comme "URL" la chaine de connection: jdbc:oracle:thin:@server:1521:schema
- Entrez le nom d'utilisateur (username) et le mot de passe (password)
[
Tutorial intégration rapport BIRT dans une page avec paramètre]
ma page jsp
[...]
<%@ taglib uri="/birt.tld" prefix="birt" %>
[...]
<f:verbatim>
<birt:viewer
id = "id_rapport"
reportDesign = "mon_rapport_birt.rptdesign"
isHostPage = "false"
svg = "true"
format = "html"
pageOverflow = "0"
height = "300"
width = "600"
showParameterPage="false"
showToolBar = "true"
>
<% int monId = (Integer) session.getAttribute("idSociete");%>
<birt:param name="PARAM_ID" value="<%= monId %>" />
</birt:viewer>
</f:verbatim>
Attention :
Nom et
type du paramètre défini dans le rapport BIRT
birt:viewer
- reportDesign : nom du rapport
- isHostPage : true prend toute la page / false reste intégrée
- format : format de sortie (html,pdf,postscript,ppt,docxls)
- pageOverflow : sur un nombre de page déterminée (0 = Auto)
- height/width : hauteur et largeur que prend la vue du rapport
- showParameterPage : affichage ou non de la boîte de dialogue de paramètre
- showToolBar : barre d'outil
[plus de détail] [Tutorial paramètre conditionnel]Les paramètres peuvent être requis (case "required" cochée ou non)
Intéressant de lier une recherche multicritères pour un résultat conditionnel
--sql standard
where SOCI.SOCI_ID = (CASE WHEN :PARAM_ID IS NULL THEN SOCI.SOCI_ID ELSE :PARAM_ID END)
--Oracle
where SOCI.SOCI_ID = NVL2(:PARAM_ID,:PARAM_ID,SOCI.SOCI_ID)
Dans la requête les paramètres peuvent être déclarés soit par ? (devra alors respecter l'ordre et le nombre de paramètre) soit par le nom du paramètre précédé par :. [Méthode multi-paramètre "before open"] Avantages :
- Open source (beaucoup d’exemples, support)
- Sources toutes les bases de données (jdbc), mais aussi fichiers (xml, csv...)
- Accès à des cubes !
- Format d'export HTML, PDF (rapport statique) / PDF cf. API iText
- Drill/down (vue dans le détail ou dans la globalité (profondeur) à l'aide d'un simple clic)
- Intégration totale à un projet web [pointe sur une URL] :
--> Visualisation grâce à une WebApp : BIRT Viewer (Tomcat, JBOSS)
--> Visualisation aussi en PHP (on imagine alors déjà les besoins remplir la tête des dirigeants!)
--> Mise en forme des rapports par des feuilles de style (css de l'appli. web)
- Intégration à un projet RCP (intégration ou ouverture d'un browser : URL)
- Présente de nombreuses fonctionnalités facile à mettre en oeuvre
- Développement rapide et rendu visuel convaincant (graphiques poussés)
- Fusion de rapport (très intuitif et utile pour les requêtes complexes)
Inconvénients :
- Nouvelle technologie (temps d’apprentissage)
- Un peu plus compliqué que BO (dév. par la MOA compliqué)
Happy BIRT day ;)