Graphiques de compartimentage et en rayons de soleil dans un rapport paginé dans SQL Server Reporting Services (Générateur de rapports)
S’applique à : Générateur de rapports Microsoft (SSRS) Power BI Report Builder Concepteur de rapports dans SQL Server Data Tools
Les visualisations sous la forme de graphiques de compartimentage et en rayons de soleil du Générateur de rapports SQL Server sont parfaites pour représenter visuellement des données hiérarchiques dans un rapport paginé. Cet article présente une vue d’ensemble de l’ajout d’un graphique de compartimentage ou d’un graphique en rayons de soleil à un rapport. Il inclut également un exemple de requête AdventureWorks pour vous aider à démarrer.
Graphique de compartimentage
Un graphique de compartimentage divise la zone de graphique en rectangles représentant les différents niveaux et tailles relatives de la hiérarchie de données. Le mappage ressemble à arbre, avec un tronc, des branches et des ramifications de plus en plus petites. Chaque rectangle est subdivisé en rectangles plus petits représentant un niveau inférieur dans la hiérarchie. Les rectangles de niveau supérieur du graphique de compartimentage sont disposés avec le plus grand rectangle en haut à gauche du graphique et le plus petit en bas à droite. À l’intérieur d’un rectangle, le niveau suivant dans la hiérarchie est également organisé en rectangles allant de l’angle supérieur gauche à l’angle inférieur droit.
Dans l’exemple de graphe de compartimentage suivant, le plus grand territoire est « Southwest », et le plus petit « Germany ». Dans le territoire« Southwest », les « Road Bikes » sont plus importants que les « Mountain Bikes ».
Pour insérer un graphique de compartimentage et configurer l’échantillon de données Adventureworks
Notes
Avant d’ajouter un graphique à votre rapport, créez une source de données et un jeu de données. Pour obtenir des exemples de données et un exemple de requête, consultez Échantillon de données Adventureworks.
Cliquez avec le bouton droit sur l’aire de conception, puis sélectionnez Insérer>Graphique. Sélectionnez l’icône Compartimentage.
Repositionnez et redimensionnez le graphique. Pour l’échantillon de données, un graphique de 5 pouces de large est un bon début.
Ajoutez les champs suivants à partir de l’échantillon de données :
- Valeurs : LineTotal
- Groupes de catégories dans l'ordre suivant :
- CategoryName (Nom de catégorie)
- SubcategoryName (Nom de sous-catégorie)
- Groupes de séries : TerritoryName
Pour optimiser la taille de page pour la forme générale d’un graphique de compartimentage, positionnez la légende en bas.
Pour ajouter des info-bulles qui affichent la sous-catégorie et le total de la ligne, cliquez sur LineTotal (Total de la ligne), puis sélectionnez Propriétés de la série.
Définissez la propriété Tooltip (Info-bulle) sur la valeur suivante :
=Fields!SubcategoryName.Value &": " &Format(Sum(Fields!LineTotal.Value),"C")
Pour plus d’informations, consultez Affichage d’info-bulles dans une série (Générateur de rapports et SSRS).
Remplacez le titre par défaut du graphique par Categorized Sales by Territory (Ventes classées par territoire).
Le nombre de valeurs d’étiquette qui s’affichent est affecté par la taille de la police, la taille de la zone de graphique et la taille des différents rectangles. Pour afficher d’autres étiquettes, définissez la propriété Label Font (Police de l’étiquette) de LineTotal (Total de la ligne) sur 10 pt, à la place de la valeur par défaut 8 pt.
Graphique en rayons de soleil
Dans un graphe en rayons de soleil, la hiérarchie est représentée par une série de cercles. Le plus haut niveau de la hiérarchie se trouve au centre, et les niveaux inférieurs sont des anneaux affichés à l’extérieur du centre. Le niveau le plus bas de la hiérarchie est l’anneau extérieur.
Pour insérer un graphique en rayons de soleil et configurer l’échantillon de données Adventureworks
Notes
Avant d’ajouter un graphique à votre rapport, créez une source de données et un jeu de données. Pour obtenir des exemples de données et un exemple de requête, consultez Échantillon de données Adventureworks.
Cliquez avec le bouton droit sur l’aire de conception, puis sélectionnez Insérer>Graphique. Sélectionnez l’icône Rayons.
Repositionnez et redimensionnez le graphique. Pour l’échantillon de données, un graphique de 5 pouces de large est un bon début.
Ajoutez les champs suivants à partir de l’échantillon de données :
- Valeurs : LineTotal
- Groupes de catégories dans l'ordre suivant :
- CategoryName (Nom de catégorie)
- SubcategoryName (Nom de sous-catégorie)
- SalesReasonName (Nom du motif de vente)
- Groupes de séries : TerritoryName
Pour optimiser la taille de page pour la forme générale d’un graphique en rayons de soleil, positionnez la légende en bas.
Remplacez le titre par défaut du graphique par Categorized Sales by Territory (Ventes classées par territoire, avec motif de vente).
Pour ajouter les valeurs des groupes de catégories au graphique en rayons de soleil en tant qu’étiquettes, définissez la propriété d’étiquette comme suit : Visible=true et UseValueAsLabel=False.
Les valeurs d’étiquette qui s’affichent sont affectées par la taille de la police, la taille de la zone de graphique et la taille des différents rectangles. Pour afficher d’autres étiquettes, définissez la propriété Label Font (Police de l’étiquette) de LineTotal (Total de la ligne) sur 10 pt, à la place de la valeur par défaut 8 pt.Si vous voulez utiliser une autre plage de couleurs, modifiez la propriété Palette du graphique.
Échantillon de données Adventureworks
Cette section présente un exemple de requête et la procédure de base pour la création d’une source de données et d’un jeu de données dans le Générateur de rapports. Si votre rapport contient déjà une source de données et le jeu de données, vous pouvez ignorer cette section.
La requête retourne des données de détail des commandes client d’AdventureWorks par territoire de vente, catégorie de produit, sous-catégorie de produit et motif de vente.
Obtenez les données.
Les exemples de code Transact-SQL de cet article sont fondés sur l’échantillon de base de données
AdventureWorks2022
ouAdventureWorksDW2022
fourni, que vous pouvez télécharger à partir de la page d’accueil Échantillons et projets communautaires Microsoft SQL Server.Créez une source de données.
Sous Données du rapport, cliquez avec le bouton droit sur Sources de données, puis sélectionnez Ajouter une source de données.
Cliquez sur Utiliser une connexion incorporée dans mon rapport.
Dans Type de connexion, sélectionnez Microsoft SQL Server.
Entrez la chaîne de connexion à votre serveur et à la base de données. Par exemple :
Data Source=[server name];Initial Catalog=AdventureWorks2022
Pour vérifier la connexion, cliquez sur le bouton Tester la connexion, puis sélectionnez OK.
Pour plus d’informations sur la création d’une source de données, consultez Ajout et vérification d’une connexion de données (Générateur de rapports et SSRS).
Créez un jeu de données.
Sous Données du rapport, cliquez avec le bouton droit sur Jeux de données, puis sélectionnez Ajouter un jeu de données.
Cliquez sur Utiliser un dataset incorporé dans mon rapport.
Sélectionnez la source de données que vous avez créée.
Sélectionnez le type de requête Texte, puis copiez et collez la requête suivante dans la zone de texte Requête :
SELECT Sales.SalesOrderHeader.SalesOrderID, Sales.SalesOrderHeader.OrderDate, Sales.SalesOrderDetail.SalesOrderDetailID, Sales.SalesOrderDetail.ProductID, Sales.SalesOrderDetail.LineTotal, Sales.SalesOrderDetail.UnitPrice, Sales.SalesOrderDetail.OrderQty, Production.Product.Name, Production.Product.ProductNumber, Sales.SalesTerritory.TerritoryID, lower(Sales.SalesTerritory.Name) AS TerritoryName, Production.ProductSubcategory.Name AS SubcategoryName, Production.ProductCategory.Name AS CategoryName, Sales.SalesReason.SalesReasonID, Sales.SalesReason.Name AS SalesReasonName FROM Sales.SalesOrderDetail INNER JOIN Sales.SalesOrderHeader ON Sales.SalesOrderDetail.SalesOrderID = Sales.SalesOrderHeader.SalesOrderID INNER JOIN Production.Product ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID INNER JOIN Sales.SalesTerritory ON Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID AND Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID AND Sales.SalesOrderHeader.TerritoryID = Sales.SalesTerritory.TerritoryID INNER JOIN Production.ProductSubcategory ON Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID AND Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID AND Production.Product.ProductSubcategoryID = Production.ProductSubcategory.ProductSubcategoryID INNER JOIN Production.ProductCategory ON Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID AND Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID AND Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID INNER JOIN Sales.SalesOrderHeaderSalesReason ON Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID AND Sales.SalesOrderHeader.SalesOrderID = Sales.SalesOrderHeaderSalesReason.SalesOrderID INNER JOIN Sales.SalesReason ON Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID AND Sales.SalesOrderHeaderSalesReason.SalesReasonID = Sales.SalesReason.SalesReasonID
Sélectionnez OK.
Pour plus d’informations sur la création d’un jeu de données, consultez Création d’un jeu de données partagé ou incorporé (Générateur de rapports et SSRS).