Share via


Leçon 2 : Ajout de paramètres en cascade à un rapport

Nouveau : 17 juillet 2006

Les paramètres en cascade permettent de filtrer les valeurs disponibles de chaque paramètre d'un ensemble de paramètres ayant entre eux une relation naturelle. Par exemple, dans la base de données AdventureWorks, chaque revendeur possède une adresse spécifique dans la ville (champ City). Les villes sont regroupées en états ou provinces (champ StateProvince). Les états et les provinces sont regroupés en pays ou régions (champ CountryRegion). Les pays ou les régions sont regroupés en secteurs de ventes (champ TerritoryGroup). Vous pouvez créer quatre paramètres pour ces champs qui ont une relation de dépendance, en commençant par la catégorie la plus générale, TerritoryGroup, et en terminant par la plus spécifique, City.

Lorsque les paramètres en cascade apparaissent sur une barre d'outils de rapport, le lecteur du rapport sélectionne la valeur du premier paramètre, valeur qui détermine les valeurs disponibles du paramètre suivant, et ainsi de suite. De cette façon, vous pouvez filtrer potentiellement des milliers de choix afin d'obtenir un nombre raisonnable pour chaque paramètre en cascade.

Les paramètres en cascade possèdent un ordre implicite. Quand vous affichez les paramètres du rapport dans le Concepteur de rapports, ils sont classés par ordre dans le volet des paramètres. Le premier paramètre d'une liste ne dépend d'aucun autre paramètre. Le paramètre suivant de la liste, s'il est utilisé en tant que paramètre en cascade, dépend du paramètre qui le précède. Les paramètres peuvent être réordonnés à l'aide des flèches Haut et Bas fournies dans la boîte de dialogue des paramètres du rapport.

Dans cette leçon, vous allez ajouter quatre paramètres en cascade (TerritoryGroup, CountryRegion, StateProvince et City) au rapport Sales Orders créé dans le précédent didacticiel. Vous allez créer un dataset pour chaque paramètre afin de remplir sa liste de valeurs disponibles. Quand vous créez une requête avec un paramètre de requête pour un dataset de valeurs valides, un paramètre de rapport est automatiquement créé. Comme vous créez les datasets pour les listes de valeurs valides depuis le paramètre le plus général (TerritoryGroup) jusqu'au plus spécifique (Cities), vous allez créer les paramètres de rapport en fonction de l'ordre approprié des dépendances. Pour le dernier dataset des valeurs valides (Cities), vous allez apprendre à créer manuellement un paramètre de rapport et l'associer au paramètre de requête correspondant.

Après avoir créé tous les datasets, vous allez modifier les propriétés par défaut de chaque paramètre de rapport, ainsi que définir les propriétés des valeurs valides et des valeurs par défaut afin de pointer sur le dataset et le champ appropriés.

Enfin, vous allez modifier la requête de dataset initiale afin d'inclure des paramètres de requête pour chaque paramètre de rapport. Lorsque vous exécutez le rapport, vous allez sélectionner successivement les valeurs de chaque paramètre en cascade et constater que la liste des valeurs disponibles du paramètre suivant ne contient que les valeurs valides après que le premier paramètre a été sélectionné.

Procédure

Pour ouvrir le rapport ResellersWorldwide

  1. Dans SQL Server Business Intelligence Development Studio, ouvrez le projet Report Server AdvancedParametersTutorial créé lors de la précédente leçon.

  2. Dans l'Explorateur de solutions, double-cliquez sur le rapport Resellers Worldwide. Le rapport s'ouvre en mode Mise en page.

  3. Cliquez sur l'onglet Données.

Pour ajouter un nouveau dataset pour les valeurs disponibles du paramètre TerritoryGroup

  1. Dans la liste déroulante Dataset, sélectionnez <Nouveau dataset>. La boîte de dialogue Dataset s'affiche.

  2. Sous l'onglet Requête, dans la zone de texte Nom, tapez ValidValuesforTerritoryGroup.

  3. Vérifiez que la Source de données est bien Resellers.

  4. Vérifiez que le Type de commande est bien Texte.

  5. Collez la requête suivante dans le volet de requête.

    SELECT distinct [Group] as SalesTerritory
       FROM [AdventureWorks].[Sales].[SalesTerritory]
    
  6. Cliquez sur Exécuter (!) pour consulter le jeu de résultats. La colonne SalesTerritory se compose de trois lignes : Europe, North America et Pacific.

