Vous êtes sur la page 1sur 44

Tirez le meilleur parti des graphiques de SQL Server Reporting Services

SQL Server 2005 2 sur 2 ont trouv cela utile - valuez ce sujet Paru le 07 novembre 2006 Robert M. Bruckner Lire cet article en anglais .

S'applique : Microsoft SQL Server 2005 Reporting Services Rsum :Ce livre blanc prsente des informations gnrales, les mthodes recommandes et fournit des conseils pour la conception de graphiques dans les rapports Microsoft SQL Server Reporting Services. Il propose une vue d'ensemble de certaines des fonctionnalits Reporting Services, rpond aux questions relatives la conception et aux caractristiques des graphiques et comporte des exemples avancs sur la manire de les concevoir. (32 pages imprimes) Cliquez ici pour tlcharger l'exemple de code associ, GetMoreChartsSamples.exe. Cliquez ici pour tlcharger la version Word de cet article, MoreSSRSCharts.doc.
Sur cette page

Introduction Prparation des donnes tiquettes de graphique Exemples de graphiques et de rapports Conclusion

Introduction
Ce livre blanc traite de la manire de concevoir des graphiques dans les rapports Microsoft SQL Server Reporting Services. Il est divis en plusieurs sections et rfrences spcifiques des exemples de rapport, lesquels sont compris dans le tlchargement d'exemple de projet. La premire section, Prparation des donnes, contient des informations, des conseils et des aperus spcifiques sur la prparation de donnes. La deuxime section, tiquettes de graphique, vous indique comment appliquer des paramtres d'tiquette pour amliorer vos graphiques et contrler leur apparence visuelle et leurs effets.

La section Exemples de graphique et de rapport prsente des exemples spcifiques et quelques exemples avancs sur la manire d'optimiser votre utilisation de la fonctionnalit de graphique intgre SQL Server Reporting Services. Certains de ces exemples ncessitent une tude attentive des instructions tape par tape qui vous sont fournies. Des exemples de rapport entirement fonctionnels sont inclus pour votre confort. Ces exemples de rapport s'appuient sur les exemples de base de donnes AdventureWorks de SQL Server 2005 et Northwind. Ces informations relatives la prparation des donnes et aux tiquettes de graphique vous permettent de mieux comprendre les exemples fournis. Au cours de l'tude des exemples, il peut s'avrer utile de revenir aux rubriques relatives aux tiquettes de graphique spcifiques, comprises dans les premires sections. Haut de page

Prparation des donnes


Le but d'un graphique est de permettre de visualiser des donnes. Il constitue un moyen plus efficace de communiquer des informations que de longues listes de donnes. Pour concevoir vos graphiques plus rapidement et avec davantage d'efficacit, il est recommand de d'abord prendre le temps ncessaire la prparation et la comprhension de vos donnes. Les donnes de graphique Reporting Services sont organises en trois domaines : les valeurs, les groupes de catgories et les groupes de sries. Pour des informations dtailles, reportez-vous la rubrique Working with Chart Data Regions (en anglais) dans la section SQL Server Reporting Services de la documentation en ligne SQL Server 2005. Un graphique s'apparente fortement une matrice :

Un groupe de catgories de graphique correspond un groupe de colonnes de matrice. Un groupe de sries de graphique correspond un groupe de lignes de matrice. Une valeur de graphique correspond un groupe de lignes de matrice statique. Une valeur de donne ou point de donne de graphique correspond une cellule de matrice.

Lorsque vous prparez une requte de jeu de donnes pour un graphique, vous devez tenir compte des points suivants :

Les valeurs du graphique sont affiches le long de l'axe des Y numrique. Assurez-vous que les champs utiliss en tant que valeurs comportent des donnes de type numrique (contrairement aux chanes qui contiennent des nombres formats). Les valeurs de l'axe des X sont dtermines en fonction des valeurs du groupe de catgories de graphique, ou des tiquettes du groupe si ces dernires sont explicitement dfinies. L'axe des X prend en charge deux modes (dcrits en dtail dans la rubrique Mode scalaire et mode catgorie de l'axe des X). Si vous souhaitez utiliser le mode scalaire de l'axe des X, assurez-vous que les champs et/ou les expressions utiliss pour l'expression du groupe de catgories produisent des donnes de type numrique ou un objet DateTime.

Vous pouvez inclure autant de graphiques que vous le souhaitez dans votre rapport. Tout comme n'importe quelle autre rgion de donnes telle qu'une matrice ou un tableau, un graphique est li un jeu de donnes spcifique. Vous pouvez utiliser des liaisons et des unions dans la requte de jeu de donnes afin d'y inclure l'ensemble des donnes ncessaires. Si un graphique est plac dans l'en-tte ou le pied de page d'un groupe de tableau, ou dans une cellule de matrice, les donnes transmises au contrle du graphique sont limites au sous-ensemble de donnes qui constitue ce groupe. Un graphique ne peut pas tre plac dans la ligne dtaille d'un tableau, tant donn qu'une seule ligne de donnes y est rfrence. Si vous n'utilisez pas de nuage de points pour afficher la distribution des valeurs et de clusters de points de donnes, un graphique comportant un volume de donnes trop important (par exemple, plusieurs milliers de points de donnes) peut s'avrer difficile interprter. Si la dfinition d'un niveau dtaill de granularit des donnes n'est pas indispensable, voire inutile, il est recommand de regrouper les donnes au pralable dans la requte de jeu de donnes.

Haut de page

tiquettes de graphique
Cette section couvre les rubriques suivantes lies aux tiquettes de graphique. Lors de l'tude des exemples de la section suivante, il peut s'avrer utile de revenir occasionnellement aux rubriques de la prsente section.

Mode scalaire et mode catgorie de l'axe des X Cette section explique les diffrences majeures entre les deux modes de l'axe des X. Vous pouvez utiliser l'exemple de rapport CategoryAxisSettings comme point de dpart pour vos tests.

tiquettes d'axe La section relative aux tiquettes d'axe traite en dtail de l'application de paramtres d'tiquette et de leur impact sur l'apparence du graphique au moment de l'excution.

tiquettes de point de donnes et tiquettes de lgende Cette section explique comment amliorer vos graphiques via l'ajout d'tiquettes de point de donnes et d'tiquettes de lgende.

Mode scalaire et mode catgorie de l'axe des X L'axe des X comporte deux modes. Le mode est dfini l'aide de l'option Valeurs numriques ou d'chelle de temps de l'onglet Axe des X dans la bote de dialogue Proprits du graphique.

Mode catgorie Les valeurs d'expression du groupe de catgories dterminent les catgories individuelles de l'axe des X. Les tiquettes sont affiches uniquement pour les catgories effectivement prsentes dans les donnes. Le contrle du graphique ne procdant pas au tri des catgories, l'ordre de tri au sein d'un groupe et les expressions de tri explicites sont primordiales pour le mode catgorie. Le code de format dfini pour l'axe des X est appliqu uniquement si l'expression du groupe (ou l'expression de l'tiquette du groupe, si elle est explicitement dfinie) produit un objet autre qu'une chane. Les tendues du groupement des catgories sont affiches si vous disposez de plusieurs niveaux de groupement de catgories.

Mode scalaire La gamme des valeurs de l'axe X est dtermine par les valeurs d'expression minimale et maximale du groupe de catgories. De ce fait, les valeurs d'expression du groupe doivent tre des valeurs de type numrique ou DateTime pour pouvoir tre compares et tries. Les vides dans les donnes (par exemple, vous utilisez un groupement de catgories DateTime et vous ne disposez de donnes que pour juillet et septembre) sont affichs sur l'axe des X, lorsque les catgories sont mises l'chelle sur un axe numrique ou DateTime. Un seul groupement de catgories est autoris en mode scalaire.

Les graphiques dans les figures 1A et 2A affichent les quatre mmes semaines de donnes de tri.

Figure 1A. Axe des X en mode d'axe de catgories et tendues du groupement

Figure 2A Axe des X en mode scalaire Axe en mode catgorie dans la figure 1A tant donn que le jeu de donnes sous-jacent ne comporte aucune donne de tri pour les jours du week-end (samedi et dimanche), les catgories ne sont pas prsentes dans la figure 1A. Cet exemple utilise deux groupements de catgories, comme illustr dans la figure 1B. L'expression

du groupe interne utilise =Day(Fields!OrderDate.Value) pour effectuer un groupement par jour. L'expression du groupe externe utilise =Month(Fields!OrderDate.Value) pour effectuer un groupement par mois. Remarque : L'expression d'tiquette du groupe externe est dfinie sur =MonthName(Month(Fields!OrderDate.Value)), ce qui correspond une utilisation du nom du mois en tant qu'tiquette pour l'tendue du groupement.

Figure 1B. Axe des X en mode d'axe de catgories comportant des groupements et tendues de catgories multiples (cliquez sur l'image pour l'agrandir) Les paramtres relatifs aux proprits de l'axe des X sont illustrs dans la figure 1C. En mode catgorie, la smantique du minimum, du maximum et des intervalles est base sur l'index des catgories. Si aucune proprit d'axe explicite n'est spcifie, une tiquette est affiche pour chaque catgorie de donnes.

Figure 1C. Paramtres d'axe des X du mode d'axe de catgories (cliquez sur l'image pour l'agrandir) Axe en mode scalaire dans la figure 2A Un axe en mode scalaire affiche des valeurs numriques ou de type DateTime. L'axe des X couvre toute la gamme des valeurs entre le minimum et le maximum. De ce fait, les jours du week-end ne contenant pas de donnes, la figure 2A comporte des vides. Lorsque l'axe des X est en mode scalaire, un seul groupement de catgories est autoris. La valeur du groupement de catgories doit correspondre une valeur numrique ou de type DateTime. La mise en forme des tiquettes de l'axe des X est dtermine par le paramtre de chane de format sur l'axe des X ; dans cet exemple, MMM dd. Les paramtres relatifs aux proprits de l'axe des X sont illustrs dans la figure 2B.

