Partage via


Filtrer, regrouper et trier des données dans les rapports paginés du Générateur de rapports

S’applique à : Générateur de rapports Microsoft (SSRS) Power BI Report Builder Report Designer dans SQL Server Data Tools

Dans un rapport paginé, les expressions sont utilisées pour aider à contrôler, organiser et trier les données de rapport. Par défaut, lorsque vous créez des datasets et concevez la mise en page de rapport, les propriétés des éléments de rapport prennent automatiquement la valeur d’expressions. Ce comportement est basé sur les champs, paramètres et autres éléments du dataset qui apparaissent dans le volet Données de rapport. Vous pouvez également ajouter un bouton de tri interactif à une cellule de tableau ou de matrice pour permettre à un utilisateur de modifier interactivement l’ordre de tri des lignes pour des groupes ou pour des lignes situées dans des groupes.

  • Expressions de filtre : une expression de filtre teste les données à inclure ou à exclure selon une comparaison que vous spécifiez. Les filtres sont appliqués aux données d'un rapport une fois que ces dernières ont été récupérées à partir d'une connexion de données. Vous pouvez ajouter n’importe quelle combinaison de filtres aux éléments suivants :

    • Définition du dataset partagé sur le serveur de rapports.
    • Instance de dataset partagé ou dataset incorporé dans un rapport.
    • Région de données, telle qu’une table ou un graphique.
    • Groupe de régions de données, tel qu’un groupe de lignes dans une table ou un groupe de catégories dans un graphique.
  • Expressions de groupe : une expression de groupe organise les données en fonction d’un champ de dataset ou de toute autre valeur. Les expressions de groupe sont créées automatiquement lorsque vous générez la mise en page de rapport. Le processeur de rapports évalue les expressions de groupe une fois que les filtres sont appliqués aux données et lorsque les données de rapport et les régions de données sont combinées. Vous pouvez personnaliser une expression de groupe après l’avoir créée.

  • Expressions de tri : une expression de tri contrôle l’ordre dans lequel les données s’affichent dans une région de données. Les expressions de tri sont créées automatiquement lorsque vous générez la mise en page de rapport. Par défaut, l'expression de tri d'un groupe a la même valeur que l'expression de groupe. Vous pouvez personnaliser une expression de tri après l’avoir créée.

  • Tri interactif : pour permettre à un utilisateur de trier ou d’inverser l’ordre de tri d’une colonne, vous pouvez ajouter un bouton de tri interactif à une cellule d’en-tête de colonne ou d’en-tête de groupe dans une table ou une matrice.

Pour aider vos utilisateurs à personnaliser les expressions de filtre, de groupe ou de tri, vous pouvez modifier une expression afin d'ajouter une référence à un paramètre de rapport. Pour plus d’informations, consultez Paramètres des rapports paginés (Générateur de rapports).

Pour plus d’informations et pour obtenir des exemples, consultez les articles suivants :

Remarque

Il est possible de créer et de modifier des fichiers de définition de rapports (.rdl) paginés dans le Générateur de rapports Microsoft, dans Power BI Report Builder et dans le Concepteur de rapports de SQL Server Data Tools.

Filtrer les données dans un rapport

Les filtres sont les éléments d’un rapport qui permettent de contrôler les données une fois qu’elles ont été récupérées à partir de la connexion de données. Utilisez des filtres lorsque vous ne pouvez pas modifier une requête de dataset pour filtrer les données avant qu’elles ne soient récupérées à partir d’une source de données externe.

Lorsque c’est possible, générez des requêtes de dataset qui retournent uniquement les données que vous devez afficher dans le rapport. Lorsque vous réduisez la quantité des données qui doivent être récupérées et traitées, vous contribuez à améliorer les performances du rapport. Pour plus d’informations, consultez Jeux de données incorporés dans le rapport et jeux de données partagés (Générateur de rapports et SSRS).

Une fois les données récupérées à partir de la source de données externe, vous pouvez ajouter des filtres aux éléments suivants :

  • DataSets.
  • Régions de données.
  • Groupes de régions de données, y compris les groupes de détails.

Les filtres sont appliqués au moment de l’exécution d’abord sur le dataset, puis ils passent à la région de données. Les filtres sont ensuite appliqués au groupe, dans l’ordre descendant pour les hiérarchies de groupes. Dans une table, une matrice ou une liste, les filtres des groupes de lignes, des groupes de colonnes et des groupes adjacents sont appliqués indépendamment. Dans un graphique, les filtres des groupes de catégories et des groupes de séries sont appliqués indépendamment. Pour plus d’informations, consultez Ajouter des filtres de datasets, des filtres de régions de données et des filtres de groupes à un rapport paginé (Générateur de rapports).

