Partager via


Regroupement de données dans un rapport (Concepteur de rapports Visual Studio)

Les données présentes dans les régions de données de tableau, de matrice et de liste 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. Vous pouvez aussi 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.

Définition des propriétés de groupe sur les régions de données

Les régions de données sont des éléments de rapport liés aux données permettant d'afficher des lignes de données répétitives. Vous pouvez définir des propriétés de groupe sur n'importe quelle région de données pour organiser la présentation des données.

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 utilisant la propriété Parent) peut comporter une et une seule expression de groupe.

Suivez les étapes ci-après 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.

  1. Créez un dataset basé sur la base de données AdventureWorks qui renvoie des données à partir de la requête suivante :

    SELECT FirstName, LastName, EmployeeID, ManagerID

  2. Ajoutez une définition de rapport client (.rdlc) au projet, puis ouvrez le rapport en mode de création graphique.

  3. Ajoutez une région de données de tableau à la mise en page du rapport.

  4. Dans la première cellule de détail de la table, tapez l'expression suivante :

    =Fields!FirstName.Value & " " & Fields!LastName.Value

  5. Cliquez avec le bouton droit sur le coin de la table, puis sélectionnez Propriétés.

  6. Dans l'onglet Groupe, cliquez sur Regroupement des détails.

  7. Dans l'onglet Général, tapez ou sélectionnez l'expression suivante dans la zone Expression :

    =Fields!EmployeeID.Value

  8. 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 l'exemple et la table ci-dessus, vous devez pour cela utiliser l'expression suivante pour la marge intérieure gauche de la zone de texte dans la première cellule de détail :

=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 les fonctions utilisables, consultez Fonctions intégrées pour les rapports (Concepteur de rapports Visual Studio).

Voir aussi

Tâches

Procédure : filtrer des données dans un rapport (Concepteur de rapports Visual Studio)

Concepts

Utilisation d'expressions dans un rapport (Concepteur de rapports Visual Studio)