Leçon 2 : ajout de paramètres pour créer une liste de valeurs disponibles (Générateur de rapports version 2.0)

Les valeurs disponibles (ou valeurs valides) fournissent à l'utilisateur la liste des valeurs possibles pour un paramètre de rapport. Vous pouvez fournir des valeurs valides à partir d'une requête spécifiquement conçue pour récupérer un ensemble de valeurs de la source de données ou fournir un ensemble prédéfini de valeurs. En liant un ensemble de valeurs disponibles à une requête de dataset qui s'exécute lors du traitement du rapport, vous êtes assuré qu'un utilisateur peut uniquement choisir des valeurs qui existent dans la source de données sous-jacente.

Dans cette leçon, vous allez modifier le rapport Sales Order pour proposer une liste déroulante de noms de commerciaux disponibles à partir de la base de données AdventureWorks2008. Vous allez définir une propriété de table de manière à afficher un message lorsqu'il n'existe aucune ligne dans le jeu de résultats correspondant à la valeur de paramètre sélectionnée. Lorsque vous choisissez un nom et affichez le rapport, celui-ci ne propose que les ventes réalisées par ce commercial.

Pour remplacer la requête de dataset existante

  1. Dans le volet Données du rapport, cliquez avec le bouton droit sur DataSet1, puis cliquez sur Requête. Le concepteur de requêtes s'ouvre.

    Dans le volet Requête, remplacez le texte de requête existant par la requête suivante :

    SELECT
      SH.OrderDate
      ,DATENAME(weekday, SH.OrderDate) as Weekday
      ,SH.SalesOrderNumber
      ,SD.OrderQty
      ,SD.LineTotal
      ,P.Name AS [Product]
      ,PS.Name AS [Subcategory]
    FROM Sales.SalesPerson SP 
      INNER JOIN Sales.SalesOrderHeader AS SH 
          ON SP.BusinessEntityID = SH.SalesPersonID
      INNER JOIN Sales.SalesOrderDetail AS SD 
         ON SH.SalesOrderID = SD.SalesOrderID
      INNER JOIN Production.Product AS P
       ON SD.ProductID = P.ProductID
      INNER JOIN Production.ProductSubcategory AS PS
       ON PS.ProductSubcategoryID = P.ProductSubcategoryID
      INNER JOIN Production.ProductCategory AS PC
       ON PC.ProductCategoryID = PS.ProductCategoryID
    WHERE PC.Name = 'Clothing' 
       AND (SH.OrderDate BETWEEN (@StartDate) AND (@EndDate))
       AND SH.SalesPersonID = (@BusinessPersonID)
    

    Cette requête inclut un paramètre de requête pour le commercial à l'origine de la commande :

    AND SH.SalesPersonID = (@BusinessPersonID)

  2. Cliquez sur le bouton Exécuter (!). Lorsque vous êtes invité à indiquer les paramètres de la requête, utilisez le tableau suivant pour entrer les valeurs.

    @StartDate

    20010101

    @EndDate

    20030101

    @BusinessPersonID

    290

  3. Cliquez sur OK. Le jeu de résultats retourné pour le commercial Ranjit Varkey Chudukatil s'affiche avec SalesPersonID = 290. 

    Vous allez ensuite créer un nouveau dataset qui répertorie les noms des commerciaux.

Pour remplir une liste de valeurs valides pour un paramètre de rapport

  1. Dans la barre d'outils du volet Données du rapport, cliquez sur Nouveau, puis sur Dataset. La boîte de dialogue Propriétés du dataset s'ouvre.

  2. Dans le champ Nom, tapez SalesPersons. Ce dataset sera utilisé pour remplir la liste de valeurs valides du paramètre de rapport SalesPersonID.

  3. Vérifiez que la source de données est AdventureWorks2008.

  4. Cliquez sur Concepteur de requêtes, puis sur Modifier en tant que texte.

  5. Dans le volet de requête, collez la requête Transact-SQL suivante :

    SELECT SP.BusinessEntityID, C.FirstName, C.LastName
    FROM   Sales.SalesPerson AS SP INNER JOIN
         HumanResources.Employee AS E ON E.BusinessEntityID = 
         SP.BusinessEntityID INNER JOIN
         Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID
    ORDER BY SP.BusinessEntityID
    
  6. Cliquez deux fois sur OK. Dans le volet Données du rapport, le nouveau dataset affiche trois champs : BusinessEntityID, FirstName et LastName. Ce dataset sera utilisé pour fournir les valeurs valides du paramètre BusinessPersonID.

    Vous allez ensuite créer un champ de dataset supplémentaire qui concatène FirstName et LastName dans un champ intitulé Name. Les champs que vous définissez sont appelés des champs calculés.

Pour définir un champ calculé dans le volet Données du rapport

  1. Dans la barre d'outils du volet Données du rapport, cliquez avec le bouton droit sur le dataset SalesPersons, puis cliquez sur Ajouter un champ calculé. Lorsque la page Champs de la boîte de dialogue Propriétés du dataset s'ouvre, une nouvelle ligne a été ajoutée à la grille.

  2. Dans la dernière zone de texte Nom du champ, tapez Nom.

  3. Dans la zone de texte Champ source, collez l'expression suivante :

    =Fields!LastName.Value & ", " & Fields!FirstName.Value

  4. Cliquez sur OK.

  5. Dans le volet Données du rapport, sous le dataset SalesPersons, le nouveau champ Name apparaît dans la collection de champs de ce dataset.

    Vous allez ensuite pointer le paramètre de rapport BusinessPersonID vers les valeurs valides de ce dataset.

Pour remplir le paramètre de rapport avec une liste de valeurs disponibles

  1. Dans le volet Données du rapport, développez le nœud Paramètres, cliquez avec le bouton droit sur BusinessPersonID et cliquez sur Propriétés du paramètre.

  2. Dans Invite, tapez Select sales person:.

  3. Dans Type de données, sélectionnez Entier.

  4. Cliquez sur Valeurs disponibles.

  5. Sélectionnez l'option Obtenir les valeurs à partir d'une requête.

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

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

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

    Lorsque vous sélectionnez Nom pour l'étiquette, la liste déroulante des valeurs valides du paramètre BusinessEntityID affiche désormais le nom de chaque commercial au lieu de l'identificateur métier.

  9. Cliquez sur Valeurs par défaut.

  10. Sélectionnez l'option Obtenir les valeurs à partir d'une requête.

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

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

  13. Cliquez sur OK. 

  14. Cliquez sur Exécuter. Le rapport affiche une liste déroulante indiquant le nom des commerciaux.

  15. Cliquez sur Afficher le rapport.

    Le rapport affiche les commandes pour le commercial sélectionné qui correspondent aux limites spécifiées par les paramètres de rapport. Certaines combinaisons de dates, jours de la semaine et commerciaux peuvent ne donner aucun résultat.

Étapes suivantes

Vous avez ajouté une liste de valeurs disponibles pour un paramètre à un rapport existant. Vous allez ensuite modifier les paramètres DayoftheWeek et BusinessPersonID de manière à ce qu'ils acceptent des valeurs multiples. Consultez Leçon 3 : ajout de paramètres pour sélectionner plusieurs valeurs dans une liste (Générateur de rapports version 2.0).