Pour chaque filtre, vous spécifiez une équation de filtre. Une équation de filtre comprend trois éléments :

  • Champ ou expression de dataset qui spécifie les données à filtrer.
  • Opérateur.
  • Valeur à comparer.

Seules les valeurs de données qui correspondent à la condition de filtre sont incluses lorsque l’élément est traité.

Pour aider vos utilisateurs à contrôler les données d’un rapport, vous pouvez inclure des paramètres dans les expressions de filtre. Pour plus d’informations, consultez Références à la collection de paramètres dans un rapport paginé (Générateur de rapports).

Pour personnaliser une vue pour chaque utilisateur, vous pouvez inclure une référence à un champ prédéfini UserID dans un filtre. Pour plus d’informations, consultez Références aux collections Globals et User intégrées dans un rapport paginé (Générateur de rapports).

Regrouper des données dans un rapport

Les groupes permettent d'organiser les données dans un rapport afin de les afficher ou de calculer des valeurs d'agrégat. En comprenant comment définir des groupes et utiliser leurs fonctionnalités, vous parviendrez à concevoir des rapports plus concis.

Les expressions de groupe sont créées automatiquement lorsque vous :

  • réorganisez des champs de dataset dans un Assistant Tableau, Matrice ou Graphique ou faites correspondre des champs dans l’Assistant Carte ;
  • ajoutez un champ à la zone Groupes de lignes ou Groupes de colonnes du volet Regroupement dans un tableau, une matrice ou une liste ;
  • ajoutez un champ à la zone Groupes de catégories ou Groupes de séries du volet Données du graphique dans un graphique ;
  • spécifiez un champ pour faire correspondre des éléments cartographiques à des données analytiques dans l’élément de menu contextuel Données de couche dans une carte.

Un groupe fait partie de la définition de rapport. Chaque groupe a un nom. Par défaut, le nom de groupe est basé sur le champ de dataset auquel il correspond.

Dans une région de données de table ou de matrice, vous pouvez créer plusieurs groupes de lignes et groupes de colonnes. Vous pouvez afficher vos données selon une hiérarchie visuelle en organisant des groupes imbriqués, des groupes adjacents et des groupes de hiérarchies récursives (par exemple un organigramme).

Le nom de groupe identifie une étendue d'expression. Vous pouvez spécifier le nom d’un groupe en tant qu’étendue dans laquelle vous pouvez :

  • calculer des agrégats ;
  • organiser des données hiérarchiquement et activer/désactiver l’affichage des nœuds enfants des nœuds parents dans un rapport d’extraction ;
  • afficher des vues différentes des mêmes données sur plusieurs régions de données ;
  • visualiser les données de synthèse dans un tableau, une matrice, un graphique, une jauge ou une carte.

Pour plus d’informations, consultez Étendue des expressions pour les totaux, les agrégats et les collections intégrées dans un rapport paginé (Générateur de rapports).

Pour effectuer un regroupement sur plusieurs champs du dataset, ajoutez chaque champ à l'ensemble d'expressions de groupe. Vous pouvez également écrire vos propres expressions de groupe dans Microsoft Visual Basic. Par exemple, vous pouvez effectuer un regroupement selon une plage de valeurs ou utiliser un paramètre de rapport pour permettre aux utilisateurs de sélectionner le mode de regroupement de données dans une région de données. Pour plus d’informations, consultez Exemples d’expressions de groupe dans des rapports paginés (Générateur de rapports).

Afin de réduire le volume de données sur chaque page et mieux gérer les performances de la présentation du rapport, vous pouvez ajouter des sauts de page avant et après chaque groupe ou instance de groupe. Pour plus d’informations, consultez Ajouter un saut de page à un rapport paginé (Générateur de rapports).

La création de groupes de régions de données est une façon d'organiser les données d'un rapport. Il existe plusieurs autres façons d'organiser les données, avec chacune leurs avantages. Pour plus d’informations, consultez Extraction, exploration hiérarchique, sous-rapports et régions de données imbriquées dans un rapport paginé (Générateur de rapports).

Définir des variables de groupe

