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 :

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.

  1. Dans la vue Données, créez un dataset fondé sur la base de données AdventureWorks.

  2. 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
    
  3. En mode Disposition, créez une région de données de tableau.

  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 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

Contenu modifié :
  • La requête a été modifiée pour qu'elle fonctionne avec la base de données AdventureWorks au lieu de la base AdventureWorks2000.