Figure 2B. Paramtres de l'axe des X en mode scalaire (cliquez sur l'image pour l'agrandir) Pour plus d'informations sur les chanes de format numrique et DateTime, reportez-vous aux pages suivantes du Guide du dveloppeur .NET Framework sur MSDN (Microsoft Developer Network) :

Chanes de format numriques standard Chanes de format numriques personnalises Chanes de format DateTime standard Chanes de format DateTime personnalises

tiquettes d'axe Les tiquettes de l'axe des Y sont toujours bases sur des valeurs numriques. Si aucun paramtre d'axe explicite n'est indiqu, l'axe des Y utilise le mode d'chelle automatique comme suit :

La valeur minimum de l'axe des Y est dtermine en fonction de la valeur Y la moins leve de tous les points de donnes. Si cette valeur de donnes minimum n'est pas un nombre entier, mais une valeur double (telle que 3,75) et que les marges de ct sont dsactives, il se peut que les tiquettes de l'axe des Y ne soient pas arrondies pour

obtenir des nombres entiers (par exemple, avec un intervalle de 1 (un) : 3,75 ; 4,75 ; 5,75 et ainsi de suite). moins qu'un maximum soit explicitement spcifi, la valeur maximum de l'axe des Y est automatiquement dtermine en fonction de la valeur Y la plus leve de tous les points de donnes. L'intervalle du quadrillage principal de l'axe des Y est automatiquement dtermin en fonction des valeurs des donnes (dans la figure 3, l'intervalle du quadrillage principal automatique est 20). L'intervalle du quadrillage secondaire de l'axe des Y divise l'intervalle du quadrillage principal en segments (dans la figure 3, l'intervalle du quadrillage secondaire automatique serait 4 ; tant donn que 20 / 4 = 5, les segments d'intervalle du quadrillage secondaire constituent un segment d'intervalle du quadrillage principal). tant donn que les valeurs de l'axe des Y sont systmatiquement numriques, vous pouvez directement appliquer des chanes de format numriques. Ce paramtre est appliqu l'ensemble des tiquettes gnres pour l'axe des Y.

Figure 3. Paramtres de l'axe des Y (cliquez sur l'image pour l'agrandir) Modes de l'axe des X

Comme indiqu dans la section prcdente, l'axe des X comporte plusieurs modes. Selon le mode, diverses options de mise en forme sont disponibles et les paramtres de l'axe des X (Minimum, Maximum, Intersection , et ainsi de suite) peuvent tre interprts diffremment. Les diffrentes options de mise en forme sont dcrites ci-aprs :

Mode scalaire bas sur des valeurs de groupe de catgories numriques Lorsque ce paramtre est utilis, l'axe des X est trs similaire l'axe des Y. Les paramtres d'axe tels que Minimum, Maximum, Intersection , Intervalle du quadrillage principal et Intervalle du quadrillage secondaire sont interprts en tant que nombres entiers ou valeurs doubles. tant donn que les valeurs de l'axe des X sont numriques, vous pouvez directement appliquer des chanes de format numriques.

Mode scalaire bas sur des valeurs de groupe de catgories DateTime Minimum de l'axe : Si le minimum de l'axe est dfini sur une valeur constante (telle que 2005) ou sur une expression comportant un rsultat de type nombre entier (par exemple, =2005), cette valeur est interprte comme tant le premier jour de cette anne (tel que le 1er janvier 2005). Maximum de l'axe : Un paramtre de type nombre entier est interprt comme tant le dernier jour de cette anne (tel que le 31dcembre 2005). Intersection de l'axe : Ce paramtre est interprt comme tant le milieu de l'anne. Intervalle du quadrillage principal et Intervalle du quadrillage secondaire : Les paramtres d'intervalle sont interprts comme tant des jours (quivalents au format OADate). Par exemple, une valeur 5 correspond un intervalle de 5 jours et une valeur 0,5 correspond un intervalle d'une demi journe (12 heures). S'agissant de la mise en forme de l'tiquette, vous pouvez appliquer directement des chanes de format DateTime.

Mode catgorie (l'option Valeurs numriques ou d'chelle de temps n'est pas active) Selon les valeurs des expressions du groupe de catgories, le contrle de graphique fait correspondre les catgories en fonction de sries multiples (par exemple, les donnes de la catgorie Janvier dans la srie 2006 seront dans le mme cluster que celles de la catgorie Janvier de la srie 2007). Les paramtres de chane de format dans l'onglet Axe des X n'ont aucun effet tant que l'expression du groupe de catgories (ou l'expression de l'tiquette, comme dans la figure 4) ne produit pas de donnes numriques ou de type DateTime. Lorsque vous utilisez le mode catgorie, il est frquent que l'expression du groupe de catgories

produise un objet de chane ; de ce fait, l'application d'un code de format ultrieurement n'aura aucun effet. Vous pouvez ajouter ou modifier l'expression de l'tiquette du groupe de catgories ou appliquer directement la mise en forme via l'expression de l'tiquette, comme illustr dans la figure 4. Remarque : En mode catgorie, la smantique du minimum, du maximum et des intervalles est base sur l'index des catgories. Par exemple, si vous dfinissez le minimum de l'axe des X sur la valeur 2, la premire catgorie de donnes ne sera pas affiche. Si vous dfinissez l'intervalle du quadrillage principal sur la valeur 5, les tiquettes seront affiches uniquement pour chaque cinquime catgorie sur l'axe des X. Cela peut s'avrer utile si l'axe des X est charg de catgories (et d'tiquettes) et si les smantiques sous-jacentes de ces catgories sont effectivement numriques. Remarque : Reporting Services 2005 autorise galement des expressions dans l'ensemble des champs d'entre affichs dans les onglets Axe des X et Axe des Y : Titre, Minimum, Maximum, Intervalle du quadrillage principal, Intervalle du quadrillage secondaire, et ainsi de suite.

Figure 4. Si l'expression de l'tiquette est dfinie explicitement, son rsultat est affich sur l'axe des X (axe des catgories) la place du rsultat de l'expression du groupe. Questions/rponses relatives la mise en forme des tiquettes& d'axe

Question (axe des Y) : Comment puis-je appliquer de jolies tiquettes bases sur des nombres entiers sur l'axe des Y ? Rponse : Si aucun paramtre d'axe n'est spcifi, le contrle de graphique dtermine automatiquement les valeurs en fonction des valeurs Y des points de donnes. Si les valeurs minimum/maximum des points de donnes ne sont pas des nombres entiers, les tiquettes de l'axe des Y peuvent utiliser des valeurs doubles.

Toutefois, si au moins l'un des paramtres d'axe (par exemple, Minimum ou Intersection ) est explicitement spcifi comme tant une valeur de type nombre entier par l'auteur du rapport, le contrle de graphique arrondit les valeurs automatiquement dtectes sur le nombre entier le plus proche, puis affiche des jolies tiquettes. Par exemple, vous pouvez dfinir la valeur minimum de l'axe des Y de manire dynamique et appliquer l'arrondi comme suit : =Floor(Min(Fields!Freight.Value)).

Question (axe des X en mode scalaire) : En activant l'option Valeurs numriques ou d'chelle de temps, le graphique n'affiche aucun point de donnes lors de l'excution. Quel est le problme ? Rponse : L'expression du groupe de catgories produit trs probablement une chane au lieu de valeurs numriques. Modifiez l'expression du groupe de catgories en fonction. Si vous ne souhaitez pas modifier la requte d'extraction de valeurs de donnes scalaires au lieu de valeurs de chane, vous pouvez galement effectuer la conversion du type dans le rapport l'aide de fonctions Microsoft Visual Basic telles que CInt(), CDbl() ou CDate().

Question (axe des X en mode catgorie) : Si le nombre de catgories augmente, l'axe des X devient surcharg et, au final, les tiquettes d'axe ne sont plus dessines. Comment puis-je contrler le nombre d'tiquettes dans le mode catgorie de l'axe des X ? Rponse : Le contrle de graphique essaie de placer automatiquement les tiquettes de l'axe des X de sorte viter tout chevauchement de texte. Par dfaut, chaque catgorie comporte une tiquette sur l'axe des X. Vous pouvez explicitement dfinir le paramtre d'intervalle du quadrillage principal de l'axe des X de sorte outrepasser ce comportement par dfaut. Par exemple, vous pouvez dfinir l'intervalle du quadrillage principal sur la valeur 5 pour qu'il affiche des tiquettes pour chaque cinquime catgorie uniquement.

Question (axe des X) : Comment fonctionne le placement automatique des tiquettes de l'axe des X ? Rponse : Actuellement, les graphiques intgrs Reporting Services n'autorisent le placement automatique que pour viter le chevauchement des tiquettes de l'axe des X. Le sens (horizontal/vertical) des tiquettes de l'axe des X dpend de la taille des chanes d'tiquette et de l'espace disponible. Les tiquettes de l'axe des X peuvent tre affiches horizontalement sur une ligne, horizontalement sur plusieurs lignes l'aide de sauts de ligne ou verticalement. L'affichage des tiquettes de l'axe des X dans un angle et le contrle manuel explicite de leur position ne sont actuellement pas pris en charge. Remarque : Il existe plusieurs complments de graphique tiers permettant un contrle accru des tiquettes de l'axe des X. Ces complments peuvent tre installs sur Reporting Services 2005.

tiquettes de point de donnes et tiquettes de lgende

Les tiquettes de point de donnes permettent de pointer spcifiquement vers certaines valeurs (telle que la valeur minimum ou maximum gnrale) parmi tous les points de donnes visibles dans le graphique. Pour activer les tiquettes de point de donnes, modifiez la valeur du graphique dans la bote de dialogue Proprits du graphique. La bote de dialogue Modifier une valeur du graphique s'ouvre alors ; elle contient un onglet tiquettes des points comportant l'option Afficher les tiquettes des points. Placement des tiquettes de donnes Par dfaut, lorsque vous activez les tiquettes de point de donnes, une tiquette est affiche par point de donnes. L'tiquette de point de donnes est automatiquement place de sorte viter tout chevauchement des tiquettes. Si les tiquettes de point de donnes se chevauchent, le contrle de graphique dplace les tiquettes se chevauchant vers une zone libre de la zone de traage du graphique (et dessine une liaison pour connecter l'tiquette de donnes la valeur du point de donnes). Si un trop grand nombre d'tiquettes se chevauchent, le contrle des graphiques supprime les tiquettes de point de donnes individuelles jusqu' ce que l'espace soit suffisant pour intgrer les tiquettes restantes sans chevauchement. Outre le positionnement automatique, vous pouvez utiliser le positionnement manuel des tiquettes explicite (haut, gauche, centre, etc.). Cependant, en fonction des valeurs de donnes et de la taille des tiquettes de donnes, il est possible que les tiquettes se chevauchent. Par dfaut, l'tiquette du point de donnes indique la valeur de l'axe des Y du point de donnes. Il est galement possible de spcifier une expression d'tiquette de point de donnes explicite et des chanes au format DateTime ou numrique pour personnaliser l'tiquette. En rgle gnrale, vous effectuez les calculs des tiquettes de point de donnes l'aide d'expressions identiques celles utilises pour calculer la valeur de l'axe des Y dans l'expression de la valeur du point de donnes. Par exemple, pour uniquement afficher les tiquettes de point de donnes si la contribution relative de ce segment est suprieure 5 % de la quantit totale, vous pourriez utiliser une expression d'tiquette de point de donnes identique au code de la procdure suivante.

Utilisez l'expression suivante pour l'expression de l'tiquette de point de donnes :


=Code.GetLabel(Sum(Fields!Sales.Value), Sum(Fields!Sales.Value,"SalesChart"))

Ouvrez la bote de dialogue Proprits du rapport et cliquez sur l'onglet Code. Ajoutez la fonction de code personnalis GetLabel() suivante dans l'option Code personnalis.
Public Function GetLabel(ByVal currentValue As Double, ByVal totalValue As Double) As String If currentValue / totalValue < 0.05 Then Return " " Else Return Format(currentValue / totalValue, "P1") End If

End Function

Explication du code La fonction GetLabel() utilise deux arguments. Le premier argument fournit la valeur actuelle du point de donnes spcifi. Le deuxime argument fournit le calcul de la quantit totale. La fonction calcule le pourcentage relatif. S'il est infrieur 5 % (0,05), une chane vierge est renvoye. Remarque Le renvoi d'une chane null ou vide affiche l'tiquette par dfaut auto-gnre. Si le pourcentage relatif est d'au moins 5 %, une chane formate en pourcentage (chane de format : P1) est renvoye. Vous trouverez un exemple d'application de ce type de formatage dans l'exemple de rapport PiePercentage inclus dans ce livre blanc. Positions des tiquettes de donnes dans les graphiques secteurs et anneaux Pour les graphiques secteurs et anneaux, il existe seulement deux positions d'tiquette de point de donnes : intrieur (dfinit la position de l'tiquette de point de donnes sur Auto ou Centr) et extrieur (n'importe quelle autre position d'tiquette). Vous trouverez un exemple d'tiquettes positionnes l'extrieur dans la figure 5 (et dans l'exemple de rapport PieSimplePercentage).

Figure 5. tiquettes de point de donnes l'extrieur du graphique dans un graphique secteurs La position des tiquettes de segment sectoriel peut tre spcifie comme indiqu dans la figure 6.

Figure 6. Dfinition des tiquettes de point de donnes l'extrieur d'un graphique secteurs ou anneaux en slectionnant une position l'exception de la position centrale tiquettes de lgende En rgle gnrale, les tiquettes de lgende sont dtermines en fonction des valeurs de groupe de srie dynamique (ou des tiquettes si spcifies explicitement dans le groupe) et des noms des valeurs (de srie statique). tant donn que le graphique est par nature une reprsentation aplatie des hirarchies de regroupement, les tiquettes de lgende sont gnres en fonction de cette hirarchie. Par exemple, si un graphique dispose de deux regroupements de srie (extrieur dfini en tant que OrderYear, intrieur en tant que OrderQuarter) et d'une seule valeur de graphique (par exemple, Rel), les tiquettes de lgende sont gnres en concatnant les valeurs du groupe et les valeurs du graphique comme indiqu dans le tableau 1. Tableau 1 tiquette OrderYear 2006 2006 tiquette OrderQuarter Q1 Q2 tiquette de srie de valeurs du graphique Rel Rel TIQUETTE DE LGENDE GNRE 2006 Q1 Rel 2006 Q2 Rel

Supposons qu'on ajoute une deuxime valeur de graphique appele Budget. En utilisant les mmes donnes que dans l'exemple prcdent, les tiquettes gnres ressemblent celles du tableau 2. Tableau 2 tiquette OrderYear 2006 2006 2006 2006 tiquette OrderQuarter Q1 Q1 Q2 Q2 tiquette de srie de valeurs du graphique Rel Budget Rel Budget TIQUETTE DE LGENDE GNRE 2006 Q1 Rel 2006 Q1 Rel 2006 Q2 Rel 2006 Q2 Budget

Remarque Vous pouvez masquer les niveaux internes individuels dans la hirarchie en dfinissant l'expression d'tiquette de groupe de faon renvoyer une chane vide (=""). Ce processus supprime ce niveau de groupe des tiquettes de lgende gnres. tiquettes et points de donnes vides La situation suivante peut vous paratre familire. Vous gnrez un graphique avec une srie de donnes, les tiquettes de point de donnes sont actives et le graphique est prsentable. Vous dcidez d'ajouter un groupe de srie dynamique pour que le graphique affiche plusieurs sries de donnes. Tout coup, le graphique intgre des tiquettes supplmentaires (pour des points de donnes vides). Les points de donnes vides surviennent lorsque l'ensemble de donnes sous-jacent ne contient pas de valeurs de donnes pour chaque combinaison srie/catgorie. Le graphique quivaut par nature une matrice (restreinte) constitue de cellules vides. Vous pouvez supprimer des tiquettes pour les points de donnes vides. Au lieu d'activer les tiquettes de point de donnes et d'utiliser l'tiquette par dfaut, utilisez l'approche prsente dans l'exemple de rapport EmptyDataPointLabels inclus dans ce livre blanc (voir galement la figure 7). Voici l'exemple de code qui excute ce processus.

Utilisez la fonction Count() pour dterminer le nombre de lignes de donnes sousjacentes tant agrges pour ce point de donnes. Si le nombre de lignes est gal zro, il s'agit d'un point de donnes vide. Transmettez ce nombre une fonction de code personnalis avec la valeur relle de l'tiquette :
=Code.GetLabel(Avg(Fields!UnitsInStock.Value), Count(Fields!UnitsInStock.Value))

Ouvrez la bote de dialogue Proprits du rapport et cliquez sur l'onglet Code. Ajoutez la fonction de code personnalis GetLabel() suivante dans l'option Code personnalis.
Public Function GetLabel(ByVal datapointValue As Double, ByVal count As Integer) As String

If count = 0 Then Return " " Else Return Format(datapointValue, "N1") End If End Function

Figure 7. Exemple de rapport incluant des points de donnes vides sans tiquettes Questions&Rponses sur le formatage des tiquettes de point de donnes

Question : Quel rle jouent les lignes grises (appeles liaisons) situes proximit des tiquettes de point de donnes si le graphique est surcharg de points de donnes et d'tiquettes ? Rponse : Si la position de l'tiquette de point de donnes est dfinie sur Auto, le contrle des graphiques dplace les tiquettes vers des zones libres pour viter que les tiquettes de point de donnes ne se chevauchent. Les liaisons relient l'tiquette de point de donnes et l'emplacement de point de donnes. Vous pouvez utiliser le positionnement manuel pour viter cette situation. l'aide d'expressions, vous pouvez masquer de manire dynamique une grande partie des tiquettes de point de donnes en indiquant un espace vide (=" ") comme rsultat d'valuation d'une chane. Dans le cas contraire, l'tiquette par dfaut s'affiche si les tiquettes de point de donnes sont actives.

Question : Est-il possible d'utiliser les mots cls Dundas pour le formatage des tiquettes ? Rponse : Oui, vous pouvez utiliser les mots cls Dundas intgrs pour les tiquettes de point de donnes. En rgle gnrale, il est toutefois recommand de ne pas combiner les

expressions RDL et les mots cls Dundas (les expressions RDL sont values en premier lieu, les fonctions Dundas sont interprtes ultrieurement par le contrle des graphiques). Le tableau 3 contient une liste de mots cls Dundas utiles. Tableau 3 Mot cl Dundas #VALX #VAL #VALY, #VALY2, #VALY3, etc. #INDEX #TOTAL #VALY{C2} Haut de page Remplac par Valeur du point de donnes sur l'axe des X Valeur du point de donnes sur l'axe des Y Premire valeur de l'axe des Y, deuxime valeur de l'axe des Y, troisime valeur de l'axe des Y, etc. Index des points de donnes dans la srie Total de toutes les valeurs de l'axe des Y dans la srie actuelle Valeur de l'axe des Y du point de donnes formate l'aide de la chane de format C2 (format des devises)

Exemples de graphiques et de rapports


Cette section prsente des exemples de cration de diffrents types de graphiques et de rapports. Il peut s'avrer utile de revenir occasionnellement aux rubriques portant sur les tiquettes de graphique tudies dans les sections prcdentes lorsque vous examinerez ces exemples. Voici les exemples prsents dans cette section.

Graphiques combins courbes/histogrammes Fournit une prsentation gnrale des graphiques combins et l'exemple de rapport SalesCostTarget.

Graphiques de Pareto Implmente la vision de Pareto dans un graphique (exemple de rapport ParetoChart).

Calculs de la moyenne mobile Calcul et visualisation des tendances de srie chronologique dans les graphiques (exemple de rapport MovingAverage).

Lgendes et palettes de couleurs de graphique personnalises Comment personnaliser les couleurs de votre graphique (exemple de rapport CustomColorPalette).

Graphiques secteurs et anneaux

Informations spcifiques ne pas oublier lors de l'utilisation des graphiques secteurs ou anneaux.

Ajout de tables de donnes au graphique Indique comment associer les donnes du graphique agrges aux donnes dtailles (exemple de rapport PiePercentage).

Graphique en bulles et nuages de points Conseils importants pour la conception de graphiques en bulles et nuages de points (BubbleChart, StepFunctionChart).

Graphiques insrs au tableau Vous n'avez peut-tre pas besoin d'une visualisation de graphique complexe ou vous devez grer un volume inconnu de donnes lors de l'excution tout en souhaitant une visualisation attrayante et utile. Cette section propose diffrentes faons d'atteindre ce but (TableInlineCharts).

Extensibilit du graphique et cration manuelle de graphiques Aborde plusieurs alternatives au cas o les graphiques intgrs ne soient pas suffisants.

Les exemples de rapports, bass sur les exemples des bases de donnes AdventureWorks et Northwind de SQL Server 2005, sont inclus dans le fichier tlcharg avec ce livre blanc. Graphiques combins courbes/histogrammes Les graphiques qui affichent plusieurs sries de donnes sous forme de colonnes et d'autres sries de donnes sous forme de lignes sont souvent utiliss pour reprsenter des tendances gnrales et des valeurs cibles ou pour analyser ultrieurement les donnes du graphique. Cette section fournit des informations d'ordre gnral sur la conception de ce type de graphique dans Reporting Services. Pour crer un graphique combin courbes/histogrammes :

Ajoutez un graphique au rapport et dfinissez le type de graphique sur Histogramme. Dessinez le graphique en ajoutant des groupes de catgorie et/ou des groupes de srie et des valeurs de donnes. Pour afficher les valeurs de donnes sous forme de lignes, procdez aux tapes suivantes dans Report Designer : o Ouvrez la bote de dialogue Proprits du graphique. o Cliquez sur l'onglet Donnes. o Slectionnez les valeurs de donnes afficher sous forme de lignes et cliquez sur Modifier.

Dans la bote de dialogue Modifier une valeur du graphique, cliquez sur l'onglet Apparence et slectionnez Tracer les donnes sous forme de ligne (voir figure 8).

Figure 8. Reprsentation d'une srie de donnes sous forme de ligne dans un histogramme Pour ajouter une valeur Target constante ou dynamique au graphique :

Dessinez le graphique. Dans l'onglet Donnes de la bote de dialogue Proprits du graphique, ajoutez une valeur de donnes (par exemple, Target). Dfinissez la valeur Target (l'exemple de la figure 9 utilise une valeur Target constante gale 100 000 dans toutes les catgories). Assurez-vous d'utiliser une expression commenant par le signe = (gal). Dans le cas contraire, la valeur n'est pas interprte comme une valeur numrique.

