1 INTRODUCTION ET OBJECTIFS...3 2 GÉNÉRATION DE PDF AVEC.NET...4 3 LES SOLUTIONS DE BI AVEC.NET...13



Documents pareils
Olivier Deheurles Ingénieur conception et développement.net

DotNet. Plan. Les outils de développement

Architectures web/bases de données

Introduction à Microsoft InfoPath 2010

Guide de la documentation des produits BusinessObjects XI

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Créer un rapport pour Reporting Services

Communiqué de Lancement

Reporting Services - Administration

1 Introduction. Business Intelligence avec SharePoint Server 2010

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Business Intelligence avec SQL Server 2012

Introduction à. Oracle Application Express

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Catalogue Formation «Vanilla»

BIRT (Business Intelligence and Reporting Tools)

Master d Informatique Corrigé du partiel novembre 2010

Catalogue des Formations Techniques

Enterprise Intégration

Présentation de l'architecture QlikView. Livre blanc sur la technologie QlikView. Date de publication : octobre

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Analyse comparative entre différents outils de BI (Business Intelligence) :

Les nouvelles architectures des SI : Etat de l Art

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Introduction à Business Objects. J. Akoka I. Wattiau

SAP BusinessObjects Web Intelligence (WebI) BI 4

Stockez et créez vos documents

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

MYXTRACTION La Business Intelligence en temps réel

Configuration Interface for MEssage ROuting

FileMaker 13. Guide ODBC et JDBC

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

Qu'est-ce que le BPM?

SharePoint Foundation 2013 Construire un intranet collaboratif en PME (édition enrichie de vidéos)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

SQL Server 2012 et SQL Server 2014

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

1. Considérations sur le développement rapide d'application et les méthodes agiles

Logiciel de création de badges personnalisés.

Pourquoi migrer vers NAV 2013?

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Fonctionnalités des différentes éditions de SQL Server 2012

Introduction : présentation de la Business Intelligence

Présentation du Framework BootstrapTwitter

La Stratégie d Intégration Advantage

Business Intelligence avec SQL Server 2012

Logiciel Enterprise Guide Version 1.3 Windows

Configuration de SQL server 2005 pour la réplication

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Module BD et sites WEB

Surveiller et contrôler vos applications à travers le Web

Accélérateur de votre RÉUSSITE

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI SYNALTIC 24 RUE DE L EGLISE VINCENNES

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Formations Techniques : Infrastructures Janvier - Mars 2009

Survol des nouveautés

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Curriculum Vitae. GISBERT Aurélien Ingénieur Informatique INSA Senior Business & Data Analyst Business Intelligence 11 ans d expérience

Sql Server 2005 Reporting Services

Introduction au développement SharePoint. Version 1.0

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Java pour le Web. Cours Java - F. Michel

Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

Architecture Orientée Service, JSON et API REST

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Catalogue des formations

Livre Blanc WebSphere Transcoding Publisher

Planning de Formation Année 2012 Management, Informatique, Bureautique et Langues

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Introduction aux outils BI de SQL Server Tutoriel sur SQL Server Integration Services (SSIS)

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Cadrage fonctionnel et technique des sites Visa Premier et Infinite. Réalisation des déploiements pour l hébergeur.

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

I0035 INGÉNIEUR - DÉVELOPPEUR APPLICAT IF / DECISIONNEL CONFIRMÉE SAS - SPSS - INFORMAT ICA. 27 ans - 4 ans d'expérience

Java et les bases de données

SQL SERVER 2008, BUSINESS INTELLIGENCE

BUSINESS INTELLIGENCE

les techniques d'extraction, les formulaires et intégration dans un site WEB

Complaints Manager 4/06/2015 Page 1 Arpaweb 2015

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

ANNEXE 2 DESCRIPTION DU CONTENU DE L OFFRE BUSINESS INFORMATION AND ANALYSIS PACKAGE

W4 - Workflow La base des applications agiles

SQL Server Installation Center et SQL Server Management Studio

TEKLYNX CODESOFT LOGICIEL D'ETIQUETAGE ET D'INTEGRATION CODES A BARRES

ECLIPSE ET PDT (Php development tools)

Atelier 1. Portails documentaires : BioLib et Cemadoc

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Easy to. report. Connexion. Transformation. Stockage. Construction. Exploitation. Diffusion

Google Apps for Business

Transcription:

