Utilisation de paramètres pour contrôler les données des rapports

Les paramètres de rapport filtrent généralement des données de rapport qui sont extraites d'une source de données. Le filtrage de données de la source de données peut améliorer les performances de traitement et d'affichage d'un rapport. Dans les cas où vous ne pouvez pas filtrer les données de la source, vous pouvez utiliser des paramètres pour filtrer les données de rapport une fois qu'elles ont été extraites. Vous pouvez également trier et regrouper des données de rapport en fonction des paramètres du rapport.

Filtrage des données de la source de données

Pour filtrer les données de la source de données, utilisez des paramètres de requête dans votre requête de dataset. Pour chaque paramètre de requête, Reporting Services crée un paramètre de rapport correspondant. Lorsque l'utilisateur sélectionne des valeurs pour le paramètre de rapport, ces valeurs sont passées à la requête. Lorsque la requête s'exécute sur la source de données, seules les valeurs spécifiées par l'utilisateur sont extraites pour le rapport. Des propriétés telles qu'une invite d'utilisateur et les valeurs par défaut sont appliquées au paramètre de rapport.

Paramètres de requête

Les paramètres de rapport sont automatiquement créés lors de la définition des paramètres de requête. Dans le Générateur de rapports, les paramètres de rapport sont automatiquement créés lorsque vous définissez une invite sur une clause de filtre.

Lorsque vous définissez un dataset, vous spécifiez un type de source de données spécifique ; par exemple, MicrosoftSQL Server. Le Concepteur de rapports ouvre un concepteur de requêtes conçu pour fonctionner avec ce type de source de données. Lorsque vous définissez la requête pour chaque dataset, le concepteur de requêtes identifie des variables dans le texte de la commande de la requête, puis il crée un paramètre de requête pour chaque variable. Toutes les associations de source de données et de fournisseur de données ne prennent pas en charge les requêtes avec des variables. Pour plus d'informations sur la syntaxe de la requête attendue par la source de données, consultez Utilisation de paramètres de requête avec des sources de données spécifiques (Reporting Services).

Pour une source de données SQL Server, les requêtes incluent généralement des variables dans la clause WHERE d'une instruction Transact-SQL pour limiter l'étendue des données retournées lors de l'exécution d'une requête. De même, une requête d'une source de données Analysis Services inclut en principe des variables MDX utilisées dans une clause FILTER. Les requêtes peuvent également inclure des variables transmises en tant qu'entrées aux procédures stockées ou aux fonctions définies par l'utilisateur.

Chaque fois que vous modifiez la requête d'un dataset, la requête est retraitée. Si vous modifiez une requête en supprimant ou en renommant une variable, les paramètres de la requête reflèteront ces modifications.

Vous pouvez créer des paramètres de dataset supplémentaires sur la page Paramètres de la boîte de dialogue Propriétés du dataset. Les paramètres que vous créez ne sont pas modifiés lorsque la requête change.

La valeur par défaut de chaque paramètre de requête est définie à une expression qui correspond au paramètre de rapport associé. Pour modifier la valeur par défaut, utilisez la page Paramètres de la boîte de dialogue Propriétés du dataset. Par exemple, pour une source de données SQL Server, si le paramètre de requête est @MyParameter, le paramètre de rapport est MyParameter et la valeur de @MyParameter est l'expression [@MyParameter]. Pour plus d'informations, consultez Boîte de dialogue Propriétés du dataset, Paramètres. Vous pouvez modifier manuellement les paramètres de requête et définir leurs valeurs par défaut. Pour plus d'informations, consultez Procédure : associer un paramètre de requête à un paramètre de rapport.

Les paramètres de rapport qui sont automatiquement créés utilisent les valeurs par défaut suivantes :

  • Valeur unique

  • Type de données Text

  • Invite dont la valeur est le nom du paramètre

  • Aucune valeur par défaut

  • Aucune valeur disponible

Vous devrez peut-être modifier ces propriétés en fonction du type de données que représente le paramètre de requête. Pour plus d'informations, consultez Création de paramètres de rapport et définition des propriétés des paramètres de rapport.

[!REMARQUE]

Si vous supprimez ou modifiez le nom d'un paramètre de requête, le paramètre de rapport correspondant n'est pas supprimé ou modifié automatiquement. Si vous supprimez un paramètre de requête et que vous n'avez pas besoin du paramètre de rapport correspondant, vous devez le supprimer manuellement. Si vous modifiez le nom d'un paramètre de requête, un nouveau paramètre de rapport correspondant au nom modifié est créé lorsque vous enregistrez la requête. Vous pouvez renommer le paramètre de rapport pour qu'il corresponde au nom du nouveau paramètre de requête, puis mettre à jour les propriétés du paramètre de dataset afin de lier le paramètre de requête au paramètre de rapport.