Figure 9. Ajout d'une valeur Target L'exemple de rapport SalesCostTarget (voir figure 10) utilise cette approche pour ajouter une ligne simple correspondant l'objectif des ventes au graphique.

Figure 10. Valeur Target (ligne rouge) (Cliquez sur l'image pour l'agrandir) Remarque tant donn que les lignes de la srie du graphique en courbes sont reprsentes en reliant les points de donnes des diverses catgories, la ligne est uniquement visible si le groupement de catgories dispose au minimum de deux valeurs d'instance de groupe diffrentes lors de l'excution. Remarque Si le graphique contient un ou plusieurs groupes de srie, la valeur de donnes Target est duplique pour chaque instance de groupe de la srie. Cela peut s'avrer utile si vous disposez de valeurs Target spcifiques pour chaque instance de groupe.

Si vous souhaitez une seule valeur Target globale pour toute la srie, vous pouvez dfinir la valeur de donnes Target de faon dynamique comme suit :
=iif(Fields!<SameFieldAsSeriesGroup>.Value = First (Fields!<SameFieldAsSeriesGroup>.Value, <ChartName>), <TargetValue>, Nothing)

Un exemple d'expression spcifique se prsenterait comme suit :


=iif(Fields!Year.Value = First(Fields!Year.Value, "SalesChart"), 100000, Nothing)