Livre Blanc Intégration d'outils de reporting externes avec la plateforme.net Version 1.0 - Mars 2006

SOMMAIRE 1 INTRODUCTION ET OBJECTIFS...3 2 GÉNÉRATION DE PDF AVEC.NET...4 2.1 Introduction...4 2.2 Solutions existantes...4 2.3 Comparaison des différentes solutions...4 2.4 Architecture d'ibex, APOC et NFOP...5 2.5 Emploi d'apoc et NFOP avec.net...6 2.6 Emploi de XMLPDF avec.net...11 3 LES SOLUTIONS DE BI AVEC.NET...13 3.1 Intégration de Crystal Reports avec.net...13 3.2 Intégration de SQL Server Reporting Service et.net...16 Page 2/19

1 INTRODUCTION ET OBJECTIFS Cette étude recense les principales solutions permettant d'effectuer du reporting externe sur la plateforme.net. L'étude se décompose en deux parties : la première s'intéresse à la génération de documents PDF ; la seconde s'articule autour de l'intégration dans.net de solutions de Business Intelligence (BI). Pour chacune de ces deux problématiques, les principales solutions du marché sont étudiées et des exemples simples et concrets sont présentés. Nous avons volontairement écarté de notre étude les solutions de Microsoft (BI & Reporting Services), qui ne s'intègrent qu'avec des outils Microsoft. A contrario, les solutions présentées ici sont des solutions tierces qui permettent d'effectuer du reporting dans des environnement hétérogènes. Page 3/19