Paramètres dépendants ou en cascade

Lorsque vous créez une requête qui utilise plusieurs paramètres de requête, vous pouvez créer un ensemble de paramètres en cascade. Les paramètres en cascade permettent de filtrer un très grand nombre de valeurs de paramètres afin d'obtenir un nombre de valeurs facile à gérer. Supposons, par exemple, qu'une requête inclue les paramètres @Category, @Subcategory et @Product, où la liste de sous-catégories dépend de @Category et la liste de produits dépend de @Subcategory. Lorsqu'un utilisateur choisit une valeur pour le paramètre de rapport Category, les valeurs pour Subcategory sont limitées aux valeurs valides pour la catégorie choisie. Une fois que l'utilisateur sélectionne une valeur pour Subcategory, les choix pour Product sont déjà filtrés par le choix pour la catégorie et la sous-catégorie. Cette technique vous permet de réduire les choix valides pour un paramètre à un nombre raisonnable de valeurs.

Pour concevoir des paramètres en cascade, vous devez inclure les éléments suivants dans votre rapport :

  • La requête de dataset principale, qui a plusieurs paramètres de requête liés.

  • Une liste triée de paramètres de rapport, chacun étant lié à un paramètre de requête. En général, ces paramètres sont automatiquement créés à partir de la requête principale. Chaque paramètre dépendant doit suivre le paramètre dont il dépend. L'ordre des paramètres peut être modifié dans le volet Données du rapport, dans lequel vous pouvez déplacer les paramètres vers le haut ou vers le bas dans la collection. Pour plus d'informations, consultez Procédure : modifier l'ordre d'un paramètre de rapport (Reporting Services).

  • Un dataset distinct pour chaque paramètre de rapport qui fournit ses valeurs disponibles. Il est important d'utiliser la même orthographe avec respect de la casse pour chaque paramètre de requête afin que les paramètres de requête et les paramètres de rapport soient correctement liés. La requête correspondant à chaque ensemble de valeurs disponibles pour chaque paramètre de rapport doit fournir uniquement des valeurs qui sont opportunes dans le contexte de la requête principale.

Dans l'exemple, le paramètre de rapport Product dépend de Subcategory, qui lui-même dépend de Category. Category doit figurer en premier, suivi par Subcategory, puis par Product. La requête du dataset qui fournit les valeurs disponibles pour Category doit afficher toutes les catégories qui sont valides pour la requête principale. La requête qui fournit les valeurs disponibles pour Subcategory une fois que vous avez choisi une catégorie doit fournir des valeurs qui sont valides pour la catégorie (Category) donnée, plus toutes les contraintes qui existent dans la requête principale.

Pour plus d'informations, consultez Procédure : ajouter des paramètres en cascade à un rapport (Reporting Services).

Filtrage de données de rapport après l'exécution d'une requête

Vous pouvez également créer des paramètres de rapport et les utiliser dans des expressions de filtre pour filtrer les données d'un dataset de rapport, d'une région de données ou d'un groupe de tableaux matriciels. Pour plus d'informations, consultez Filtrage de données dans un rapport et Procédure : ajouter un filtre (Reporting Services).

Les paramètres de rapport font partie d'une définition de rapport lorsque vous créez un rapport qui peut être géré indépendamment une fois qu'il a été publié. Une fois la définition de rapport publiée, vous pouvez modifier les propriétés des paramètres à l'aide du Gestionnaire de rapports. Pour plus d'informations, consultez Définition des propriétés d'un rapport publié.

Utilisation de valeurs valides qui changent rapidement pour un paramètre

Lorsque vous définissez des valeurs disponibles qui changent très rapidement, ces valeurs peuvent être obsolètes avant même que le rapport ne soit exécuté. Ainsi, il peut arriver que l'utilisateur sélectionne dans la liste une valeur qui n'est plus valide au moment où il la soumet et exécute le rapport. Pour éviter pareille situation, écrivez des requêtes retournant des datasets pour des listes de valeurs valides qui ne changeront généralement pas avant que l'utilisateur ait eu le temps de sélectionner une valeur et d'exécuter le rapport.

De même, il faut éviter les valeurs non interrogées qui changent rapidement. Par exemple, si vous indiquez la date actuelle comme l'une des valeurs disponibles, écrivez une expression utilisant la propriété DateTime.Today et non la propriété DateTime.Now. Ceci permet d'éliminer la partie heure de la valeur, qui change de seconde en seconde. Vous pouvez également utiliser une variable de rapport ou une variable de groupe pour calculer une valeur une fois et la maintenir constante pendant la durée de traitement du rapport. Pour plus d'informations, consultez Utilisation de références à des collections de variables de rapport et de groupe dans les expressions (Reporting Services).