Graphiques de Pareto Un graphique de Pareto rsume et affiche l'importance relative des diffrences entre les groupes de donnes. Les graphiques de Pareto font la distinction entre les quelques vitaux et les nombreux utiles . Un graphique de Pareto peut galement tre reprsent sous la forme d'un histogramme dont les colonnes sont tries selon l'ordre dcroissant pour identifier les meilleures possibilits d'amliorations. Bien que les graphiques de Pareto ne soient pas directement pris en charge dans les graphiques Reporting Services intgrs, vous pouvez crer un graphique Pareto l'aide des fonctionnalits de Reporting Services 2005 en crivant un peu de code. Cette section prsente une explication approfondie de l'exemple de rapport ParetoChart inclus dans ce livre blanc. Voici la description du scnario pour l'exemple de rapport ParetoChart. La base de donnes AdventureWorks de SQL Server 2005 contient des donnes concernant les employs du service des ventes. Nous sommes particulirement intresss par l'analyse des informations suivantes concernant nos employs du service des ventes :

Comment se prsente l'analyse de Pareto si elle se base sur les employs du service des ventes ayant reu les primes les plus consquentes de l'anne prcdente ? (Voir la courbe orange de la figure 11.) Quels employs du service des ventes ont reu les plus grosses primes l'anne dernire et que se passe t-il si on les compare aux ventes globales de l'anne en cours ? (Voir les colonnes bleue et verte de la figure 11.) Les performances en termes de vente ont-elles volues de faon significative en se basant sur la prime de l'anne prcdente compare aux ventes de l'anne en cours ? Bien que la rponse puisse se trouver en comparant les colonnes bleue et verte, l'norme foss sparant les courbes de Pareto orange et rouge de la figure 11 rend la rponse plus vidente. Pour un employ du service des ventes donn, nous souhaiterions nous plonger dans les performances en termes de vente prsentes et passes et examiner les tendances historiques sur plusieurs annes de donnes.

Cette opration ncessite l'ajout d'actions d'extraction sur les valeurs de donnes de vente (colonnes vertes de la figure 11) pour fournir une analyse dtaille des donnes de chaque commercial et une analyse des tendances. Le rapport d'extraction (exemple de rapport MovingAverage) est analys en dtails dans la section suivante.

Figure 18. Exemple de rapport de graphique de Pareto (cliquez sur l'image pour l'agrandir) Pour gnrer le rapport de graphique de Pareto

Dfinissez la requte afin de rcuprer les donnes de ventes ncessaires. La requte pr-trie les donnes pour chaque commercial en se basant sur les valeurs des primes. Elle ne rcupre pas les commandes commerciales individuelles car celles-ci ne sont pas ncessaires au rapport. Cela permet galement de conserver un ensemble de donnes de petite taille.

Dessinez la forme globale du graphique. Ajoutez un histogramme au rapport. Pour analyser les donnes par commercial, ajoutez un groupe de catgorie bas sur le commercial (class comme suit =Fields!SalesPersonID.Value). Pour l'tiquette de la catgorie, indiquez le prnom et le nom du commercial. Pour cela, dfinissez l'expression de l'tiquette du groupe de catgorie comme suit.
=Fields!FirstName.Value & " " & Fields!LastName.Value

Prparez le graphique aux calculs de Pareto.