Pour ajouter un dataset pour les valeurs disponibles du paramètre CountryRegion

  1. Dans la liste déroulante Dataset, sélectionnez <Nouveau dataset>. La boîte de dialogue Dataset s'affiche.

  2. Sous l'onglet Requête, dans la zone de texte Nom, tapez ValidValuesforCountryRegion.

  3. Vérifiez que la Source de données est bien Resellers.

  4. Vérifiez que le Type de commande est bien Texte.

  5. Collez la requête suivante dans le volet de requête.

    SELECT Distinct CR.Name AS CountryRegion
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (T.[Group] = (@TerritoryGroup))
    Order by CR.Name
    
  6. Cliquez sur Exécuter (!). La boîte de dialogue Définir les paramètres de la requête s'affiche.

  7. Tapez Pacific.

    Le jeu de résultats s'affiche, composé de la colonne CountryRegion et d'une ligne ayant Australia pour valeur.

    Quand vous définissez un paramètre de requête intitulé @TerritoryGroup, un nouveau paramètre de rapport appelé TerritoryGroup est également créé.

  8. (Facultatif) En regard de la liste déroulante Dataset, cliquez sur le bouton Modifier le dataset sélectionné (), puis sur l'onglet Paramètres. Vérifiez que le paramètre de requête @TerritoryGroup est lié à la valeur du paramètre de rapport TerritoryGroup (=Parameters!TerritoryGroup.Value).

Pour ajouter un dataset pour les valeurs disponibles du paramètre StateProvince

  1. Dans la liste déroulante Dataset, sélectionnez <Nouveau dataset>. La boîte de dialogue Dataset s'affiche.

  2. Sous l'onglet Requête, dans le champ Nom, tapez ValidValuesforStateProvince.

  3. Vérifiez que la Source de données est bien Resellers.

  4. Vérifiez que le Type de commande est bien Texte.

  5. Collez la requête suivante dans le volet de requête.

    SELECT Distinct SP.Name AS StateProvince
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
    WHERE (CR.Name = @CountryRegion)
    Order by SP.Name
    
  6. 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.

  7. Dans la zone de texte Valeur du paramètre, tapez Australia. Cliquez sur OK.

    La colonne StateProvince se compose de quatre lignes : New South Wales, Queensland, South Australia et Victoria.

Pour ajouter un dataset pour les valeurs disponibles du paramètre City

  1. Dans la liste déroulante Dataset, sélectionnez <Nouveau dataset>. La boîte de dialogue Dataset s'affiche.

  2. Sous l'onglet Requête, dans le champ Nom, tapez ValidValuesforStateProvince.

  3. Vérifiez que la Source de données est bien Resellers.

  4. Vérifiez que le Type de commande est bien Texte.

  5. Collez la requête suivante dans le volet de requête.

    SELECT Distinct A.City 
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (
        T.[Group] = (@TerritoryGroup) AND
        CR.[Name] = (@CountryRegion) AND
        SP.[Name] = (@StateProvince)
        )
    Order by A.City
    
  6. 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.

  7. Dans la zone de texte 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

@TerritoryGroup

Pacific

@CountryRegion

Australia

@StateProvince

Victoria

  1. Cliquez sur OK.
    La colonne City se compose de trois lignes : Melbourne, Seaford et South Melbourne.

Vous avez créé quatre paramètres en cascade. Vous allez, ensuite, modifier les propriétés des paramètres de rapport qui ont été créés et qui correspondent aux paramètres de requête. Vous allez définir chaque paramètre de façon à utiliser le dataset approprié pour extraire l'ensemble des valeurs disponibles.

Pour définir les valeurs disponibles du paramètre de rapport TerritoryGroup

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre et affiche le paramètre TerritoryGroup sélectionné dans le volet Paramètres.

  2. Vérifiez que le Type de données est String.

  3. Dans la zone de texte Demander, tapez Select a Territory Group: (Sélectionner un secteur :).

  4. Vérifiez que toutes les cases à cocher sont désactivées.

  5. Dans la section Valeurs disponibles, sélectionnez Avec requête.

  6. Dans la liste déroulante Dataset, sélectionnez ValidValuesforTerritoryGroup.

  7. Dans la liste déroulante Champ de valeur, sélectionnez SalesTerritory.

  8. Dans la liste déroulante Champ d'étiquette, sélectionnez SalesTerritory.

  9. Dans la section Valeurs par défaut, sélectionnez Sans requête.

  10. Dans la zone de texte, tapez North America.

    Vous pouvez définir une valeur par défaut avec une valeur spécifique ou avec les valeurs par défaut d'un champ de dataset. Comme ce paramètre a pour type String, vous pouvez entrer directement la valeur dans la zone de texte. Pour les autres types de données, vous taperiez une expression commençant par un signe égal (=).

  11. Cliquez sur OK.

  12. (Facultatif) Cliquez sur l'onglet Aperçu. Le paramètre TerritoryGroup s'affiche avec la valeur par défaut Europe et les valeurs valides du champ SalesTerritory du dataset ValidValuesforTerritoryGroup.

    Aucune modification des données du rapport n'apparaîtra tant que vous n'aurez pas modifié la requête du dataset Resellers dans la procédure finale de cette leçon.