2 GÉNÉRATION DE PDF AVEC.NET 2.1 Introduction Il existe différents outils, plus ou moins complexes, pour la génération de documents PDF à l aide de.net. Cette partie présente les principales solutions et établit un comparatif sur quelques critères simples. Ce document indique également comment employer les différentes API disponibles en.net et propose des illustrations concrètes. 2.2 Solutions existantes Il existe différentes bibliothèques permettant de générer des documents PDF avec.net. On peut notamment remarquer : XMLPDF [VIS 2005, http://www.xmlpdf.com/] Ibex [VIS 2005b, http://www.xmlpdf.com/] APOC [CHI 2005, http://www.chive.com/] NFOP [PET 2005, http://sourceforge.net/projects/nfop] Les librairies XMLPDF et APOC ont été développées en C#, alors que NFOP est écrit en J#. NFOP nécessite donc, en plus de Visual Studio, l installation de Microsoft Visual J#.NET Version 1.1 [MIC 2005]. Chacune de ces quatre bibliothèques est disponible dans une assembly autonome : xmlpdf.dll pour XMLPDF Ibex.dll pour Ibex Chive.Apoc.dll pour APOC ApacheFop.Net.dll pour NFOP Chacun de ces quatre outils permet de générer des fichiers PDF en incluant des règles de mise en forme poussées. XMLPDF et APOC sont distribués sous forme de fichiers MSI directement installables, qui contiennent la bibliothèque recherchée. 2.3 Comparaison des différentes solutions Le tableau comparatif suivant présente les grandes différences entre ces quatre solutions : Page 4/19

Simplicité Possibilités Documen- -tation SVG XMLPDF Ibex APOC NFOP Formats d images gif, jpeg, png, svg bmp, jpeg, png, svg, tiff bmp, emf, gif, icon, jpeg, png, tiff, wmf bmp, eps, gif, jpeg, png, svg, tiff DLL xmlpdf.dll Ibex.dll Chive.Apoc.dll ApacheFop.Net.dll $795/développeur $795/développeur 799/développeur Gratuit PRIX (environ 680 /développeur) (environ 680 /développeur) (environ 1175 /développeur) (open-source, licence Apache) Ibex, APOC et NFOP proposent des solutions assez complexes, employant XSL-FO, XMLPDF s appuie sur un vocabulaire XML simple, proche de HTML. Les possibilités offertes par Ibex, APOC et NFOP sont donc plus intéressantes que celles, limitées, de XMLPDF, mais elles induisent une complexité bien plus élevée. 2.4 Architecture d'ibex, APOC et NFOP 2.4.1 Introduction APOC et NFOP sont tous deux des ports du projet FOP de la fondation Apache [APA 2005]. FOP est une application Java qui utilise un objet de mise en forme XSL (un document XSL-FO) et la transforme en un document PDF. Ce fichier XSL-FO doit au préalable être produit par un processeur XSLT, à partir d un fichier de données XML et d une feuille de style XML (fichier XSL). 2.4.2 Schéma Page 5/19

2.4.3 Intérêts de XSL-FO Généré par le processeur XSLT, XSL-FO permet au développeur de clairement séparer la mise en forme de ses documents du cœur de son application. Ainsi, un changement désiré dans le formatage des fichiers PDF générés par l application pourra se faire en modifiant simplement la feuille XSL. Les avantages sont donc multiples : évolutivité plus aisée de l application ; rapidité de développement et de modification ; dissociation du cœur applicatif et des contraintes de présentation. Ceci dit, l emploi de XSL-FO demeure très complexe, car il suppose la maîtrise de XSL et une bonne connaissance du vocabulaire de FO. Le langage de balisage employé par XMLPDF, par contre, est plus simple à manipuler, mais nécessite le recours à un langage «maison» propre à cette solution : cela signifie notamment que, si un jour le produit n était plus maintenu, l ensemble des fichiers XML/XSL serait à récrire. 2.5 Emploi d'apoc et NFOP avec.net Lorsque la feuille XSLT de transformation du document XML initial est écrite, le développeur peut directement faire appel aux fonctionnalités des bibliothèques Chive.Apoc.dll ou ApacheFop.Net.dll pour générer le document PDF désiré. 2.5.1 Emploi de l'api APOC ApocDriver driver = ApocDriver.Make(); driver.setrenderer(rendererengine.pdf); try { driver.render( new StringReader(input.ToString()), new FileStream(Server.MapPath("myDocument.pdf"), FileMode.Create)); Response.Redirect(Server.MapPath("myDocument.pdf"), true); } catch { Response.Write("Error With PDF File Creation"); } 2.5.2 Emploi de l'api NFOP public void Transform( string xmldocfo, string strfilename ) { // Run the full FO doc through the engine to create a pdf Engine e = new Engine(); try { sbyte[] spdf = e.run(xmldocfo); int sz = spdf.length; Page 6/19

} Response.Write(sz.ToString()); byte[] pdf = new byte[sz]; for(int i=0; i<sz; i++) pdf[i] = (byte) spdf[i]; //Write output file FileStream fs = new FileStream(Server.MapPath(strFilename), FileMode.Create); BinaryWriter sw = new BinaryWriter(fs); sw.write(pdf); sw.close(); fs.close(); } catch(exception fe) { Response.Write("Problem in Transform function"); } Transform(input.ToString(), "mydocument.pdf"); Response.Redirect(Server.MapPath("myDocument.pdf"), true); 2.5.3 API XML en.net A l aide de l objet XslTransform de l API C#, le développeur peut aisément manipuler des fichiers XML. Par exemple, un simple appel aux méthodes Load() et Transform()permet d obtenir un document XSL-FO à partir du document XML initial et de la feuille XSL. La méthode GetXml() peut également être utilise pour créer un document XML à partir d un Dataset. 2.5.4 Schéma XSD Les schémas XML (fichiers.xsd) sont des documents XML qui permettent de décrire le type et la signification des données continues dans un document XML. C est pourquoi, dans les exemples suivants, un schéma XML a été écrit, introduisant ainsi la possibilité de validation XML. Ceci dit, ce schéma XML n est pas nécessaire à l emploi de NFOP ou APOC. 2.5.5 Exemples Cette partie donne deux exemples de l emploi des API APOC et NFOP. Le second exemple permet de générer un document sur deux pages, avec une image intégrée à la deuxième page. Les API sont généralement livrées avec des exécutables en ligne de commande ou non qui permettent de générer le document XML sans passer par l API.Net. Cela peut être pratique pour, par exemple, vérifier la validité des documents XML avant la phase de développement.net. Page 7/19

a/ Exemple simple Fichier XML <doc> <chapter> <title>chapter title</title> <paragraph>first paragraph</paragraph> <paragraph>second paragraph</paragraph> </chapter> <chapter> <title>chapter title</title> <paragraph>yet another paragraph</paragraph> <paragraph>one more paragraph</paragraph> </chapter> </doc> Fichier XSL <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:fo="http://www.w3.org/1999/xsl/format"> <xsl:template match="chapter"> <fo:block> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="chapter/title"> <fo:block text-align="center" space-after="8pt" space-before="16pt" space-after.precedence="3"> <xsl:apply-templates/> </fo:block> </xsl:template> <xsl:template match="paragraph"> <fo:block text-indent="0pc" space-after="7pt" space-before.minimum="6pt" space-before.optimum="8pt" space-before.maximum="10pt"> <xsl:apply-templates/> </fo:block> </xsl:template> </xsl:stylesheet> b/ Exemple complet Fichier XML <Example> <title>titre : Simple Example With 2 different pages</title> <author>clever Age</author> <section> <header>beginning of the Second Page</header> <title>the First Page contain an image</title> </section> </Example> Page 8/19