Nous utiliserons la fonction RunningValue() pour les calculs. Remarque La fonction RunningValue est uniquement prise en charge dans les graphiques s'ouvrant avec Reporting Services 2005. Comme pour une matrice, la fonction RunningValue ncessite une tendue de regroupement explicite dans un graphique pour dterminer si la valeur d'excution doit s'excuter dans toutes les catgories d'une srie de donnes particulire (la direction est par nature horizontale) ou si elle doit s'excuter dans toute la srie de donnes d'une catgorie particulire (moins frquent). Pour les calculs de Pareto, nous devons utiliser une fonction RunningValue qui se sert d'un nom de groupe de srie comme tendue de rinitialisation (et par consquent s'excute dans toutes les catgories). Puisque nous ne disposons pas encore d'un groupe de srie pour ce graphique, nous pouvons seulement ajouter un faux groupe de srie bas sur une valeur constante (telle que 1). Expression du groupe : 1 Expression de l'tiquette : ="" (pour masquer l'tiquette de la srie partir des tiquettes de lgende gnres) Il en rsulte une srie de donnes, ainsi qu'un nom explicite d'tendue de la srie.

Ajoutez les valeurs de donnes de ventes et de primes sous forme de colonnes. Nous pouvons ajouter au graphique des valeurs de donnes correspondant au cumul des ventes et des primes jusqu' ce jour en faisant glisser les champs de donnes correspondants dans le graphique. Remarque Cet exemple utilise la fonction d'agrgation Sum() pour les valeurs de ventes et de primes. Nous souhaitons placer la lgende dans le coin suprieur gauche l'intrieur de la zone de traage du graphique. Par consquent, nous souhaitons redimensionner l'axe des Y de faon ce que la valeur maximale du point de donnes reprsente dans le graphique ne dpasse jamais 75 % de la hauteur totale de l'axe des Y. Pour cela, nous multiplions les calculs de la prime par 75 % :
=0.75 * Sum(Fields!Bonus.Value) / Max(Fields!Bonus.Value, "SeriesGroup")

Nous procdons de la mme faon pour le calcul des ventes :


=0.75 * Sum(Fields!SalesYTD.Value) / Max(Fields!SalesYTD.Value, "SeriesGroup")

Dfinissez l'axe des Y en tant qu'axe de pourcentages. Lors de l'tape prcdente, nous avons dfini les calcul des primes et des ventes en tant que calculs de pourcentages (quantit relative par rapport la valeur maximale). La dfinition de la chane de format de l'axe des Y sur P0 applique un formatage en pourcentage (l'axe des Y rel sera redimensionn entre 0 et 1). Pour obtenir des intervalles intressants, nous dfinissons l'intervalle principal de l'axe des Y sur 0,2 afin d'obtenir des intervalles de 20 %.

Ajoutez les calculs de Pareto des ventes et primes sous forme de courbes. La fonction RunningValue() fournit un calcul cumulatif jusqu' ce qu'elle se rinitialise. Nous souhaitons qu'elle ne se rinitialise jamais. tant donn qu'au dpart nous ne disposons pas d'un groupe de srie explicite, nous en avons ajout un l'tape 3. Les calculs de Pareto correspondent la somme cumulative divise par les valeurs totales. Pour le calcul de Pareto des primes, nous utilisons l'expression suivante.
=RunningValue(Fields!Bonus.Value, Sum, "SeriesGroup") / Sum(Fields!Bonus.Value, "SeriesGroup")

Nous procdons de la mme faon pour le calcul de Pareto des ventes :


=RunningValue(Fields!SalesYTD.Value, Sum, "SeriesGroup") / Sum(Fields!SalesYTD.Value, "SeriesGroup")

Ajoutez une action d'extraction la valeur de donnes des ventes. Pour effectuer une analyse d'extraction des donnes de vente d'un commercial, nous avons ajout dans l'exemple de rapport MovingAverage une action d'extraction (voir figure 12) au point des donnes de vente. tant donn que nous sommes uniquement intress par un commercial en particulier, nous dfinissons le paramtre d'extraction SalesPersonID sur la valeur du groupe de catgorie actuelle. Dans cet exemple il s'agit de l'ID actuel du commercial : =Fields!SalesPersonID.Value.

Figure 12. Ajout d'une action d'extraction

Finalisez le graphique en ajoutant le formatage, les tiquettes de point de donnes et la lgende.

Calculs de la moyenne mobile La moyenne mobile appartient la catgorie des techniques statistiques utilises pour analyser les donnes d'une srie chronologique. Une srie de moyenne mobile peut se calculer pour n'importe quelle srie chronologique. Bien que les calculs de moyenne mobile ne soient pas directement pris en charge via les graphiques Reporting Services intgrs, vous pouvez tout de mme crire du code pour effectuer ce type de calculs. Cette section prsente une explication approfondie de l'exemple de rapport MovingAverage. L'exemple de rapport concerne le scnario dcrit dans la section prcdente propos des graphiques de Pareto. Pour un employ du service des ventes donn, nous souhaiterions analyser les performances en termes de ventes prsentes et passes et analyser les tendances historiques sur plusieurs annes de donnes. Les moyennes mobiles sont utilises pour aplanir les fluctuations court terme, et donc mettre en vidence les cycles ou les tendances long terme. L'exemple MovingAverage prsente le calcul d'une simple moyenne mobile (la moyenne non pondre des points de donnes n prcdents). Dans cet exemple particulier, nous utilisons les donnes des ventes des trois derniers mois. Voir figure 13.

Figure 13. Calcul de la moyenne mobile (cliquez sur l'image pour l'agrandir) Pour gnrer le rapport

Dfinissez la requte de faon rcuprer les donnes des ventes dtailles ncessaires. La requte est paramtre pour rcuprer les donnes d'un seul commercial donn. Le paramtre de la requte est dfini en se basant sur un paramtre du rapport, complt par un ensemble de donnes bas sur une liste de valeurs valides.

Dessinez la forme globale du graphique. Ajoutez un histogramme au rapport. Pour l'axe des X, utilisez le mode catgorie pour pouvoir disposer de deux niveaux de regroupement : regroupement par mois au niveau interne et regroupement par anne avec plages de regroupement au niveau externe. Le groupe des mois utilise l'expression d'tiquette de groupe explicite suivante pour formater le nom du mois sous forme abrge. =Format(Fields!OrderDate.Value,"MMM")

Prparez le graphique pour le calcul de la moyenne mobile. Comme pour l'tape 3 des calculs de Pareto, nous utilisons la fonction RunningValue. La moyenne mobile ne doit pas se rinitialiser dans les catgories, nous ajoutons donc un regroupement de srie bas sur SalesPersonID. Puisque la requte est paramtre en fonction du commercial, il y aura une seule srie de commercial. L'expression de l'tiquette de groupe de la srie est dfinie sur =Fields!FullName.Value pour que les lments de la lgende du graphique contiennent le nom entier du commercial.

Ajoutez le calcul des ventes sous forme de colonnes. Faites glisser le champ de dataset TotalDue dans la zone d'insertion des valeurs du graphique pour ajouter une valeur de donnes des ventes base sur l'agrgation Sum().

Pour concatner le mot Ventes de l'tiquette de groupe de la srie (l'tiquette de groupe est le nom entier du commercial comme dfini dans l'tape 3), nous dfinissons explicitement l'tiquette de la valeur de donnes sur Ventes.

Ajoutez les fonctions du code personnalis de la moyenne mobile. Le tableau suivant prsente un exemple de calcul de la moyenne mobile l'aide d'une file d'attente. La colonne Contenu de la file d'attente prsente le contenu de la file d'attente actuelle pour un mois donn. La dernire colonne du tableau indique un calcul RunningValue bas sur l'agrgation d'lments ajouts et supprims de la file d'attente. L'exemple de code situ en dessous du tableau prsente une implmentation de cet algorithme. Tableau 4 Moyenne Valeur Contenu de Valeur de file mobile d'excution la file d'attente (2 mois) rgulire d'attente supprime 20 20 N/A N/A 35 20, 10 15 N/A 17 20 14 59 75 87 10, 24 24, 16 16, 12 -20 -10 -24 Excution de la valeur base sur la file d'attente 0 0+ 15 = 15 15+ (24-20) /2 = 17 17+ (16-10) /2 = 20 20+ (12-24) /2 = 14

Mois Ventes Janv. 20 Fvr. 10 Mars 24 Avr. 16 Mai 12

Pour implmenter RunningValue base sur la file d'attente, ajoutez le code suivant la section Code personnalis dans l'onglet Code de la bote de dialogue Proprits du rapport.
Private queueLength As Integer = 3 Private queueSum As Double = 0 Private queueFull As Boolean = False Private queue As New System.Collections.Generic.Queue(Of Double) Public Function MovingQueue(ByVal currentValue As Double) As Object Dim removedValue As Double = 0 If queue.Count >= queueLength Then removedValue = queue.Dequeue() End If queueSum += currentValue queueSum -= removedValue queue.Enqueue(currentValue)

If queue.Count < queueLength Then Return Nothing ElseIf queue.Count = queueLength And queueFull = False Then queueFull = True Return queueSum / queueLength Else Return (currentValue - removedValue) / queueLength End If End Function

Ajoutez la valeur mobile moyenne des ventes sous forme de ligne. Le calcul de la valeur des donnes pour la moyenne mobile utilise la fonction RunningValue pour les valeurs renvoyes par la fonction de code personnalis MovingQueue. La fonction MovingQueue calcule les valeurs d'ajustement pour le calcul RunningValue cumulatif. Cette opration est effectue l'aide du code suivant.
=RunningValue(Code.MovingQueue(Fields!TotalDue.Value), Sum, "SalesPerson")

Remarque Pour effectuer plusieurs calculs de moyenne mobile dans un graphique, vous devez dterminer une mthode de rinitialisation de la file d'attente la fin d'une srie ou utiliser plusieurs files d'attentes. Par exemple, vous pouvez utiliser une table de hachage des files d'attente indexes sur la valeur de groupe de la srie et transmises la fonction MovingQueue en tant qu'argument supplmentaire. Remarque Un graphique ne peut pas englober plusieurs pages. C'est pourquoi la dclaration des variables comme valeur non partage prive est valide. Pour utiliser le calcul de moyenne mobile dans une autre rgion de donnes (comme une liste, un tableau ou une matrice) englobant plusieurs pages, les variables doivent tre dclares comme tant partages (donc statiques) afin de conserver l'tat dans la pagination. Toutefois, comme cette opration utilise des variables statiques, si deux personnes excutent le rapport en mme temps, il y a un faible risque que les deux tats de variable entrent en collision. Pour tre absolument sr d'viter de dsagrment, vous pouvez faire une table de hachage pour chaque variable partage, base sur l'ID de l'utilisateur effectuant la demande (=Globals!UserID). Lgendes et palettes de couleurs de graphique personnalises Les graphiques utilisent des palettes de couleurs prdfinies et intgres comportant 10 16 couleurs diffrentes. En commenant avec Reporting Services 2000 Service Pack 1 (SP1), vous pouvez remplacer les couleurs par dfaut. Pour spcifier les valeurs des couleurs comme valeurs constantes ou bases sur une expression, cliquez sur le bouton Style de sries des proprits d'apparence pour la valeur de donne de la bote de dialogue Modifier une valeur du graphique. Vous pouvez ainsi utiliser cette fonction pour mettre en vidence les valeurs bases sur une certaine condition, comme une valeur minimale ou maximale dans la srie actuelle.

Remarque Si vous ne souhaitez pas dfinir une palette de couleurs entirement personnalise, vous pouvez changer la couleur des points de donnes individuels. Utilisez une expression qui renvoie une valeur de couleur spcifique (pour un remplacement) ou renvoie Nothing , ce qui permet de choisir la couleur actuelle partir de la palette sous-jacente de couleurs intgre. Par exemple, vous pouvez mettre en rouge toutes les valeurs de points de donnes avec des valeurs ngatives y. Pour tous les autres points de donnes, vous pouvez appliquer les couleurs par dfaut. Pour ce faire, slectionnez Modifier la valeur des donnes, puis cliquez sur l'onglet Apparence. Cliquez sur le bouton Style de sries pour ouvrir la bote de dialogue Proprits de style. Cliquez sur l'onglet Remplir. Entrez l'expression suivante dans les proprits de style de couleur de remplissage.
=iif(Sum(Fields!Sales.Value - Fields!Cost.Value) < 0, "Red", Nothing))

Remarque Si vous dfinissez la couleur de remplissage avec une valeur constante, cette couleur s'applique tous les points de donnes pour cette srie de donnes. La lgende du graphique utilise des champs de couleur pour faire correspondre les lments de la lgende aux points de donnes visibles. La lgende affiche uniquement un champ de couleur par lment de lgende (srie de donnes) ; ainsi, elle affiche la couleur du premier point de donnes de cette srie. Ne l'oubliez pas lorsque vous utilisez des expressions pour dterminer dynamiquement la couleur des points de donnes individuels dans une srie ; l'lment de lgende affiche toujours la couleur relle du premier point de donnes. Bien que la lgende cre dans les graphiques de Reporting Services soit facile utiliser, elle manque de flexibilit. Par exemple, la lgende utilise de l'espace dans le graphique. Si la lgende se trouve en dehors de la zone de traage et que la lgende s'tend, la taille de la zone de traage du graphique diminue en consquence. Vous pouvez bnficier d'une meilleure flexibilit et mieux contrler la lgende en gnrant votre lgende personnalise l'aide d'un tableau ou d'une matrice. La manire la plus simple de synchroniser les couleurs du graphique avec votre lgende personnalise consiste dfinir votre palette personnalise de couleurs de graphique. L'exemple de rapport CustomColorPalette implmente une palette de couleurs et une lgende personnalises. Voir figure 14.

Figure 14. Rapport d'histogramme avec palette de couleurs et lgende personnalises. Pour crer une palette de couleurs personnalise

Dfinissez les groupes de sries de graphiques et de catgories. Par dfaut, une couleur est affecte chaque srie de donnes de graphique. Cette couleur est base sur la palette du graphique slectionn. Dans cet exemple, nous souhaitons remplacer ces couleurs bases sur les valeurs d'instance du groupe de la srie.

Dfinissez la palette de couleurs personnalise et ajoutez le code personnalis. La variable colorPalette stocke la dfinition de notre palette de couleurs personnalise, qui comporte 15 couleurs diffrentes. La variable count effectue le suivi du compte total des valeurs de groupement diffrentes afin de les encapsuler une fois que le nombre de couleurs distinctes de la palette de couleurs personnalise est dpass. La table de hachage de mappage effectue le suivi du mappage entre les valeurs de groupement et les couleurs. Ainsi, tous les points de donnes de la mme srie de donnes sont de la mme couleur. La srie est ensuite utilise pour synchroniser les couleurs de lgende personnalises avec les couleurs du graphique. Le code suivant fait partie de la fentre de code personnalis du rapport.
Private colorPalette As String() = {"Green", "Blue", "Red", "Orange", "Aqua", "Teal", "Gold", "RoyalBlue", "MistyRose", "LightGreen", "LemonChiffon", "LightSteelBlue", "#F1E7D6", "#E16C56", "#CFBA9B"} Private count As Integer = 0 Private mapping As New System.Collections.Hashtable() Public Function GetColor(ByVal groupingValue As String) As String If mapping.ContainsKey(groupingValue) Then Return mapping(groupingValue) End If

Dim c As String = colorPalette(count Mod colorPalette.Length) count = count + 1 mapping.Add(groupingValue, c) Return c End Function

Appelez la fonction GetColor() pour affecter les couleurs aux points de donnes. La fonction GetColor est appele partir des proprits de style de couleur de remplissage. Modifiez la valeur des donnes pour ouvrir la bote de dialogue Modifier une valeur du graphique, puis cliquez sur l'onglet Apparence (Figure 15). Cliquez sur le bouton Style de sries, puis sur l'onglet Remplir. La valeur actuelle du groupe de srie est transmise en tant qu'argument la fonction GetColor, ncessaire au mappage de la valeur d'instance de groupe interne vers la valeur de la couleur.

Figure 15. Dfinition des styles de sries de donnes explicites Remarque Si vous disposez de plusieurs groupes de sries de graphiques, vous pouvez concatner les valeurs du groupe de la srie pour crer un identificateur unique utilis dans la fonction GetColor. Le code suivant est un exemple.
=Code.GetColor(Fields!Country.Value & "|" & Fields!City.Value)

Ajoutez une lgende de graphique. Vous pouvez utiliser la lgende de graphique intgre. Vous pouvez galement dsactiver la lgende de graphique intgre et suivre les tapes de la procdure ci-dessous pour crer votre lgende de graphique personnalise avec une rgion de donnes de tableau ou de matrice.

Pour crer une lgende personnalise

Ajoutez une rgion de donnes de tableau au rapport. Placez le tableau en regard du graphique et liez-le au mme dataset que le graphique.

Mettez en miroir la structure de groupement du graphique dans le tableau en ajoutant des groupes de tableaux. Si le graphique utilise des groupements de sries, ajoutez-les au tableau en joignant les groupes de tableaux bass sur la mme expression de groupe que celle des groupements de srie de graphique. Ajoutez ensuite, le cas chant, les groupements de catgorie de graphique en tant que groupes de tableaux internes. En rgle gnrale, si le graphique comporte m groupement de srie et n groupement de catgorie, ajoutez m+n groupes de tableaux pour votre lgende personnalise. Pour les groupes de tableaux individuels, affichez uniquement l'en-tte du groupe (qui contient la description de la lgende). Supprimez galement la ligne de dtails du tableau sauf si vous souhaitez utiliser les lignes de dtails pour simuler un tableau de donnes de graphique.

Crez la lgende personnalise. Ajoutez un rectangle pour le champ de couleur de la lgende personnalise. Vous pouvez par exemple l'ajouter la premire colonne du tableau. Comme indiqu l'tape 2, vous devez uniquement avoir des lignes d'en-tte de groupe dans le tableau . Le rectangle est destin au niveau le plus interne d'en-tte de groupe. Dfinissez la proprit BackgroundColor du rectangle sur l'expression quivalente utilise dans la couleur de remplissage du point de donnes du graphique. Dans le cas le plus classique, l'expression contient une seule valeur de groupement, comme dans le code suivant.
=Code.GetColor(Fields!Country.Value)

Pour le texte de la lgende, utilisez la mme expression que dans les expressions d'tiquette/de groupe de sries et de catgories ou faites des essais jusqu' ce que vous ayez cr le texte souhait de description de lgende.

Graphiques secteurs et anneaux La section tiquettes de lgende et de point de donnes dcrit la configuration d'tiquettes de points de donnes internes et externes pour les secteurs. Cette section traite quelques proprits supplmentaires des graphiques secteurs et des anneaux. Contrairement d'autres types de graphiques, un graphique secteurs ou un anneau comporte une seule dimension de groupements (c'est--dire une srie de donnes). Pour qu'un graphique secteurs ou un anneau ait deux dimensions, les graphiques devraient tre empils les uns sur les autres. Remarque Pendant la publication du rapport, Reporting Services convertit automatiquement les groupes de sries d'un graphique secteurs ou d'un anneau en groupes de catgories pour afficher les donnes comme une srie de donnes. Les graphiques secteurs sont souvent utiliss pour afficher les pourcentages relatifs des points de donnes. En gnral, le pourcentage (que vous pouvez par exemple utiliser pour l'affichage comme tiquette de point de donnes) est calcul en divisant l'expression de la valeur du point de donnes par le total de tout le graphique. Le code suivant en est un exemple.
=Sum(Fields!Sales.Value) / Sum(Fields!Sales.Value, "SalesChart")

Cette expression est ajoute en tant qu'expression d'tiquette de donnes, tel qu'illustr figure 16.

Figure 16. Calcul du pourcentage de l'tiquette de donnes

Par dfaut, les secteurs prsentent des bordures noires qui amliorent la visibilit de ces derniers. Cependant, comme illustr la figure 17 de la section suivante, vous pouvez remplacer la bordure par des paramtres spcifiques pour l'apparence du point de donnes. Si vous souhaitez que la couleur de la bordure corresponde la couleur du secteur, vous devez utiliser une palette de couleurs personnalise, tel qu'indiqu dans la section prcdente . En utilisant une palette de couleurs personnalise, vous pouvez dfinir la mme couleur pour le point de donnes (secteur) que pour la bordure en effectuant un appel dans une fonction de code personnalise, qui affecte les couleurs bases sur la valeur de groupement de catgorie. Ajout de tables de donnes au graphique Vous pouvez ajouter des donnes des dtails votre graphique. Si vous ajoutez des donnes directement dans le graphique, l'interprtation de ce dernier peut tre plus complexe. Il est donc recommand d'ajouter les informations dans la table de donnes. Un graphique est une mthode trs efficace de visualisation de la distribution gnrale des valeurs et d'identification des zones intressantes (par exemple, des valeurs trs petites et trs grandes). Un lecteur peut analyser les informations de manire plus dtaille en fonction des donnes de dtails sous-jacentes . Reporting Services propose trois mthodes pour ajouter de l'interactivit aux points de donnes de graphique. Voici ces mthodes :

Utilisez l'action Aller au rapport pour afficher les donnes de dtails en explorant un autre rapport bas sur les valeurs de groupes de catgories/sries en ajoutant ces dernires en tant que valeurs de paramtres d'exploration. Utilisez l'action Aller au signet pour aller une section (comme une table de donnes) dans le mme rapport. Utiliser l'action Aller l'URL pour gnrer un lien hypertexte vers une cible de navigation externe en dehors du rapport.

La figure 17 montre une version simplifie de l'exemple de rapport PiePercentage inclus dans ce livre blanc.

Figure 17. Graphique secteurs avec formatage et palette de couleurs personnaliss, et table de donnes (cliquez sur l'image pour l'agrandir) Pour crer une table de donnes

Crez un graphique secteurs avec une palette de couleurs personnalise. Le graphique secteurs de la figure 17 prsente deux groupements de catgories. Le groupement externe est bas sur l'anne de commande. Le groupement interne est bas sur la catgorie de produit. L'tape 2 de la procdure de cration d'une palette de couleurs personnalise dcrit la dfinition de la palette. Du fait de la prsence de deux groupements de catgorie, nous utilisons l'expression suivante qui gnre une cl composite transmise la fonction GetColor.
=Code.GetColor(Fields!OrderYear.Value & Fields!ProdCat.Value)

Si nous appliquons le mme appel de fonction GetColor la proprit de couleur de remplissage du point de donnes et la proprit de couleur de bordure du point de donnes, les secteurs ne prsentent pas la bordure noire par dfaut.

Affichez les tiquettes de point de donnes uniquement pour les secteurs qui reprsentent une partie du secteur dpassant les 4 % du secteur total. Pour ce faire, ajoutez la fonction suivante la section personnalise du code du rapport. L'lment important consiste renvoyer une chane avec une tiquette vide pour les secteurs dpourvus d'tiquette ; sans quoi, le contrle graphique affiche l'tiquette par dfaut pour ce secteur (l'tiquette par dfaut est la valeur de point de donnes sousjacentes).

Public Function GetLabel(ByVal currentValue As Double, ByVal totalValue As Double) As String If currentValue / totalValue < 0.04 Then Return " " Else Return Format(currentValue / totalValue, "P1") End If End Function

L'expression d'tiquette pour le point de donnes appelle la fonction GetLabel pour calculer le pourcentage/l'tiquette.
=Code.GetLabel(Sum(Fields!Sales.Value), Sum(Fields!Sales.Value, "SalesChart"))

Crez une table de donnes (matrice) pour le graphique. Ce graphique reprsente uniquement les donnes de ventes globales par anne et par catgorie de produit. Dans la matrice de donnes, nous aimerions regrouper les donnes de la mme faon. Nous ajoutons une rgion de donnes de matrice et nous la lions au mme dataset que le graphique. Nous ajoutons ensuite les champs OrderYear et ProdCat sous forme de groupes de lignes dans la matrice et regroupons les valeurs des Ventes dans la cellule de la matrice. Pour ajouter les sous-totaux, cliquez avec le bouton droit de la souris sur les cellules de l'en-tte de groupe dans la matrice et slectionnez Sous-total dans le menu contextuel. Remarque Le fait de cliquer sur le petit triangle vert dans un en-tte de matrice slectionne les proprits du Sous-total o vous pouvez dfinir explicitement des proprits de style pour les cellules de sous-totaux. Par exemple, vous pouvez afficher des cellules de sous-totaux avec une couleur d'arrire-plan diffrente pour les distinguer visuellement des autres donnes. Le dataset sous-jacent apporte une granularit de donnes plus fine que ce qui est affich sur le graphique. Nous pouvons profiter de cela dans la matrice de donnes en ajoutant un autre groupe de lignes (internes) bas sur la sous-catgorie, et le trimestre et les mois comme groupes de colonnes de matrice.

Ajoutez des descentes de niveau d'activation la matrice de donnes. Pour ajouter un effet de descente de niveau pour un groupe prcis, cliquez avec le bouton droit de la souris sur l'en-tte de groupe et modifiez les proprits du groupe. Dans l'onglet Visibilit de la bote de dialogue Proprits du groupe, slectionnez le nom de l'lment de rapport qui doit amliorer la visibilit du groupe actuel. En gnral, vous slectionnez le nom de l'lment de rapport de la zone de texte dans le groupe parent. S'il n'existe aucun groupe parent, vous pouvez ajouter une zone de texte dans l'angle de la

matrice et l'utiliser pour basculer vers le niveau de regroupement le plus extrieur dans la matrice. L'option Visibilit initiale, qui dfinit l'tat bascule initial, est galement dfinie sur l'onglet Visibilit du groupe. Dfinir cette option sur Visible indique le dveloppement initial et sur Masque indique la rduction initiale.

Ajustez l'image bascule initiale et l'tat de basculement. Si l'tat initial de la visibilit de basculement est dfini sur Visible, l'image bascule sur l'lment de rapport qui fait basculer ce groupe peut indiquer un signe plus (+). Pour afficher l'image bascule avec le signe moins (-), cliquez avec le bouton droit de la souris sur l'lment de rapport qui fait basculer le groupe ; il s'agit gnralement de la zone de texte de l'en-tte du groupe parent. Slectionnez Proprits dans le menu contextuel. Dans la bote de dialogue Proprits de la zone de texte, slectionnez l'onglet Visibilit et dfinissez l'aspect initial de l'image bascule. Comme la visibilit de basculement du groupe est dfinie sur Visible, l'aspect initial de la zone de texte doit tre dfini sur Dvelopp (-), comme le montre la figure 18.

Figure 18. Ajustement de l'aspect initial de l'image bascule

Ajoutez des signets pour connecter le graphique et la matrice de donnes (facultatif).

L'activation de la navigation vers les signets des points de donnes du graphique la matrice de donnes implique deux tapes. Tout d'abord, dfinissez les ID de signet dans la matrice de donnes. Ensuite, dfinissez l'action Aller au signet sur le point de donnes du graphique. Pour ajouter des signets dans la matrice des donnes, cliquez avec le bouton droit de la souris sur l'en-tte de groupe du groupe de lignes de l'anne de commande et slectionnez Proprits dans le menu contextuel. Dans la bote de dialogue Proprits de la zone de texte, slectionnez l'onglet Navigation et dfinissez l'expression Identificateur de signet en utilisant une expression qui gnre une chane : =CStr(Fields!OrderYear.Value). Ceci fournit nos cibles d'accs aux signets. Ouvrez la bote de dialogue Proprits du graphique et modifiez les proprits du point de donnes. Dans l'onglet Action, slectionnez Aller au signet et utilisez la mme expression que celle utilise pour l'identificateur de signet. Graphique en bulles et nuages de points Les graphiques en bulles et nuages de points diffrent des autres types de graphiques car, au lieu d'utiliser les valeurs de regroupement par catgorie comme les valeurs X, ils disposent de valeurs x explicites pour les points de donnes. Par consquent, les donnes peuvent tre regroupes (et agrges) dans une catgorie diffrente de la valeur indique sur l'axe des X. Par exemple, pour afficher les ventes de l'anne dernire pour des commerciaux individuels sur l'axe des X, vous pouvez ne pas vouloir agrger les valeurs Y si deux commerciaux ont des valeurs X identiques. L'exemple de rapport BubbleChart (figure 19) a un regroupement catgoriel bas sur le commercial, de sorte qu'il regroupe les donnes des ventes par commercial. Cependant, la valeur des ventes de l'anne dernire est affiche sur l'axe des X. Remarque Il est trs important de saisir la distinction entre la proprit de la valeur X du point de donnes et le regroupement des donnes du graphique bas sur les groupes de sries ou de catgories. Si vous concevez un graphique en bulles ou en nuages de points, celui-ci indique uniquement un point de donnes dans l'aperu, mais si vous espriez afficher plusieurs points diffrents, l'explication la plus plausible est qu'aucun groupe de catgories ou groupe de sries n'a t dfini. Si aucun groupe de catgories ou de sries n'a t dfini, les lignes de dataset sousjacentes sont agrges en un seul point de donnes avec des valeurs X et Y spcifiques. Dans certains cas, vous pouvez dfinir une expression de groupe de catgories ou de sries identique l'expression de la valeur X, mais, dans un graphique en bulles ou en nuages de points, il est prfrable d'ajouter un groupe de catgories ou de sries bas sur ce que les donnes reprsentent. Si le graphique regroupe les valeurs des ventes pour chaque commercial, le groupe de catgories ou de sries doit tre bas sur l'ID ou le nom du commercial, comme illustr dans l'exemple de rapport BubbleChart.

Figure 19. Graphique en bulles avec donnes de sries regroupes par commercial L'exemple de rapport StepFunctionChart propose un autre scnario utile pour les graphiques en nuages de points. Le graphique en nuages de points utilise un groupe de catgories bas sur des identificateurs de mesures. Pour certains jours, indiqus comme des valeurs X, il y a plusieurs mesures dans le dataset, indiques sur l'axe des Y, crant ainsi des paliers verticaux.

Figure 20. Graphique en nuages de points bas, par exemple, sur les mesures de capteurs Graphiques insrs au tableau

Parfois, vous avez une quantit inconnue de donnes au moment de l'excution et vous souhaitez accrotre de faon dynamique la taille des graphiques. Une mthode pour y parvenir consiste incorporer un graphique dans le groupe d'une autre rgion de donnes. Par exemple, vous pouvez utiliser une rgion de donnes en liste avec un groupe de dtails bas sur l'expression suivante :
=Ceiling(RowNumber(Nothing)/20)

Vous crez ainsi un groupe toutes les vingt lignes de dtails. L'incorporation d'un graphique dans cette liste cre des instances graphiques au moment de l'excution pour chaque groupe de vingt lignes. Pour crer une visualisation des donnes sous forme de barres horizontales, vous pouvez utiliser deux approches d'implmentation diffrentes :

Incorporez une image dote de valeurs de marge droite calcules de faon dynamique (voir figure 21). L'ajustement de la marge droite d'une image statique cre un effet de graphique barres, qui rsulte de l'tirement dynamique de l'image. Incorporez un graphique barres dot d'une valeur maximale calcule pour l'axe des Y (voir figure 23). Les deux approches sont implmentes cte cte dans l'exemple de rapport TableInlineCharts.

Figure 21. Graphique horizontal comparatif simul par une image incorpore et une marge dynamique Pour implmenter les visualisations horizontales bases sur des images incorpores

Concevez une image incorpore qui sera utilise pour la visualisation en barres . Une simple image dgrade fait gnralement l'affaire. Ajoutez l'image comme une image incorpore au rapport.

Ajoutez un tableau au groupe et visualisez les donnes. Concevez la structure de groupement du tableau. Vous pouvez placer la visualisation de l'image dans un en-tte de groupe ou dans la ligne de dtails du tableau. Ajoutez une image incorpore dans une nouvelle colonne du tableau. Slectionnez l'image incorpore l'tape 1 comme source de l'image.

Calculez la marge droite (ou gauche) de l'image. Crez une expression pour la proprit de marge droite (ou gauche) de l'lment de rapport de l'image. L'expression divise la valeur numrique visualiser par la valeur maximale. Multipliez ensuite la taille relative par la largeur de la colonne du tableau, comme dfini l'tape 2. Vous pouvez galement envisager l'utilisation des fonctions Math.Min ou Math.Max pour restreindre la marge une plage donne, le cas chant. Dans l'exemple de rapport TableInlineChart, la colonne du tableau a une largeur de 5 centimtres. Pour le calcul de la marge, nous utilisons l'unit de mesure des points, savoir 72 points par pouce (2,54 cm). Ainsi, en supposant que nous dfinissions la marge gauche sur 0 point, il y a une plage de 144 points pour l'option Marge droite. Le code suivant configure la marge.
=144 * (1.0 - Fields!UnitsInStock.Value / Max(Fields!UnitsInStock.Value, "DataSet1")) & "pt"

Figure 22. Calcul dynamique de la taille de la marge droite de l'image

Dfinissez la proprit de dimensionnement des images sur Ajuster. La marge dfinie lors de l'tape prcdente dtermine l'espace disponible ncessaire pour tirer l'image, gnrant ainsi l'effet de visualisation en barres .

L'approche de l'image incorpore prsente un inconvnient : l'image peut s'tirer si vous utilisez des polices ou de fines lignes dans l'image. L'utilisation d'un graphique pour la visualisation en ligne (figure 23) apporte davantage de matrise sur la visualisation et offre souvent de meilleurs rsultats.

Figure 23. Graphique horizontal comparatif bas sur un graphique incorpor dans l'en-tte de groupe du tableau Pour utiliser un graphique pour la visualisation horizontale

Ajoutez un tableau pour regrouper les donnes. Concevez la structure de groupement du tableau. N'oubliez pas que les graphiques peuvent tre uniquement placs dans l'en-tte ou le pied de page du tableau ou dans l'entte ou le pied de page du groupe.

Ajoutez une nouvelle colonne au tableau et placez le graphique dans un en-tte de groupe. Pour optimiser la zone de traage du graphique pour la visualisation en barres , appliquez les paramtres de proprits du graphique ci-dessous. Paramtres gnraux : dfinissez sur graphique barres , dsactivez la lgende. Donnes : Liez le graphique au mme dataset que le tableau parent ; ajoutez une valeur de point de donnes base sur la valeur visualiser. Axe des X : Dsactivez les tiquettes des axes, dsactivez les quadrillages, dfinissez les graduations sur Aucune. Axe des Y : Dsactivez les tiquettes des axes, dfinissez les graduations sur Aucune, dfinissez le maximum sur la valeur maximale du tableau la contenant ou du dataset. Ces actions sont ncessaires pour obtenir des tailles de barres correctes ; sinon, chaque instance de graphique ajusterait automatiquement l'chelle de l'axe des Y en fonction des valeurs de donnes pour ce groupe prcis.

Affinez la visualisation du graphique (facultatif). Essayez des paramtres de style de zone de traage du graphique, des principaux quadrillages de l'axe des Y, des effets 3D ou des paramtres de couleurs dynamiques pour affiner davantage la visualisation du graphique horizontal.

Extensibilit du graphique et cration manuelle de graphiques

Ce livre blanc fournit des informations sur la mise au point des paramtres graphiques et l'extension des capacits graphiques existantes avec des expressions et des fonctions de code personnalis. En outre, il existe des approches supplmentaires pour intgrer des fonctionnalits graphiques plus avances dans Reporting Services :

Intgrer des images graphiques gnres par des assemblys personnaliss. Implmenter l'extensibilit graphique sur la base de la nouvelle fonction d'lment de rapport personnalis de Reporting Services 2005. Utiliser des composants complmentaires Reporting Services 2005 tiers, qui proposent des fonctionnalits graphiques avances. Ils sont bass sur la fonction d'lment de rapport personnalis.

Pour intgrer des images gnrs par des assemblys personnaliss

Concevez et implmentez un assembly personnalis pour gnrer des images. L'assembly personnalis doit rcuprer seul les donnes, prendre en charge le regroupement/tri des donnes et gnrer l'image graphique. Remarque L'assembly personnalis doit renvoyer l'image sous forme d'octet[]. Il ne peut pas la renvoyer sous forme de System.Drawing.Image. Souvent, vous pouvez convertir un objet System.Drawing.Image avec un code similaire celui qui suit.
System.IO.MemoryStream renderedImage = new MemoryStream(); myChart.Save(renderedImage); renderedImage.Position = 0; return renderedImage.ToArray();

Ajoutez une image au rapport. Dfinissez le type d'image sur Base de donnes. Si l'image gnre est un bitmap au format d'image PNG, dfinissez la proprit type MIME de l'image sur image/png . Pour la proprit de valeur de l'image, utilisez une expression comme celle qui suit.
=MyCustomAssembly.GenerateChart()

Affichez le rapport en mode Aperu du Gnrateur de rapports pour vrifier que le rapport fonctionne correctement. Remarque Dans une configuration par dfaut, les assemblys personnaliss s'excutent en FullTrust, dans l'Aperu du Gnrateur de rapports. Ainsi, les oprations ncessitant certaines autorisations de scurit d'accs au code (comme l'entre/la sortie de fichier, la fourniture d'accs aux donnes, etc.) bnficient automatiquement de ces autorisations dans FullTrust.

Dployez l'assembly personnalis sur un serveur de rapports.

Assurez-vous que la configuration de la stratgie de scurit du serveur de rapports octroie les autorisations ncessaires votre assembly personnalis lors de l'excution ; dans le cas contraire, l'image n'est pas gnre. Pour plus d'informations, consultez Comprhension de la scurit d'accs au code dans Reporting Services de SQL Server 2005 Books Online. Comparaison entre les graphiques bass sur un CustomReportItem et les assemblys personnaliss L'utilisation de la fonction d'lment de rapport personnalis par rapport l'approche d'assembly personnalis est avantageuse plus d'un titre. Tout d'abord, vous pouvez crer votre composant de prise en charge la conception, qui s'intgre directement dans le Gnrateur de rapports. Ensuite, lors de l'excution, vous pouvez profiter du moteur de traitement de Reporting Services pour rcuprer les donnes et appliquer le groupement/le tri et les filtres. Le contrle d'excution CustomReportItem accde aux donnes traites et gnre une image de graphique avec une image interactive et les actions associes. Lisez et tudiez attentivement la documentation et les exemples avant de crer votre CustomReportItem. Vous trouverez des informations complmentaires sur les sites suivants :

Exemple d'lment de rapport personnalis dans SQL Server 2005 Books Online Informations sur les lments de rapport personnaliss dans le journal Web des piratages malveillants de Reporting Services de Chris Hays sur MSDN.

Haut de page

Conclusion
Ce livre blanc propose des astuces et des conseils sur les fonctionnalits de cration de graphiques de Reporting Services qui n'ont pas encore t traites dans les manuels, d'autres articles, les documents ou les prsentations. Il traite galement de la manire et des modalits d'utilisation de certaines options de fonctionnalit. Le livre blanc prsente et explique de manire approfondie un ensemble d'exemples de rapport montrant comment mieux exploiter les graphiques intgrs de Reporting Services lorsque vous utilisez des scnarios dfinis. Il dcrit par exemple l'ajout d'une analyse de Pareto ou le calcul des moyennes mobiles. Enfin, le livre aborde brivement l'extensibilit des Reporting Services, que vous pouvez utiliser pour intgrer les fonctionnalits externes (de cration de graphique) dans vos rapports. propos de l'auteur Robert M. Bruckner est ingnieur dveloppement logiciel avec le groupe Business Intelligence de Microsoft SQL Server. Le moteur de traitement des donnes et des rapports de SQL Server Reporting Services constitue sa spcialit.