Lorsque vous définissez un groupe, vous pouvez créer une variable de groupe à utiliser dans les expressions qui se limitent à ce groupe et sont accessibles à partir de groupes imbriqués. Une variable de groupe est calculée une fois par instance de groupe, et vous pouvez y accéder à partir des expressions des groupes enfants. Par exemple, pour les données regroupées par région et sous-région, vous pouvez calculer une taxe pour chaque région et utiliser cette taxe dans les calculs du groupe de sous-régions.

Pour plus d’informations, consultez Références à des variables de rapport et de groupe dans un rapport paginé (Générateur de rapports) et Étendue des expressions pour les totaux, les agrégats et les collections intégrées dans un rapport paginé (Générateur de rapports).

Groupes et étendue dans les régions de données

Pour fournir plusieurs vues de données à partir du même jeu de données, vous pouvez spécifier les mêmes expressions de groupe pour chaque région de données. Par exemple, vous pouvez afficher des données par catégories dans un tableau afin d'afficher toutes les données de détail, et faire de même dans un graphique à secteurs afin d'afficher des agrégats, ce qui facilite la visualisation de chaque catégorie par rapport à l'ensemble du dataset. Pour plus d’informations, consultez Lier plusieurs régions de données à un même dataset dans un rapport paginé (Générateur de rapports).

Lorsque vous imbriquez une région de données dans une cellule de tableau, de matrice ou de liste, vous limitez automatiquement l’étendue des données aux appartenances aux groupes les plus profondes de la cellule. Par exemple, supposons que vous ajoutiez un graphique à une cellule située à la fois dans un groupe de lignes et dans un groupe de colonnes. Les données disponibles dans ce graphique sont limitées à l'instance de groupe de lignes la plus profonde et à l'instance de groupe de colonnes la plus profonde au moment de l'exécution. Pour plus d’informations, consultez Étendue des expressions pour les totaux, les agrégats et les collections intégrées dans un rapport paginé (Générateur de rapports).

Trier les données dans un rapport

Pour maîtriser l'ordre de tri des données dans votre rapport, vous pouvez trier les données dans une requête de dataset ou définir une expression de tri pour un groupe ou une région de données. Vous pouvez également ajouter des boutons de tri interactif aux tableaux et aux matrices pour permettre à un utilisateur de modifier l'ordre de tri des lignes.

Les trois types de tri peuvent être associés dans un même rapport. Par défaut, l’ordre de tri est déterminé par l’ordre dans lequel les données sont retournées par la requête de dataset. Les expressions de tri sont appliquées dans la région de données et le groupe de régions de données. Les tris interactifs sont appliqués après les expressions de tri.

Pour les expressions qui contiennent des fonctions d’agrégation, l’ordre de tri n’affecte pas la plupart des résultats. L’ordre de tri affecte les valeurs de retour des fonctions d’agrégation suivantes : Premier, Dernier et Précédent. Pour plus d’informations, consultez Fonctions du Générateur de rapports – Informations de référence sur les fonctions d’agrégation dans les rapports paginés (Générateur de rapports).

Trier des données dans une requête de jeu de données

Afin de pré-trier les données avant leur extraction pour un rapport, incluez l’ordre de tri dans la requête de dataset. Le tri des données dans la requête est effectué par la source de données et non pas par le processeur de rapports.

Pour une source de données de type Microsoft SQL Server, vous pouvez ajouter une clause ORDER BY à la requête de dataset. Par exemple, la requête Transact-SQL suivante trie les colonnes « Sales » et « Region by Sales » dans la table SalesOrders par ordre décroissant : SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC.

Notes

Toutes les sources de données ne permettent pas de spécifier l'ordre de tri dans la requête.

Trier des données avec des expressions de tri