Fichier XSL <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:fo="http://www.w3.org/1999/xsl/format"> <xsl:output method="xml" indent="yes" /> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:layout-master-set> <!-- Cover page --> <fo:simple-page-master master-name="cover" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm"> <fo:region-body margin-top="5cm" /> </fo:simple-page-master> <!-- Page master for sections --> <fo:simple-page-master master-name="section" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm"> <fo:region-before extent="1cm"/> <fo:region-after extent="1cm"/> <fo:region-body margin-top="1cm" margin-bottom="1.1cm" /> </fo:simple-page-master> </fo:layout-master-set> <xsl:apply-templates/> </fo:root> </xsl:template> <xsl:template match="example"> <fo:page-sequence master-reference="cover"> <fo:external-graphic src="logo.gif"/> <fo:flow flow-name="xsl-region-body"> <fo:external-graphic src="logo.gif"/> <fo:block text-align="right" font-size="24pt"> <xsl:value-of select="title"/> </fo:block> <fo:block text-align="right" font-size="14pt" space-after="1cm"> <xsl:value-of select="author"/> </fo:block> </fo:flow> </fo:page-sequence> Page 9/19

<xsl:apply-templates/> </xsl:template> <xsl:template match="section"> <fo:page-sequence master-reference="section" initial-page-number="2"> <fo:static-content flow-name="xsl-region-before"> <fo:block font-size="10pt" text-align="center"> <xsl:value-of select="header"/> <fo:leader leader-pattern="rule" rule-thickness="0.5pt" leader-length="100%" color="black"/> </fo:block> </fo:static-content> <fo:static-content flow-name="xsl-region-after"> <fo:block font-size="10pt" text-align="right"> Page <fo:page-number /> </fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <fo:block text-align="left" font-size="18pt" space-after="1cm"> <xsl:value-of select="title"/> </fo:block> <fo:block> The image ( <fo:external-graphic width="100pt" height="70pt" src="logo.gif" /> ) </fo:block> </fo:flow> </fo:page-sequence> </xsl:template> </xsl:stylesheet> Fichier XSD <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2000/10/xmlschema"> <xsd:element name="title" type="xsd:string"> <xsd:element name="author" type="xsd:string"/> <xsd:element name="header type="xsd:string"/> </xsd:schema> Page 10/19

Résultat : Fichier PDF 2.6 Emploi de XMLPDF avec.net 2.6.1 Emploi de l'api XMLPDF L emploi de l API XMLPDF est extrêmement simple. La séquence suivante génère un fichier mydocument.pdf à partir du document XML mysample.xml : PDFDocument doc = new PDFDocument(); doc.generate("mysample.xml", "mydocument.pdf"); Page 11/19

2.6.2 Exemple simple L exemple suivant, assez simple, permet de générer un fichier PDF contenant une même image affichée en différentes tailles. Fichier XML <?xml version="1.0" encoding="utf-8"?> <document> <images><image file-name='bird.jpg' image-name='bird'/></images> <block>the image at its natural size.</block> <show-image image-name='bird'/> <block>the image scaled to 100 x 100.</block> <show-image image-name='bird' scale-width='100' scale-height='100'/> <block>the image automatically scaled to fit in a table cell.</block> <table widths='33%,33%,*' border-width-all='1'> <row> <cell/> <cell><show-image image-name='bird'/></cell> <cell/> </row> </table> </document> Résultat : Fichier PDF Page 12/19