Pour définir les valeurs disponibles du paramètre de rapport CountryRegion

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.

  2. Dans le volet Paramètres, sélectionnez CountryRegion.

  3. Vérifiez que le Type de données est String.

  4. Dans la zone de texte Demander, tapez Select a Country/Region: (Sélectionner un pays/une région :).

  5. Vérifiez que toutes les cases à cocher sont désactivées.

  6. Dans la section Valeurs disponibles, sélectionnez Avec requête.

  7. Dans la liste déroulante Dataset, sélectionnez ValidValuesforCountryRegion.

  8. Dans la liste déroulante Champ de valeur, sélectionnez CountryRegion.

  9. Dans la liste déroulante Champ d'étiquette, sélectionnez CountryRegion.

  10. Dans la section Valeurs par défaut, sélectionnez Avec requête.

  11. Dans la liste déroulante Dataset, sélectionnez ValidValuesforCountryRegion.

  12. Dans la liste déroulante Champ de valeur, sélectionnez CountryRegion.

  13. Cliquez sur OK.

  14. (Facultatif) Cliquez sur l'onglet Aperçu. Sélectionnez une valeur pour TerritoryGroup. Sélectionnez une valeur pour le paramètre CountryRegion. Vérifiez que les valeurs affichées pour CountryRegion sont bien valides pour le groupe Territory que vous avez sélectionné.

Pour définir les valeurs disponibles du paramètre de rapport StateProvince

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.

  2. Dans le volet Paramètres, sélectionnez StateProvince.

  3. Vérifiez que le Type de données est String.

  4. Dans la zone de texte Demander, tapez Select a State/Province: (Sélectionner un état/une province :).

  5. Vérifiez que toutes les cases à cocher sont désactivées.

  6. Dans la section Valeurs disponibles, sélectionnez Avec requête.

  7. Dans la liste déroulante Dataset, sélectionnez ValidValuesforStateProvince.

  8. Dans la liste déroulante Champ de valeur, sélectionnez StateProvince.

  9. Dans la liste déroulante Champ d'étiquette, sélectionnez StateProvince.

  10. Dans la section Valeurs par défaut, sélectionnez Avec requête.

  11. Dans la liste déroulante Dataset, sélectionnez ValidValuesforStateProvince.

  12. Dans la liste déroulante Champ de valeur, sélectionnez StateProvince.

  13. Cliquez sur OK.

  14. (Facultatif) Cliquez sur l'onglet Aperçu. Sélectionnez une valeur pour TerritoryGroup. Sélectionnez une valeur pour le paramètre CountryRegion. Sélectionnez une valeur pour le paramètre StateProvince. Vérifiez que les valeurs affichées pour StateProvince sont bien valides pour les paramètres TerritoryGroup et CountryRegion que vous avez sélectionnés.

Pour créer le paramètre de rapport City et définir ses propriétés

  1. Dans le menu Rapport, cliquez sur Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.

  2. Dans le volet Paramètres, notez qu'il n'existe aucun paramètre de rapport intitulé City.

    Les paramètres de rapport sont créés automatiquement quand une requête contenant des paramètres est définie pour un dataset. Aucune requête de dataset créée jusqu'à présent ne contient un paramètre de requête @City. Vous pouvez créer un paramètre de rapport intitulé City, et quand une requête est définie et qu'elle contient effectivement un paramètre de requête @City, celui-ci est automatiquement lié à un paramètre de rapport s'il possède un nom correspondant (le nom sans l'indicateur de paramètre de requête « @ »).

  3. Cliquez sur Ajouter. Un paramètre de rapport est créé avec des propriétés par défaut.

  4. Dans la section Propriétés, dans la zone de texte Nom, tapez City.

  5. Vérifiez que le Type de données est String.

  6. Dans la zone de texte Demander, tapez Select a City: (Sélectionner une ville :).

  7. Vérifiez que toutes les cases à cocher sont désactivées.

  8. Dans la section Valeurs disponibles, sélectionnez Avec requête.

  9. Dans la liste déroulante Dataset, sélectionnez ValidValuesforCity.

  10. Dans la liste déroulante Champ de valeur, sélectionnez City.

  11. Dans la liste déroulante Champ d'étiquette, sélectionnez City.

  12. Dans la section Valeurs par défaut, sélectionnez Avec requête.

  13. Dans la liste déroulante Dataset, sélectionnez ValidValuesforCity.

  14. Dans la liste déroulante Champ de valeur, sélectionnez City.

  15. Cliquez sur OK.

  16. (Facultatif) Cliquez sur l'onglet Aperçu. Sélectionnez les valeurs des paramètres TerritoryGroup, CountryRegion et StateProvince. Vérifiez que les valeurs de paramètre affichées pour City sont bien valides pour les sélections que vous avez effectuées.

