Leçon 4 : ajout de paramètres en cascade
Les paramètres en cascade permettent de gérer d'importantes quantités de données de rapport. Lorsque vous utilisez des paramètres en cascade, les valeurs possibles d'un paramètre dépendent de la valeur sélectionnée pour le paramètre qui le précède. L'ordre est important pour les paramètres en cascade car la requête de dataset concernant un paramètre situé plus bas dans la liste inclut des références à des paramètres situés plus haut dans la liste.
Au cours de cette leçon, vous allez créer un rapport qui contient une requête de dataset principale définissant trois paramètres de requête pour les objets Catégorie, Sous-catégorie et Produit. Vous définirez ensuite trois datasets supplémentaires afin de spécifier les valeurs disponibles pour chaque paramètre en cascade.
Pour ajouter un nouveau rapport à un projet Report Server déjà ouvert
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Rapports, pointez sur Ajouter, puis cliquez sur Nouvel élément.
Dans la section Modèles de la boîte de dialogue Ajouter un nouvel élément, cliquez sur l'option Rapport.
Dans le champ Nom, tapez CascadingParameters.rdl, puis cliquez sur l'option Ajouter.
Le Concepteur de rapports s'ouvre et affiche le nouveau fichier .rdl en mode Conception.
Pour créer une référence renvoyant à une source de données partagée
Dans le volet Données du rapport, cliquez sur Nouveau, puis sur Source de données.
Dans le champ Nom, tapez AdventureWorks_Ref.
Sélectionnez l'option Utiliser une référence de source de données partagée.
Dans la zone de liste déroulante, sélectionnez AdventureWorks.
Cliquez sur OK.
Pour créer un dataset principal comportant une requête ainsi que des paramètres de requête
Dans le volet Données du rapport, cliquez avec le bouton droit sur le nom de la source de données, à savoir sur AdventureWorks_Ref, puis cliquez sur Ajouter un dataset.
Dans la zone Nom, tapez SalesbyCategory.
Dans la liste Source de données, assurez-vous que la source AdventureWorks_Ref est bien sélectionnée.
Dans Type de requête, vérifiez que l'option Texte est sélectionnée.
Au-dessous du volet de requête, cliquez sur Concepteur de requêtes.
Copiez ensuite la requête suivante :
SELECT PC.Name AS Category, PSC.Name AS Subcategory, P.Name AS Product, SOH.[OrderDate], SOH.SalesOrderNumber, SD.OrderQty, SD.LineTotal FROM [Sales].[SalesPerson] SP INNER JOIN [Sales].[SalesOrderHeader] SOH ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail SD ON SD.SalesOrderID = SOH.SalesOrderID INNER JOIN Production.Product P ON SD.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = (@Category) AND PSC.Name = (@Subcategory) AND P.Name = (@Product))
La requête contient à présent les paramètres de requête @Category, @Subcategory et @Product.
Cliquez sur Exécuter (!) pour consulter le jeu de résultats. La boîte de dialogue Définir les paramètres de la requête s'affiche.
Dans la colonne Valeur du paramètre, entrez une valeur pour chaque paramètre de requête à l'aide du tableau ci-dessous.
Nom du paramètre
Valeur du paramètre
@Category
Components
@Subcategory
Brakes
@Product
Front brakes
Cliquez sur OK.
Le jeu de résultats contient une liste répertoriant les numéros de commande classés par date pour les freins avant.
Lorsque vous avez exécuté la requête, chacun des paramètres de cette dernière a généré un paramètre de rapport correspondant. Pour quitter la boîte de dialogue Concepteur de requêtes, cliquez deux fois sur le bouton OK.
(Facultatif) Dans le volet Données du rapport, développez le nœud Paramètres, puis assurez-vous que les paramètres de rapport suivants apparaissent : Category, Subcategory et Product.
(Facultatif) La valeur de chaque paramètre de requête de dataset est liée au paramètre de rapport portant le même nom. Pour vérifier l'existence de ce lien particulier, cliquez avec le bouton droit sur SalesbyCategory dans le volet Données du rapport, puis cliquez sur Propriétés du dataset.
Cliquez sur Paramètres.
Dans la colonne Nom du paramètre, vérifiez que les noms répertoriés sont @Category, @Subcategoryet @Product, respectivement.
Dans la colonne Valeur du paramètre, vérifiez que les valeurs sont [@Category], [@Subcategory] et [@Product].
Ces expressions simples font référence aux paramètres de rapport qui apparaissent dans le volet Données du rapport.
Vous allez à présent créer le dataset fournissant les deux valeurs de chaque paramètre de rapport au moment de l'exécution du rapport. Ces valeurs seront utilisées comme valeurs disponibles et valeurs par défaut de sorte à ce que le rapport puisse s'exécuter automatiquement.
Pour définir un dataset valide de valeurs destiné à un paramètre de rapport
Dans le volet Données du rapport, cliquez avec le bouton droit sur AdventureWorks_Ref, puis cliquez sur Ajouter un dataset.
Dans la zone Nom, tapez CategoryValues.
Dans la liste Source de données, assurez-vous que la source AdventureWorks_Ref est bien sélectionnée.
Dans Type de requête, assurez-vous que l'option Texte est définie.
Au-dessous du volet Requête, cliquez sur Concepteur de requêtes.
Collez le texte de requête ci-après dans le volet Requête :
SELECT DISTINCT Name AS Category FROM Production.ProductCategory
La commande SELECT DISTINCT extrait uniquement les valeurs uniques des colonnes.
Cliquez sur Exécuter (!) pour consulter le jeu de résultats. La colonne Category qui apparaît contient quatre valeurs, à savoir les valeurs Accessories, Bikes, Clothing et Components.
Cliquez sur OK.
Vous allez à présent définir les propriétés du paramètre de rapport Category de sorte à ce que les valeurs de la requête soient utilisées à la fois comme ses valeurs disponibles et ses valeurs par défaut.
Pour définir les valeurs disponibles et les valeurs par défaut d'un paramètre de rapport
Dans le dossier Paramètres du volet Données du rapport, cliquez avec le bouton droit sur Category, puis cliquez sur Propriétés du paramètre.
Dans la zone Nom, assurez-vous que le nom qui apparaît correspond à Category.
Cliquez sur Valeurs disponibles.
Cliquez sur Obtenir les valeurs à partir d'une requête. Trois champs apparaissent.
Dans la liste déroulante Dataset, sélectionnez CategoryValues.
Dans le champ Valeur, cliquez sur Category.
Dans le champ Étiquette, cliquez sur Category.
Cliquez sur Valeurs par défaut.
Cliquez sur Obtenir les valeurs à partir d'une requête.
Dans la liste déroulante Dataset, sélectionnez CategoryValues.
Dans le champ Valeur, sélectionnez Category.
Cliquez sur OK.
Vous allez à présent modifier le paramètre @Subcategory de sorte à ce qu'il dépende de la valeur sélectionnée pour le paramètre @Category.
Pour définir un dataset de valeurs correspondant au paramètre de rapport Subcategory
Dans le volet Données du rapport, cliquez avec le bouton droit sur AdventureWorks_Ref, puis cliquez sur Ajouter un dataset.
Dans la zone Nom, tapez SubcategoryValues.
Collez le texte de requête ci-après dans le volet Requête :
SELECT DISTINCT PSC.Name AS Subcategory FROM Production.ProductSubcategory AS PSC INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE PC.Name = (@Category)
Cliquez sur OK.
Le dataset SubcategoryValues apparaît à présent dans le volet Données du rapport. Le champ Subcategory contient 14 lignes qui répertorient les divers composants.
Vous allez à présent définir les propriétés du paramètre de rapport @Subcategory de sorte à ce que les valeurs de la requête soient utilisées à la fois comme ses valeurs disponibles et ses valeurs par défaut.
Pour définir les valeurs disponibles et les valeurs par défaut du paramètre de rapport Subcategory
Dans le dossier Paramètres du volet Données du rapport, cliquez avec le bouton droit sur Subcategory, puis cliquez sur Propriétés du paramètre.
Cliquez sur Valeurs disponibles.
Cliquez sur Obtenir les valeurs à partir d'une requête.
Dans la liste déroulante Dataset, cliquez sur SubcategoryValues.
Dans le champ Valeur, cliquez sur Subcategory.
Dans le champ Étiquette, cliquez sur Subcategory.
Cliquez sur Valeurs par défaut.
Cliquez sur Obtenir les valeurs à partir d'une requête.
Dans la liste déroulante Dataset, cliquez sur SubcategoryValues.
Dans le champ Valeur, cliquez sur Subcategory.
Cliquez sur OK.
Créez ensuite un paramètre @Product dépendant à la fois de la valeur de @Category et de la valeur de @Subcategory.
Pour définir un dataset de valeurs correspondant au paramètre de rapport Product
Dans le volet Données du rapport, cliquez avec le bouton droit sur AdventureWorks_Ref, puis cliquez sur Ajouter un dataset.
Dans la zone Nom, tapez ProductValues.
Collez le texte de requête ci-après dans le volet Requête :
SELECT DISTINCT P.Name AS Product FROM Production.Product P INNER JOIN Production.ProductSubcategory AS PSC ON P.ProductSubcategoryID = PSC.ProductSubcategoryID INNER JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID WHERE (PC.Name = (@Category) AND PSC.Name = (@Subcategory))
Cliquez sur OK.
Un dataset nommé ProductValues contenant un champ intitulé Product est ajouté au volet Données du rapport.
Vous allez à présent définir les propriétés du paramètre @Product de sorte à ce que les valeurs de cette requête soient utilisées à la fois comme ses valeurs disponibles et ses valeurs par défaut.
Pour définir les valeurs disponibles et les valeurs par défaut du paramètre de rapport Product
Dans le dossier Paramètres du volet Données du rapport, cliquez avec le bouton droit sur Product, puis cliquez sur Propriétés du paramètre.
Cliquez sur Valeurs disponibles.
Cliquez sur Obtenir les valeurs à partir d'une requête.
Dans la liste déroulante Dataset, cliquez sur ProductValues.
Dans le champ Valeur, cliquez sur Product.
Dans le champ Étiquette, cliquez sur Product.
Cliquez sur Valeurs par défaut.
Cliquez sur Obtenir les valeurs à partir d'une requête.
Dans la liste déroulante Dataset, cliquez sur ProductValues.
Dans le champ Valeur, cliquez sur Product.
Cliquez sur OK.
Vous allez à présent créer une table qui vous permettra de visualiser le résultat obtenu en fonction de la valeur sélectionnée pour chaque paramètre en cascade.
Pour ajouter une table permettant d'afficher les résultats
En mode Conception, ajoutez une table.
Dans le dataset SalesbyCategory du volet Données du rapport, faites glisser les champs suivants vers les cellules SalesOrderNumber, OrderQty, LineTotal contenues dans la ligne de détails de la table.
Faites glisser le paramètre Category du dataset SalesbyCategory jusqu'au volet RowGroups, puis déposez-le sur le groupe Détails.
Faites glisser le paramètre Subcategory du dataset SalesbyCategory vers le volet Groupes de lignes, puis déposez-le sous le paramètre Category.
Faites glisser le paramètre Product du dataset SalesbyCategory vers le volet Groupes de lignes, puis déposez-le sous le paramètre Subcategory.
Faites glisser le paramètre OrderDate du dataset SalesbyCategory vers le volet Groupes de lignes, puis déposez-le sous le paramètre Product.
(Facultatif) Mettez en forme les cellules suivantes : [LineTotal] comme Monnaie et [OrderDate] comme date.
Pour tester les paramètres en cascade
Cliquez sur Aperçu.
Le rapport s'exécute automatiquement, car vous avez défini une valeur par défaut pour chaque paramètre de rapport.
Dans la liste déroulante Category, sélectionnez Components.
Dans la liste déroulante Subcategory, sélectionnez Brakes.
Dans la liste déroulante Product, sélectionnez Front Brakes.
Remarque : au fur et à mesure que vous sélectionnez de nouveaux paramètres, la liste déroulante répertoriant leurs valeurs affichent uniquement les valeurs disponibles en fonction des précédentes sélections effectuées.
Dans la barre d'outils de la visionneuse de rapports, cliquez sur l'option Afficher le rapport.
Le rapport affiche le numéro des bons de commande, les quantités commandées et les totaux par ligne pour toutes les commandes comportant des freins avant. La table affiche les commandes par catégorie, sous-catégorie, produit et date de commande.
Étapes suivantes
Vous avez donc réussi à créer un rapport qui affiche les commandes comportant un produit donné, et ce en utilisant des paramètres en cascade qui permettent de filtrer les commandes par catégorie de produit, sous-catégorie de produit et nom de produit. Dans la leçon suivante, vous allez apprendre à passer un paramètre à un rapport d'extraction. Consultez Leçon 5 : ajout de paramètres à passer à un rapport d'extraction.