3 LES SOLUTIONS DE BI AVEC.NET Deux solutions sont proposées dans cette étude : Crystal Reports de BUSINESS OBJECTS Reporting Services de MICROSOFT 3.1 Intégration de Crystal Reports avec.net 3.1.1 Introduction Racheté en 2005 par Business Objects, Crystal Reports [BUS 2005] est une solution de reporting avancée, qui permet de réaliser des rapports et des graphes complexes à partir de diverses sources de données : Bases de données Documents XML Formulaires Etc. Ce document présente les principales fonctionnalités de Crystal Reports et détaille l intégration de Crystal Reports à.net : Intégration à l IDE de développement Visual Studio.Net Génération de rapports avec.net Cf. http://www.businessobjects.com/products/reporting/crystalreports/ 3.1.2 Présentation de Crystal Reports a/ Présentation générale de Business Objects Crystal Reports fait partie de la suite Business Objects, qui répond aux besoins de pilotage de la performance, de reporting, d'interrogation et d'analyse, et d'intégration de données. Crystal Reports permet notamment de générer des rapports aux formats Office (Word, Excel), PDF ou encore dans le format Crystal Reports. Ces rapports peuvent intégrer des tables de données, des graphes, des statistiques croisées, etc. Le processus de reporting couvert par Crystal Reports concerne l'accès aux données, leur structuration, leur mise en forme et leur diffusion. La solution Crystal Reports se positionne sur l ensemble des Page 13/19

besoins liés au reporting. b/ Intégration à Visual Studio.NET Il peut être intéressant de proposer des rapports en ligne, permettant par exemple aux utilisateurs d'explorer un diagramme et de filtrer les informations qu'il contient en fonction de leurs besoins. L ensemble des informations gérées dans un document Crystal Reports s appelle un état ; un diagramme dynamique est donc, en fait, un état Crystal Reports qui interagit avec d autres contrôles de l'application. L utilisateur dispose alors de fonctionnalités très interactives, comme par exemple l'exploration de diagrammes, la navigation dans des états et la recherche de texte. Crystal Reports propose donc une intégration à.net, et est d ailleurs présenté sur le site MSDN [MIC 2005b] comme l outil standard de reporting pour Visual Studio.Net. Intégrée à Visual Studio depuis 1993, Crystal Reports propose un niveau élevé de possibilités en terme de génération dynamique de graphes et de rapports. Il est par exemple possible, dans Visual Studio.Net, d ajouter et de paramétrer graphiquement des objets Crystal Reports aux WinForms (applications) comme aux WebForms (applications Web). L intégration de Crystal Reports dans Visual Studio.Net est vaste, et ne se limite pas qu au positionnement d objets de reporting dans les formulaires. Elle intervient également au niveau de la liaison des données aux objets Crystal Report, et à la définition des propriétés de ces objets. Page 14/19

3.1.3 Génération de rapports avec Crystal Reports et.net a/ Principe de la génération dynamique d'un rapport La création de rapports ou de graphes avec Crystal Reports et.net nécessite simplement de faire appel à l API du produit pour insérer dans le rapport des données issues de fichiers XML, bases de données ou autres sources de données : Crystal Reports propose une API assez évoluée, permettant d accéder aux principales fonctionnalités de Crystal Reports depuis.net, notamment au travers d objets de la classe CrystalDecisions.Windows.Forms.CrystalReportViewer. b/ Exemple simple L exemple suivant montre simplement comment créer et afficher un rapport simple, présentant des données issues d une base SQL : // Connexion à un serveur SQL string connectionstring = "Provider=SQLOLEDB;"; connectionstring += "Server=********;Database=*********;"; connectionstring += "User ID=*********;Password=********"; // Ouverture d une connexion adooledbconnection = new OleDbConnection(connectionString); // Construction de la requite SQL string sqlstring = "Select * From authors"; // Sélection des données adooledbdataadapter = new OleDbDataAdapter(sqlString, adooledbconnection); // Création d un Dataset, rempli avec les données issues de la base // de la table dans le Dataset doit être le même que celui de la table // dans le rapport Crystal Reports dataset = new DataSet(); adooledbdataadapter.fill(dataset, "authors"); // Création d un Objet Report, et remplissage de celui-ci avec les // données du Dataset crreportdocument = new CrystalReport1(); crreportdocument.setdatasource(dataset); // Insertion du rapport dans l afficheur de rapports. CrystalReportViewer1.ReportSource = crreportdocument; Page 15/19

