Regroupement de données dans un rapport
Mis à jour : 14 avril 2006
Les données présentes dans chacune des régions de données (tableau, matrice, liste et graphique) d'un rapport peuvent être regroupées d'après des champs et des expressions. Vous pouvez utiliser des groupes à l'intérieur d'un tableau afin de distinguer des sections logiques de données au sein du tableau. En outre, vous pouvez ajouter des sous-totaux et d'autres expressions à l'en-tête ou au pied de page du groupe. Dans une matrice, les groupes sont affichés sous la forme de lignes ou de colonnes dynamiques. Vous pouvez imbriquer des groupes dans d'autres groupes et y ajouter des sous-totaux. Vous pouvez utiliser des listes pour créer des groupes séparés dans un rapport et même créer des groupes imbriqués en plaçant des listes dans d'autres listes.
Pour savoir comment regrouper des données dans les régions de données, consultez :
- Procédure : ajouter un groupe à un tableau (Générateur de rapports)
- Procédure : ajouter une colonne ou une ligne dynamique à une matrice (Concepteur de rapports)
- Procédure : ajouter un groupe à une liste (Concepteur de rapports)
Hiérarchies récursives
Une hiérarchie récursive est une hiérarchie de données dans laquelle toutes les relations parent-enfant sont représentées dans les données. Par exemple, il est possible de créer un organigramme illustrant les relations entre directeur et employé à l'aide d'une hiérarchie récursive. Dans une hiérarchie de ce type, la table comporte une colonne pour les matricules (ID) des employés et une autre pour ceux des directeurs. L'ID de directeur fait référence à l'ID d'employé d'un autre employé, ce qui donne une hiérarchie du personnel.
Pour construire une hiérarchie récursive, vous devez définir certaines propriétés pour un groupe dans une région de données. Utilisez un champ contenant un ID unique (par exemple, l'ID d'employé) en tant qu'expression de groupe et ensuite un champ contenant l'ID du parent (par exemple, l'ID de directeur) dans la propriété Parent. Un groupe défini en tant que hiérarchie récursive (c'est-à-dire un groupe employant la propriété Parent) peut comporter une et une seule expression de groupe.
Inspirez-vous du didacticiel suivant pour créer une hiérarchie récursive utilisant la table Employee de la base de données AdventureWorks. Ce didacticiel suppose que vous savez comment créer des rapports, des datasets, des requêtes et des tables. Pour plus d'informations sur ces opérations, consultez les sections qui y sont consacrées dans la documentation.
Dans la vue Données, créez un dataset fondé sur la base de données AdventureWorks.
Dans le dataset, utilisez la requête suivante :
SELECT FirstName, LastName, EmployeeID, ManagerID FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID=C.ContactID
En mode Disposition, créez une région de données de tableau.
Dans la première cellule de détail de la table, tapez l'expression suivante :
=Fields!FirstName.Value & " " & Fields!LastName.Value
Cliquez avec le bouton droit sur le coin de la table, puis sélectionnez Propriétés.
Dans l'onglet Groupe, cliquez sur Regroupement des détails.
Dans l'onglet Général, tapez ou sélectionnez l'expression suivante dans la zone Expression :
=Fields!EmployeeID.Value
Dans la zone Groupe parent, tapez ou sélectionnez l'expression suivante :
=Fields!ManagerID.Value
Fonction Level
Vous pouvez utiliser la fonction Level dans la définition de la marge intérieure de la zone de texte pour appliquer un retrait aux noms des employés en fonction du niveau que ceux-ci occupent dans la hiérarchie. Si nous reprenons la table de l'exemple ci-dessus, sélectionnez la zone de texte dans la première cellule de détail. Ouvrez la fenêtre de propriétés de la zone de texte. Développez le nœud Marge, puis cliquez sur la propriété Left. Choisissez <Expression...> dans la zone de liste déroulante, puis entrez ce qui suit :
=Convert.ToString(2 + (Level()*10)) + "pt"
Les propriétés de marge intérieure nécessitent toutes une chaîne au format nnxx, où nn est un nombre et xx, une unité de mesure. Par défaut, la marge intérieure d'une zone de texte est de 2 points. L'expression ci-dessus crée une chaîne utilisant la fonction Level pour agrandir la marge intérieure en fonction du niveau de l'employé. Ainsi, une ligne de niveau 1 implique une marge intérieure de 12 points (2 + (1*10)), alors qu'une ligne de niveau 3 correspond à une marge intérieure de 32 points (2 + (3*10)).
Pour plus d'informations sur la fonction Level, consultez Fonction Level (Reporting Services).
Voir aussi
Concepts
Utilisation de régions de données
Utilisation de régions de données de tableau
Utilisation de régions de données de matrice
Utilisation de régions de données de type liste
Utilisation de régions de données de graphique
Aide et Informations
Assistance sur SQL Server 2005
Historique des modifications
Version | Historique |
---|---|
14 avril 2006 |
|