Jusqu'à maintenant, vous avez créé les valeurs des paramètres en cascade. Maintenant, vous devez inclure ces valeurs dans la requête de dataset de la région des données du tableau afin que les paramètres que vous sélectionnez soient inclus dans la requête qui extrait les données du tableau.

Pour modifier la requête du dataset reseller salesorders afin d'inclure les paramètres de requête existants

  1. En mode Données, dans la liste déroulante Dataset, sélectionnez Resellers. La chaîne de requête originale créée au cours de la précédente leçon s'affiche dans le volet de requête.

  2. Remplacez le texte du volet de requête par la requête suivante :

    SELECT S.CustomerID, SO.SalesOrderNumber, SO.OrderDate, SO.TotalDue,
        S.Name AS Store, A.City, SP.Name AS State, CR.Name
        AS CountryRegion, 
        SC.ContactID As StoreContactID, T.[Group] As TerritoryGroup
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.SalesOrderHeader AS SO ON 
        S.CustomerID = SO.CustomerID
        JOIN Sales.StoreContact SC ON  S.CustomerID = SC.CustomerID
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE(
        (T.[Group] = (@TerritoryGroup))
        AND
        (CR.Name = (@CountryRegion))
         AND
         (SP.Name = (@StateProvince))
        AND
        (A.City = (@City))
       )
    ORDER BY S.CustomerID 
    

    La requête inclut maintenant les paramètres de requête qui utilisent les valeurs des paramètres de rapport.

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

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

@TerritoryGroup

Pacific

@CountryRegion

Australia

@StateProvince

Victoria

@City

Melbourne

  1. Cliquez sur OK.
    Le jeu de résultats contient les ventes des revendeurs de la ville de Melbourne.
    Quand vous avez ajouté les paramètres de requête à la définition de requête du dataset Resellers, ils ont été automatiquement définis de façon à obtenir leurs valeurs à partir de celles du paramètre de rapport correspondant.
  2. (Facultatif) En regard de la liste déroulante Dataset, cliquez sur le bouton Modifier le dataset sélectionné (), puis sur l'onglet Paramètres. Vérifiez que les paramètres de requête @TerritoryGroup, @CountryRegion, @StateProvince et @City sont liés aux valeurs des paramètre de rapport correspondants.

Pour définir la valeur NoRows

  1. Cliquez sur l'onglet Mise en page pour passer en mode Mise en page.

  2. Cliquez à l'intérieur du tableau pour afficher ses poignées. Cliquez sur la poignée d'angle pour sélectionner le tableau. Le tableau s'affiche avec un contour grisé.

  3. Dans la fenêtre Propriétés, recherchez la propriété NoRows. Collez le texte suivant dans la zone de texte adjacente :

    Il n'existe aucun revendeur dans cette zone.

Pour créer le titre principal du rapport et les zones de texte des valeurs de paramètres

  1. Cliquez sur l'onglet Mise en page pour passer en mode Mise en page.

  2. Cliquez avec le bouton droit dans la zone de texte qui contient l'horodateur du traitement du rapport et sélectionnez Expression.

  3. Cliquez sur le bouton d'expression (Fx) situé à côté de la zone de texte Valeur. La boîte de dialogue Modifier l'expression s'affiche. Remplacez l'expression de l'horodateur par l'expression suivante :

    ="Report Processed Date: " & 
      Globals!ExecutionTime.ToShortDateString() & " " & 
      Globals!ExecutionTime.ToShortTimeString() & vbCrLf & 
      "Sales Territory for: " 
    & Parameters!TerritoryGroup.Value & ", " 
    & Parameters!CountryRegion.Value & ", "
    & Parameters!StateProvince.Value & ", "
    & Parameters!City.Value
    
  4. Cliquez sur Aperçu. Essayez de sélectionner différentes valeurs de paramètre. Notez que, tandis que vous sélectionnez successivement chaque paramètre, la liste déroulante du paramètre suivant ne propose que les valeurs disponibles fondées sur votre sélection. Les données du rapport ne changent pas même si vous sélectionnez de nouveaux paramètres. Pour retraiter le rapport avec les paramètres nouvellement sélectionnés, cliquez sur Afficher le rapport.

Étapes suivantes

Vous avez créé avec succès un rapport comportant des paramètres en cascade et affichant les ventes des revendeurs par secteur. Dans la prochaine leçon, vous allez apprendre à utiliser les paramètres pour modifier la façon dont les lignes de détail de tableau et les groupes de tableau sont triés. Voir Leçon 3 : Modification du tri initial et du tri interactif à l'aide de paramètres.

Voir aussi

Autres ressources

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

Aide et Informations

Assistance sur SQL Server 2005