3.1.4 Documentation, support et ressources Si Business Objects propose un site de support, l accès à la plupart des ressources disponibles se fait sur abonnement (payant) : http://support.businessobjects.com/. 3.2 Intégration de SQL Server Reporting Service et.net 3.2.1 Introduction Reporting Service est un composant intégré à SQL Server (depuis la version 2000) et il propose : moteur de haute performance pour traiter et mettre en forme les rapports ensemble complet d'outils de création, de gestion et d'affichage des rapports architecture extensible et interfaces ouvertes pour incorporer les rapports ou intégrer les solutions de création de rapports dans divers environnements informatiques. Avec SQL Server Reporting Services, les développeurs informatiques peuvent intégrer de manière transparente les services de rapports à une architecture existante qui inclut diverses sources de données, telles que SQL Server, OLE DB, ODBC (Open Database Connectivity), Oracle ou d'autres fournisseurs de données. 3.2.2 Présentation de Microsoft Reporting Services a/ Présentation générale Ce composant a été ajouté afin de régler les problèmes suivants : Nombre de rapports Nombre de sources Besoins utilisateurs distincts DSI toujours sollicitées Page 16/19

Les caractéristiques clés de cette solution sont : Rapports traditionnels ou interactifs, basés sur le Web Forte intégration avec les applications Microsoft Office Prend en charge la diffusion "pull" ou "push" de rapports Architecture de services Web extensible, pouvant faire face à une montée en puissance Prise en charge d'olap, de SGBD, d'applications métiers et de nombreuses sources de données Facilement gérable via les API des services Web et des outils graphiques Format de définition de rapport en XML et documenté Les vendeurs de solutions peuvent facilement intégrer des fonctions de rapports dans des outils ou des applications Développement graphique de rapports intégré dans Visual Studio.NET Les formats de rapports incluent : les formats Web (HTML) ; les formats d'impression (PDF,TIFF) ; les formats de données (Excel,XML,CSV) ; d'autres formats sont envisageables via l'api. b/ Intégration à Visual Studio.NET Le principal manque de la solution est l'absence d'un outil de création de rapports intégré... Une interface vers SQL Server Reporting Services a été ajoutée à notre environnement de développement (Visual Studio) pour prendre en charge cet élément. Microsoft Reporting Services est donc totalement intégrer à Visual Studio. Visual Studio possède délors un type de projet BI permettant la création complète. Vous pouvez inclure des rapports directement au sein de WinForms (applications) et de WebForms (applications Web). Non seulement vous pouvez utiliser les bases de données traditionnelles comme source de données mais vous pouvez aussi utiliser des collections d'objets. Page 17/19

3.2.3 Génération de rapports avec SQL Reporting Services et.net a/ Extension de Reporting Services à l'aide de code personnalisé L'une des caractéristiques essentielle de Reporting Service réside dans son extensibilité. Il est possible d'étendre ou de remplacer pratiquement tous les aspects de Reporting Services, qu'il s'agisse de données, de diffusion, de sécurité ou des fonctions de génération de rapports. b/ Ecriture de code intégré Comme son nom l'indique, le code intégré est enregistré dans le fichier de définition des rapports (RDL), et il s'étend au niveau rapport. Ce code ne peut être écrit qu'en Microsoft Visual Basic.NET. Une fois que le code est prêt, vous pouvez l'appeler dans les expressions de rapport en utilisant le membre Code défini globalement. Par exemple, si vous avez créé une fonction de code intégré appelée GetValue, vous pouvez l'appeler dans les expressions avec la syntaxe suivante : =Code.GetValue() Page 18/19

3.2.4 Utilisation d'assemblies externes La seconde façon d'étendre des rapports par programmation consiste à utiliser la logique prédéfinie dans des assemblies.net externes qui peuvent être écrites dans n'importe quel langage pris en charge par.net. La possibilité d'intégrer des rapports avec du code personnalisé dans des assemblies externes augmente considérablement les possibilités de programmation. Par exemple, en utilisant du code personnalisé, vous pouvez : Tirer profit du jeu complet de fonctions de.net Framework. Imaginons que vous ayez besoin d'une collection pour stocker des données d'analyse croisée d'une région matricielle pour effectuer des calculs. Vous pouvez «emprunter» l'une des classes de collection qui accompagnent.net, par exemple Array, ArrayList, Hashtable, etc. Intégrer vos rapports avec des assemblies.net personnalisées, écrites par vous ou par des fournisseurs tiers. Écrire du code plus facilement en exploitant la puissance de l'environnement de développement Visual Studio.NET plutôt que l'éditeur de code rudimentaire. Page 19/19