Introduction▲
Ce tutoriel présente tout ce que j'ai pu apprendre sur une courte durée des reporting services avec SQL Serveur 2005. Ce tutoriel s'adresse à un public débutant. Je vous présenterai ici, la création d'un projet jusqu'à la visualisation finale d'un report, et ce qu'il faut savoir concernant les bases des reporting Services.
Dans un premier temps nous aborderons quelques généralités concernant les reporting services à travers une brève définition et la présentation de leurs avantages et inconvénients. Enfin, nous créerons un report où sera décrite toute la marche à suivre en vue de sa conception.
I. Généralités sur les Reporting Services▲
I-A. Prérequis et définition▲
- Prérequis : Visual Studio 2005 et SQL Serveur 2005 (ou SQL Serveur 2000) en vérifiant que vous avez bien coché la case Reporting Services lors de l'installation ainsi que IIS.
Il vous est possible de télécharger gratuitement une version express de SQL Server 2005 qui inclut le serveur et les Reporting Services :
Pour la conception des reports, il vous est possible de télécharger gratuitement Microsoft SQL Server 2005 Express Edition Toolkit :
Microsoft SQL Server 2005 Express Edition ToolkitMicrosoft SQL Server 2005 Express Edition Toolkit
Bien entendu, il vous est possible d'utiliser les versions commerciales des outils Microsoft Visual Studio et Microsoft SQL Server 2005.
Il vous faut les installer dans l'ordre donné.
- Définition : Reporting Services est un outil permettant de concevoir des reports ou des modèles de reports. Ce service est intégré à Visual Studio et SQL server comme vu précédemment. Un report (basé sur le langage XML) est créé depuis Visual Studio, ou par le générateur de report. Le report est publié sur un serveur Reporting Services et les utilisateurs pourront visionner ces rapports selon trois possibilités :
- directement depuis le Portail Reporting Services ;
- depuis des pages WEB appelant les WebServices ;
- directement via les reports.
I-B. Avantages et inconvénients des Reporting Services▲
- Avantages
- Déploiement possible via l'interface web http://nomserveur/reports/.
- Développement et déploiement des reports via SQL Server BI Development Studio ou Visual Studio.
- Édition possible via un éditeur de texte (format XML).
- Simple et puissant.
- Parfaitement intégré au reste de la plateforme .Net (dont ASP.Net).
- Relativement facile à prendre en main.
- Fonctionne aussi sans serveur (en mode local).
- Ne nécessite pas de connaître le SQL (ou très peu) : requêteur intégré.
- Inconvénients
Étant une pratiquante de Crystal Report XI ou encore Report Builder 6i, je peux vous dire que par comparaison je n'ai rien trouvé qui puisse me pousser à trouver des inconvénients, en tout cas pas face à ces deux produits. Certes, le design est peut-être plus poussé, mais les possibilités sont identiques tout en ayant la simplicité des Reporting Services et du déploiement.
II. Conception et déploiement d'un report▲
Dans cette partie, nous allons réaliser étape par étape un report, de sa conception à son déploiement. Personnellement, dans ce cas tout est réalisé avec Microsoft Visual Studio 2005 et SQL Server 2005 avec Reporting Services.
II-A. Création du projet report et accès aux données▲
- Étape 1 : Création d'un nouveau projet de type Report Server
Créez un nouveau projet de type Projet Report Server et nommez-le, comme ci-dessous:
- Étape 2 : Création d'un nouveau report au sein du projet
Il vous est possible d'ajouter un report soit via un assistant de création de reports, soit comme suit, en ajoutant un nouvel élément, ce qui laisse davantage de liberté vis-à-vis de la conception :
Puis, vous devez sélectionner un type « rapport » et bien entendu le renommer :
Notez que l'extension d'un report reporting services est de type « .rdl ».
Nous pouvons voir le nouveau report créé dans l'arborescence de votre projet. Chaque nouveau report de ce projet doit être visible au sein de cette arborescence :
- Étape 3 : Connexion au serveur, connexion aux données.
Votre serveur doit être démarré pour pouvoir vous connecter. Saisissez dans une invite de commande la commande net start mssqlserver (si vous en êtes l'administrateur sinon contactez votre administrateur :p ).
Dans l'explorateur de serveur, cliquez droit sur connexion de données et faites ajouter une connexion. Bien entendu, il faut que votre base de données soit déjà créée :
Nous utiliserons ici la base de données de Microsoft déjà fournie nommée AdventureWorks disponible et téléchargeable gratuitement :
Adventure works BDD exempleAdventure works BDD exemple
Pour vous connecter, il vous faut remplir la fenêtre ci-dessous afin de spécifier la source de données, le nom du serveur (ici . signifie serveur local), le type d'authentification (compte Windows ou identification SQL Server et donc sa chaine de connexion) ainsi que la base de données que vous souhaitez utiliser en source de données.
Vous pouvez constater dans votre explorateur de serveur qu'une connexion à votre serveur est ajoutée. De même pour votre base de données (une prise est modélisée) ce qui vous donne accès aux détails de type tables, vues, procédures, etc. directement à travers cette fenêtre :
Vous devez ensuite relier votre projet aux données à utiliser. Pour cela, cliquez droit sur le dossier source de données partagées dans l'explorateur de solution. Ajoutez votre source de données comme vous aviez ajouté votre connexion serveur et connexion données (la fenêtre est identique).
Nous avons fait le tour de tout ce qui est création de projet, report et connexion aux données. Passons à la conception dudit report.
II-B. Conception d'un report▲
Rapide tour de l'univers conception d'un report :
Comme vous pouvez le constater ci-dessus, pour la conception d'un report nous disposons de trois onglets :
- Données : c'est ici que les DataSet qui doivent alimenter votre report(vos requêtes) sont créés.
- Mise en page : c'est ici que vous gérez tout ce qui est disposition de vos champs, type de graphe de votre report… En bref, tout ce qui touche à la présentation de vos données.
- Aperçu : c'est ici que vous pouvez obtenir un aperçu de votre report, avant son déploiement.
Les présentations sont faites. Passons à la conception d'un report simple, que nous verrons en trois étapes.
- Étape 1 : Préparation des DataSets (requêtes, données que vous souhaitez utiliser pour votre report) :
Deux solutions s'offrent à vous.
- Soit vous connaissez tous vos champs et tables, dans ce cas vous pouvez directement faire « nouveau DataSet », le nommer et écrire la requête à utiliser comme ci-dessous :
Validez votre DataSet pour que celui-ci soit créé et utilisable dans votre report par la suite. Cette solution implique aussi de connaître le langage SQL.
2. Soit vous passez par l'explorateur de serveur, en affichant les tables comme ci-dessous. Faites clic droit sur une table et créez votre requête :
Comme vous pouvez le voir, vous disposez d'un assistant (query builder) qui vous permet de créer vos requêtes sans avoir à connaître ou très peu le SQL. Ce qui ne vous empêche pas de modifier la requête générée selon vos besoins.
Récupérez la requête générée et ajoutez-la dans le champ « champ de requête » en créant votre DataSet.
Dans tous les cas, exécutez votre requête (point d'interrogation en rouge). Vous obtenez la liste des résultats de votre sélection ainsi que le DataSet dans l'explorateur de DataSet (à gauche). Dans notre cas, nous avons sélectionné le totaletat ainsi que l'état.
Un DataSet = une requête.
- Étape 2 : La mise en page
Au niveau de l'onglet mise en page, nous allons construire l'apparence, la mise en page et le design de notre report.
Pour afficher la boîte à outils nécessaire à la construction du report, rendez-vous au menu Affichage puis boîte à outils (Alt+Ctrl+X).
Pour afficher les entêtes et/ou pieds de page du report, rendez-vous au menu Rapport. Les entêtes et pieds de page ne peuvent contenir de données dites de base. Celles-ci sont obligatoirement dans le corps du report.
Ci-dessous l'environnement de conception de la mise en page du report. Nous y avons affiché la boîte à outils, les entêtes et pieds de page :
Je vous laisse découvrir tous les types de graphiques possibles ou encore les fonctionnalités, certes explicites, de la boîte à outils.
Pour utiliser la boîte à outils, faites glisser l'élément choisi dans votre report. Dans notre exemple, ce sera un graphique :
Ensuite, le but est de choisir son type de graphique (clic droit sur le dessin de graphique) et de faire glisser les champs de données de vos DataSet sur le report, en fonction de ce que vous désirez. Dans notre cas, notre report présentera les données sous forme d'un anneau éclaté :
Avant de s'occuper des données, une brève explication sur ce que sont les champs de données, de catégories et de série que l'on peut voir sur le graphique : c'est dans ses champs que l'on fait glisser les champs de DataSet que vous souhaitez afficher.
- Champ de données : correspond à la valeur d'un point d'un graphique (soit F(x)).
- Champ de série : correspond à une colonne de données.
- Champ de catégories : correspond à l'axe des X.
Comme vous pouvez le constater, nous avons fait glisser le champ état en champ de série du graphique et le champ totalétat en champs de données. Cela nous affichera donc le nombre de personnes pour chaque état :
Concernant les propriétés d'affichage du report, vous disposez de plusieurs onglets qui eux-mêmes contiennent des propriétés modifiables selon le type de graphique. Il vous est possible de modifier les titres, les axes, les échelles, les effets, les couleurs, etc.
Pour afficher l'étiquette de valeur des éléments affichés, rendez-vous dans les propriétés du projet, onglet données, puis faites modifier la valeur. Ensuite, au niveau de l'onglet étiquette des points de la nouvelle fenêtre, cochez la case « Afficher les étiquettes des points » et sélectionnez la valeur à afficher :
- Étape 3 : L'aperçu du report :
En cliquant sur l'onglet aperçu, vous obtenez donc un aperçu de votre report, de sa disposition, etc.
II-C. Déploiement du report▲
Pour vous éviter une « erreur » lors de l'exécution de votre report, spécifier dans les propriétés du projet report l'URL que vous utilisez pour déployer vos reports, et mettez la propriété OverwriteDataSources à true. Cela vous évitera d'avoir un message d'avertissement vous signalant que la base de données existe déjà (car elle est rechargée à chaque exécution). Si vous changez de serveur, changez aussi l'URL des propriétés du projet.
Pour déployer votre solution, vérifiez que Reporting Services est démarré. Dans le cas contraire, saisissez dans une invite de commande la commande net start reportserver (si vous en êtes l'administrateur sinon contactez votre administrateur :p ).
Vous avez accès au serveur de rapports en lançant le navigateur Internet puis en saisissant l'URL suivante: http://nomserver/reports/ ou http://localhost/reports/.
Dans notre cas, l'URL d’accès au reporting services est http://archange/reports/.
Pour déployer votre projet, cliquez droit sur votre solution et faites « Déployer » comme suit :
Vous pouvez surveiller le déploiement de votre projet grâce à la fenêtre de sortie, qui vous signale si tout c'est bien passé ou non, les erreurs, ce qui a été déployé ou non, etc.
Après le déploiement, il est possible d'accéder à travers un navigateur à votre report. Il vous suffit de cliquer sur celui que vous souhaitez afficher :
Voici donc le résultat final suite à la conception et au déploiement du report :
Si vous disposez de plusieurs reports, utilisez la barre de défilement que l'on peut voir ci-dessus.
Conclusion▲
Nous venons de voir comment concevoir un report à l'aide des Reporting Services de Microsoft SQL Server 2005. L'exemple réalisé est relativement simple, mais les possibilités de Reporting Servces sont bien évidemment plus étendues (les paramètres, qui permettent d'afficher le report selon les paramètres saisis, une mise en page plus élaborée, etc.). Je vous invite aussi à ne pas hésiter à consulter l'aide, Internet, la MSDN ou encore de tester par vous-même toutes les possibilités.
Liens utiles▲
MSDN Reporting ServicesMSDN Reporting Services
Comparaison des différentes versions MS SQL Server 2005 par FadaceComparaison des différentes versions MS SQL Server 2005 par Fadace