Pour trier des données dans le rapport après leur extraction de la source de données, vous pouvez définir des expressions de tri pour une région de données du tableau matriciel ou un groupe, notamment le groupe Détails. La liste suivante décrit l'effet de la définition d'expressions de tri sur différents éléments :

  • Région de données de tableau matriciel : définissez des expressions de tri sur une région de données de type liste, table ou matrice pour contrôler l’ordre de tri des données dans cette région de données après l’application de filtres de dataset et de région de données lors de l’exécution.

  • Groupe de régions de données de tableau matriciel : définissez des expressions de tri pour chaque groupe, dont le groupe Détails, pour contrôler l’ordre de tri des instances de groupe. Par exemple, dans le groupe Détails, vous contrôlez l’ordre des lignes de détails. Pour un groupe enfant, vous contrôlez l'ordre des instances de groupe à l'intérieur du groupe parent. Par défaut, lorsque vous créez un groupe, l'expression de tri est définie sur l'expression de groupe et l'ordre croissant.

    Si vous n’avez qu’un seul groupe Détails, vous pouvez indifféremment définir une expression de tri dans la requête, dans la région de données ou dans le groupe Détails.

  • Région de données de graphique : définissez une expression de tri pour les groupes de catégories et de séries afin de contrôler l’ordre de tri des points de données. Par défaut, l'ordre des points de données est également l'ordre des couleurs dans la légende du graphique. Pour plus d’informations, consultez Mettre en forme les couleurs d’une série sur un graphique de rapport paginé (Générateur de rapports).

  • Élément de rapport cartographique : en règle générale, vous n’avez pas besoin de trier des données pour une région de données cartographiques, car la carte regroupe les données à afficher sur les éléments cartographiques.

  • Région de données de jauge : en règle générale, vous n’avez pas besoin de trier les données dans une région de données de jauge, la jauge affichant une valeur unique relative à une plage. Si vous devez trier les données dans une jauge, définissez d'abord un groupe, puis l'expression de tri pour ce dernier.

Trier selon une valeur différente

Vous pouvez trier les lignes d’une région de données en fonction d’une autre valeur que la valeur de champ. Par exemple, le champ Size contient des valeurs texte qui correspondent à small, medium, large et extra large. Par défaut, l’expression de tri d’un groupe de lignes en fonction de Size est également appelée [Size]. Pour avoir un meilleur contrôle sur les données triées, vous pouvez ajouter un champ à la requête de dataset dans le but de définir l’ordre de tri souhaité.

Vous pouvez également définir un dataset qui inclut uniquement les tailles et une valeur qui spécifie l'ordre souhaité. Vous pouvez modifier l'expression de tri afin d'utiliser la fonction Lookup pour la valeur d'ordre de tri.

Par exemple, la requête Transact-SQL suivante définit un jeu de données nommé Sizes. La requête utilise une instruction CASE pour définir une valeur d’ordre de tri SizeSortOrder pour chaque valeur de Size :

SELECT Size,   
  CASE Size  
        WHEN 'S' THEN 1  
        WHEN 'M' THEN 2    
        WHEN 'L' THEN 3  
        WHEN 'XL' THEN 4  
        ELSE 0  
  END as SizeSortOrder  
FROM Production.Product  

Dans un tableau qui comporte un groupe de lignes basé sur Size, vous pouvez modifier l’expression de tri du groupe afin d’utiliser une fonction Lookup pour rechercher le champ numérique qui correspond à la valeur de size. L’expression est semblable à cet exemple :

=Lookup(Fields!Size.Value, Fields!Size.Value, Fields!SizeSortOrder.Value, "Sizes")  

Pour plus d’informations, consultez Trier des données dans une région de données dans un rapport paginé (Générateur de rapports) et Fonctions du Générateur de rapports – Fonction Lookup dans un rapport paginé (Générateur de rapports).

Ajouter un tri interactif pour l’utilisateur

Pour permettre à un utilisateur de modifier l'ordre de tri des données de rapport dans un tableau ou une matrice, vous pouvez ajouter des boutons de tri interactif aux en-têtes de colonnes ou aux en-têtes de groupes. Les utilisateurs peuvent cliquer sur le bouton pour basculer l’ordre de tri. Le tri interactif est pris en charge dans les formats de rendu qui permettent l'intervention de l'utilisateur, tels que le format HTML.

Vous ajoutez des boutons de tri interactif à une zone de texte dans une cellule de région de données de tableau matriciel. Par défaut, chaque cellule contient une zone de texte. Dans les propriétés de la zone de texte, spécifiez quelle partie d’une région de données de table ou de matrice doit être triée (les valeurs du groupe parent, les valeurs du groupe enfant ou les lignes de détails). Vous spécifiez les données que vous souhaitez trier et s’il faut appliquer l’expression de tri à d’autres éléments de rapport qui ont une relation homologue. Par exemple, si une table et un graphique qui fournissent des vues sur le même dataset sont contenus dans un rectangle, ils constituent des régions de données homologues. Lorsqu'un utilisateur bascule l'ordre de tri de la table, l'ordre de tri du graphique bascule également. Pour plus d’informations, consultez Tri interactif dans un rapport paginé (Générateur de rapports).

Rubriques de procédures