Leçon 3 : Ajout d'un paramètre à valeur unique avec une liste des valeurs disponibles
Nouveau : 17 juillet 2006
Les valeurs disponibles, ou valeurs valides, fournissent au lecteur du rapport la liste des valeurs possibles pour un paramètre de rapport. En tant que créateur du rapport, vous pouvez fournir les valeurs valides à partir d'une requête spécifiquement conçue pour extraire 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 vous assurez que seules les valeurs existant dans la base de données peuvent être choisies au sein de la liste déroulante.
Dans cette leçon, vous allez modifier le rapport Sales Orders pour proposer une liste déroulante de noms de commerciaux disponibles à partir de la base de données AdventureWorks. Vous allez définir une propriété de tableau de façon à afficher un message quand 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-là.
Pour ouvrir le rapport Sales Orders
Dans SQL Server Business Intelligence Development Studio, ouvrez le projet Report Server de didacticiel créé dans la précédente leçon.
Dans l'Explorateur de solutions, double-cliquez sur le rapport Sales Orders. Le rapport s'ouvre en mode Mise en page.
Cliquez sur l'onglet Données.
Pour ajouter un paramètre de requête à la requête de dataset AdventureWorks
Dans la liste déroulante Datasets de l'onglet Données, sélectionnez AdventureWorks.
Ajoutez un nouveau paramètre de requête, @SalesPersonID, à la requête. Dans la requête, développez la clause WHERE pour inclure la comparaison suivante :
AND S.SalesPersonID = (@SalesPersonID)
.Remplacez la requête existante par le texte suivant :
SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName, C.ContactID FROM HumanResources.Employee E INNER JOIN Person.Contact C ON E.ContactID = C.ContactID INNER JOIN Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID WHERE ( S.OrderDate BETWEEN (@StartDate) AND (@EndDate) AND S.SalesPersonID = (@SalesPersonID) )
Remarque : Les parenthèses autour du paramètre de requête constituent un aspect important de la syntaxe de la requête. Cliquez sur le bouton Exécuter (!). Lorsque vous êtes invité à fournir les paramètres de requête, utilisez le tableau de valeurs suivant.
@StartDate
20010101
@EndDate
20030101
@SalesPersonID
286
Cliquez sur OK. L'ensemble de résultats retourné pour le commercial Ranjit Varkey Chudakatil s'affiche avec SalesPersonID = 286.
(Facultatif) Vérifiez que le paramètre de requête @SalesPersonID possède la valeur suivante :
=Parameters!SalesPersonID.Value
. Cliquez sur le bouton Modifier le dataset sélectionné (…), puis sélectionnez l'onglet Paramètres.(Facultatif) Vérifiez que le paramètre de rapport SalesPersonID a bel et bien été créé automatiquement. Dans le menu Rapport, sélectionnez Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre. Vérifiez que SalesPersonID se trouve bien dans le volet Paramètres. Vous modifierez ce paramètre dans une procédure ultérieure de cette rubrique.
Dans la prochaine procédure, vous allez créer un dataset distinct qui fournit les valeurs de la liste des valeurs disponibles pour le paramètre de rapport SalesPersonID.
Pour créer le dataset SalesPersons pour les valeurs disponibles
Dans la liste déroulante Dataset, sélectionnez <Nouveau dataset>. La boîte de dialogue Dataset s'affiche.
Définissez le nom du nouveau dataset. Dans le champ Nom, tapez SalesPersons. Ce dataset sera utilisé comme entrée de votre liste de valeurs valides.
Collez la requête Transact-SQL suivante dans le volet de requête :
SELECT SP.SalesPersonID, C.FirstName, C.LastName FROM Sales.SalesPerson AS SP INNER JOIN HumanResources.Employee AS E ON E.EmployeeID = SP.SalesPersonID INNER JOIN Person.Contact AS C ON C.ContactID = E.ContactID
Cliquez sur le bouton Exécuter (!). Les colonnes SalesPersonID, FirstName et LastName apparaissent dans le jeu de résultats et comme champs du dataset SalesPersons.
Bien que vous puissiez ajouter des champs calculés à votre requête (par exemple, ajouter
LastName + N' ' + FirstName as Name
à votre instruction SELECT en tant que colonne supplémentaire), Reporting Services offre un moyen de créer de nouveaux champs calculés à partir de champs de dataset existants. Vous pouvez recourir à cette fonctionnalité quand votre requête utilise des procédures stockées qui extraient un ensemble prédéfini de colonnes. Dans la prochaine procédure, vous allez créer un champ du dataset qui combine deux champs existants.
Pour ajouter un nouveau champ de dataset calculé
Dans la fenêtre Datasets, cliquez avec le bouton droit sur le dataset SalesPersons et sélectionnez Ajouter.
Si la fenêtre Datasets n'est pas affichée, cliquez sur ALT+CTRL+D.
Dans la zone de texte Nom, tapez Name.
Sélectionnez l'option Champ calculé.
Collez l'expression suivante dans la zone de texte :
=Fields!LastName.Value + ", " + Fields!FirstName.Value
Cliquez sur OK.
Dans la barre d'outils des données, cliquez sur Actualiser les champs. Le nouveau champ Name apparaît dans la collection de champs du dataset SalesPersons.
Dans la prochaine procédure, vous allez définir la propriété de région de données de tableau NoRows. Le texte de cette propriété s'affiche quand les données extraites pour le dataset associé du tableau ne contiennent aucun résultat.
Pour ajouter un message NoRows au tableau
Cliquez sur l'onglet Mise en page pour passer en mode Mise en page.
Dans le menu Affichage, sélectionnez Fenêtre Propriétés.
Dans la liste déroulante des objets de la fenêtre Propriétés, sélectionnez le tableau. Par défaut, le nom du tableau est table1.
Dans la fenêtre Propriétés, faites défiler l'écran jusqu'à NoRows.
Cliquez dans la zone de texte située à côté de NoRows et tapez le texte suivant :
No results available for this combination of parameters. (Aucun résultat disponible pour cette combinaison de paramètres.)
Ce message s'affiche quand le jeu de résultats d'un paramètre de requête particulier ne produit aucune ligne.
(Facultatif) Cliquez sur Aperçu. Dans le paramètre SalesPersonID, tapez 1. Le message NoRows s'affiche à la place de la région de données du tableau.
Dans la procédure suivante, vous allez modifier le paramètre de rapport SalesPersonID généré automatiquement. Vous allez définir les propriétés du rapport de façon à afficher le nom du commercial dans la liste déroulante des valeurs disponibles à la place de l'identificateur de base de données.
Pour définir les propriétés du paramètre de rapport SalesPersonID
Dans le menu Rapport, sélectionnez Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre. Le paramètre SalesPersonID s'affiche dans le volet Paramètres.
Dans la liste déroulante Type de données, sélectionnez Entier.
Dans la zone de texte Demander, tapez Select Sales Person: (Sélectionner le commercial :).
Dans la section Valeurs disponibles, sélectionnez Avec requête.
Dans la liste déroulante Dataset, sélectionnez SalesPersons.
Pour le champ Value, sélectionnez SalesPersonID.
Pour le champ Label, sélectionnez Name.
La liste déroulante des valeurs valides pour le paramètre SalesPersonID affiche désormais le nom de chaque commercial au lieu du paramètre SalesPersonID.
Dans la section Valeurs par défaut, sélectionnez Avec requête.
Dans la liste déroulante Dataset, sélectionnez SalesPersons.
Pour le champ Value, sélectionnez SalesPersonID.
Cliquez sur OK.
Cliquez sur l'onglet Aperçu. Le rapport affiche une liste déroulante avec les noms des commerciaux.
Étapes suivantes
Vous avez ajouté avec succès un paramètre à valeur unique à un rapport existant. Ensuite, vous allez modifier les paramètres DayoftheWeek et SalesOrderID en paramètres à valeurs multiples. Voir Leçon 4 : Ajout d'un paramètre à valeurs multiples avec Sélectionner tout.
Voir aussi
Autres ressources
Utilisation de paramètres dans Reporting Services
Utilisation de paramètres à valeur unique et à valeurs multiples
Utilisation de paramètres dans les expressions