Filtrer, regrouper et trier des données (Générateur de rapports et SSRS)
Dans un rapport, 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 en fonction des champs, paramètres et autres éléments de dataset qui s'affichent dans le volet des données de rapport. Vous pouvez également ajouter un bouton de tri interactif à une cellule de tableau ou de matrice afin de 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 de dataset partagé sur le serveur de rapports, instance de dataset partagé ou dataset incorporé dans un rapport, région de données telle qu'un tableau ou un graphique, ou groupe de régions de données, par exemple un groupe de lignes dans un tableau 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 sa création.
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 sa création.
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 un tableau 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 de rapport (Générateur de rapports et SSRS).
Pour plus d'informations et pour obtenir des exemples, consultez les rubriques suivantes :
Exemples d'expressions de groupe (Générateur de rapports et SSRS)
Exemples d'équations de filtre (Générateur de rapports et SSRS)
[!REMARQUE]
Vous pouvez créer et modifier des définitions de rapport (.rdl) dans le Générateur de rapports et dans le Concepteur de rapports dans SQL Server Data Tools. Chaque environnement de création offre différentes possibilités pour créer, ouvrir et enregistrer des rapports et des éléments connexes. Pour plus d'informations, consultez Conception de rapports dans le Concepteur de rapports et le Générateur de rapports (SSRS) sur le site Web Microsoft.
Dans cet article
Filtrage des données dans le rapport
Regroupement des données dans le rapport
Tri des données dans le rapport
Ajout du tri interactif pour l'utilisateur
Rubriques de procédures
Dans cette section
Sections connexes
Filtrage des données dans le 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 Datasets incorporés dans le rapport et datasets partagés (Générateur de rapports et SSRS).
Après avoir récupéré les données à partir de la source de données externe, vous pouvez ajouter des filtres aux datasets, aux régions de données et aux groupes de régions de données, notamment les groupes de détails. Les filtres sont appliqués dans un premier temps au moment de l'exécution sur le dataset, puis sur la région de données, puis sur le groupe, dans l'ordre de haut en bas des hiérarchies de groupe. 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 (Générateur de rapports et SSRS).
Pour chaque filtre, vous spécifiez une équation de filtre. Une équation de filtre comprend un champ ou une expression de dataset qui identifie les données à filtrer, un opérateur et une valeur de comparaison. Seules les valeurs de données qui correspondent à la condition de filtre sont incluses lorsque l'élément est traité.
Pour permettre à vos utilisateurs de 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 Parameters (Générateur de rapports et SSRS).
Pour personnaliser une vue pour chaque utilisateur, vous pouvez inclure une référence à un champ UserID dans un filtre. Pour plus d'informations, consultez Références à des champs Globals et Users prédéfinis (Générateur de rapports et SSRS).
Retour au début
Regroupement des données dans le 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 effectuez les opérations suivantes :
réorganiser des champs de dataset dans un Assistant Tableau, Matrice ou Graphique, ou faire correspondre des champs dans l'Assistant Carte ;
ajouter un champ à la zone Groupes de lignes ou Groupes de colonnes du volet de regroupement dans un tableau, une matrice ou une liste ;
ajouter un champ à la zone Groupes d'abscisses ou Groupes de séries du volet Données du graphique dans un graphique ;
spécifier 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 correspond au champ de dataset sur lequel il est basé.
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 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, afin d'afficher des vues différentes des mêmes données sur plusieurs régions de données, et de 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 (Générateur de rapports et SSRS).
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 à l'utilisateur 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 (Générateur de rapports et SSRS).
Pour la présentation du rapport, vous pouvez ajouter des sauts de page avant et après chaque groupe ou instance d'un groupe afin de réduire le volume de données sur chaque page et mieux gérer les performances de rendu de rapport. Pour plus d'informations, consultez Ajouter un saut de page (Générateur de rapports et SSRS).
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, sous-rapports et régions de données imbriquées (Générateur de rapports et SSRS).
Définition de 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 est accessible à 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 collections de variables de rapport et de groupe (Générateur de rapports et SSRS) et Étendue des expressions pour les totaux, les agrégats et les collections intégrées (Générateur de rapports et SSRS).
Groupes et étendue dans les régions de données
Pour fournir plusieurs vues de données à partir du même dataset, 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 Liaison de plusieurs régions de données à un même dataset (Générateur de rapports et SSRS).
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 (Générateur de rapports et SSRS).
Retour au début
Tri des données dans le 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, la plupart des résultats ne sont pas affectés par l'ordre de tri. Les valeurs de retour des fonctions d'agrégation suivantes sont affectées par l'ordre de tri : First, Last et Previous. Pour plus d'informations, consultez Référence aux fonctions d'agrégation (Générateur de rapports et SSRS).
Tri des données dans une requête de dataset
Incluez l'ordre de tri dans la requête de dataset afin de pré-trier les données avant leur extraction pour un rapport. 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 suivante Transact-SQL trie par ordre décroissant les colonnes Sales et Region by Sales dans la table SalesOrders: SELECT Sales, Region FROM SalesOrders ORDER BY Sales DESC. Pour plus d'informations, consultez la rubrique relative au tri des lignes à l'aide de ORDER BY dans la documentation en ligne de SQL Server.
[!REMARQUE]
Toutes les sources de données ne permettent pas de spécifier l'ordre de tri dans la requête.
Tri 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 de 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 de détails, pour contrôler l'ordre de tri des instances de groupe. Par exemple, dans le groupe de 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 de 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 de 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 Mise en forme des couleurs des séries sur un graphique (Générateur de rapports et SSRS).
É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. Vous n'avez généralement 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.
Tri en fonction d'une autre valeur
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 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 [Size]. Pour avoir un meilleur contrôle de la façon dont les données sont 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 dataset 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 à ceci :
=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 (Générateur de rapports et SSRS) et Fonction Lookup (Générateur de rapports et SSRS).
Ajout du 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), les éléments d'après lesquels effectuer le tri et si l'expression de tri doit être appliquée à d'autres éléments de rapport qui ont une relation d'égal à égal. 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 (Générateur de rapports et SSRS).
Retour au début
Rubriques de procédures
Laisser les en-têtes visibles lors du défilement d'un rapport (Générateur de rapports et SSRS)
Afficher des en-têtes et des pieds de page de groupe (Générateur de rapports et SSRS)
Ajouter un tri interactif à un tableau ou une matrice (Générateur de rapports et SSRS)
Définir un message d'absence de données pour une région de données (Générateur de rapports et SSRS)
Créer un groupe de hiérarchies récursives (Générateur de rapports et SSRS)
Ajouter ou supprimer un groupe dans une région de données (Générateur de rapports et SSRS)
Afficher des en-têtes et des pieds de page de groupe (Générateur de rapports et SSRS)
Ajouter ou supprimer un groupe dans un graphique (Générateur de rapports et SSRS)
Dans cette section
Exemples d'expressions de groupe (Générateur de rapports et SSRS)
Exemples d'équations de filtre (Générateur de rapports et SSRS)
Sections connexes
Fonctionnement des groupes (Générateur de rapports et SSRS)
Création de groupes de hiérarchies récursives (Générateur de rapports et SSRS)
Références à des collections de variables de rapport et de groupe (Générateur de rapports et SSRS)
Liaison de plusieurs régions de données à un même dataset (Générateur de rapports et SSRS)
Voir aussi
Concepts
Expressions (Générateur de rapports et SSRS)
Tables, matrices et listes (Générateur de rapports et SSRS)
Graphiques (Générateur de rapports et SSRS)
Cartes (Générateur de rapports et SSRS)
Graphiques sparkline et barres de données (Générateur de rapports et SSRS)