Leçon 2 : Ajout de paramètres pour filtrer par date
Nouveau : 17 juillet 2006
En incluant des paramètres de date de début et de date de fin dans une requête de votre rapport, vous pouvez spécifier une plage de dates qui réduit les données extraites de la source de données. Vous pouvez créer des paramètres supplémentaires pour filtrer les données une fois qu'elles ont été extraites de la source de données.
Dans cette leçon, vous allez ajouter les paramètres de requête @StartDate et @EndDate. Vous allez noter que les paramètres de rapport sensibles à la casse StartDate et EndDate (sans l'indicateur @ de paramètre de requête) sont créés automatiquement. Remarquez que les fournisseurs de données utilisent différents indicateurs de paramètre de requête ; par exemple, le fournisseur de données Oracle utilise le signe deux points (:) au lieu du symbole (@).
Vous allez définir DateTime comme type de données des paramètres et voir qu'un contrôle calendrier s'affiche sur la barre d'outils avec la zone de texte du paramètre. Vous allez définir des valeurs par défaut pour les paramètres afin que le rapport puisse s'exécuter automatiquement. Enfin, vous allez créer un paramètre de rapport DayofWeek qui n'est pas lié à un paramètre de requête et l'utiliser pour filtrer les données une fois que celles-ci ont été extraites de la source de données.
Pour ajouter des paramètres de date à votre requête
En mode Données, sélectionnez le dataset AdventureWorks.
Remplacez la requête existante par la requête suivante :
SELECT S.OrderDate, S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName 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)) -- Accurate Enddate would be '20020228 23:59:59.997'
Remarque : SQL Server stocke les données DATETIME avec une précision égale à trois centièmes de seconde. Pour plus d'informations, consultez Date et Time (Transact-SQL). Si les résultats filtrés reçus à l'aide d'une variable DateTime ne sont pas ceux attendus, il se peut que vous ayez à utiliser une heure plus précise dans votre paramètre de requête. Dans ce didacticiel, vous allez utiliser des valeurs datetime approximatives.
Cliquez sur le bouton Exécuter (!) de la barre d'outils. La boîte de dialogue Définir les paramètres de la requête s'affiche.
Dans la colonne Valeur du paramètre, entrez la valeur de @StartDate. Par exemple, 20010101.
Dans la colonne Valeur du paramètre, entrez la valeur de @EndDate. Par exemple, 20030101.
Cliquez sur OK. Les paramètres de rapport StartDate et EndDate sont créés automatiquement, avec String comme type de données par défaut. Dans les trois prochaines étapes, vous allez attribuer le type de données DateTime à ces paramètres.
Dans le menu Rapport, sélectionnez Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.
Dans la zone de liste Paramètres, vérifiez que StartDate est sélectionné. Dans la liste déroulante Type de données, sélectionnez DateTime.
Dans la zone de liste Paramètres, sélectionnez EndDate. Dans la liste déroulante Type de données, sélectionnez DateTime.
Cliquez sur OK.
Cliquez sur Aperçu. Les deux paramètres StartDate et EndDate apparaissent chacun dans la barre d'outils avec un contrôle calendrier. Les contrôles calendrier apparaissent automatiquement quand le paramètre a DateTime pour type de données et que vous n'avez pas défini une liste des valeurs disponibles. La définition d'une liste des valeurs disponibles entraîne la création d'une liste déroulante de valeurs au lieu d'un contrôle calendrier.
Dans ce didacticiel, vous allez entrer une valeur pour les données au lieu d'utiliser le contrôle calendrier.
Dans la zone de texte du paramètre StartDate, entrez la date 2001-01-01.
Dans la zone de texte du paramètre EndDate, entrez la date 2003-01-01.
Cliquez sur Afficher le rapport. Le rapport n'affiche que les enregistrements de données qui appartiennent à l'intervalle des valeurs des paramètres de rapport.
Après avoir créé les paramètres de requête pour le rapport, vous pouvez ajouter les valeurs par défaut de ces paramètres. Les paramètres par défaut permettent au rapport de s'exécuter automatiquement ; sinon, l'utilisateur doit entrer les valeurs des paramètres pour que le rapport s'exécute.
Pour définir les valeurs par défaut des paramètres de date
En mode Mise en page, dans le menu Rapport, sélectionnez Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.
Dans la zone de liste Paramètres, vérifiez que StartDate est sélectionné.
Dans la section des valeurs par défaut, sélectionnez Sans requête et tapez 2001-01-01. Appuyez sur la touche TAB pour quitter la zone de texte.
Dans la zone de liste Paramètres, sélectionnez EndDate.
Dans la section des valeurs par défaut, sélectionnez Sans requête et tapez 2003-01-01. Appuyez sur la touche TAB pour quitter la zone de texte.
Cliquez sur OK.
Cliquez sur Aperçu. Le rapport s'exécute immédiatement parce que des valeurs par défaut ont été définies pour tous les paramètres.
Quand les utilisateurs du rapport l'exécutent, ils peuvent définir les valeurs par défaut avec les valeurs de paramètre qui appartiennent à l'étendue des paramètres de requête. Par exemple, vous pouvez fournir des valeurs de paramètre de rapport qui limitent les données restituées à un seul mois.
Pour ajouter un nouveau champ à la requête utilisée pour le filtrage
En mode Données, sélectionnez le dataset AdventureWorks.
Dans la requête, définissez une colonne calculée supplémentaire pour le jour de la semaine où une vente intervient en ajoutant la commande suivante à l'instruction SELECT : DATENAME(weekday, S.OrderDate) as Weekday.
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 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))
Cliquez sur Exécuter (!). Vous devez visualiser une nouvelle colonne intitulée Weekday, ainsi que les noms des jours de la semaine.
Dans la fenêtre Datasets, vérifiez que Weekday est bien un champ.
Remarque : Si la fenêtre Datasets n'est pas visible, dans le menu Affichage, sélectionnez Datasets. Vous avez ajouté le champ de dataset supplémentaire Weekday. Lorsque vous créez manuellement un paramètre de rapport et le liez à ce champ, les utilisateurs peuvent filtrer les données du rapport sur le jour de la semaine.
Pour ajouter un nouveau paramètre de rapport
Cliquez sur l'onglet Mise en page.
Dans le menu Rapport, sélectionnez Paramètres du rapport. La boîte de dialogue Paramètres du rapport s'ouvre.
Cliquez sur Ajouter. Un nouveau paramètre, Report_Parameter_2, s'affiche avec les valeurs par défaut.
Dans la section Propriétés, dans la zone de texte Nom, remplacez Report_Parameter_2 par DayoftheWeek. Vérifiez que le type de données est String.
Dans la zone de texte Demander, tapez Filter on which day of the week: (Filtrer sur le jour suivant :).
Désactivez la case à cocher Autoriser une valeur vide.
Dans la section Valeurs disponibles, sélectionnez Sans requête. Laissez les entrées vides.
Dans la section Valeurs par défaut, sélectionnez Sans requête. Dans la zone de texte, tapez Sunday (Dimanche).
Cliquez sur OK.
Pour définir un filtre de tableau avec une expression de paramètre
En mode Mise en page, sélectionnez le tableau. Le tableau s'affiche avec un contour gris.
Cliquez avec le bouton droit sur le contour du tableau et sélectionnez Propriétés. La boîte de dialogue Propriétés du tableau s'ouvre.
Cliquez sur l'onglet Filtres.
Dans la liste déroulante de la colonne Expression, sélectionnez =Fields!Weekday.Value.
Vérifiez que l'Opérateur est le signe égal (=).
Cliquez dans la zone de texte Valeur et, dans la liste déroulante, sélectionnez <Expression>. La boîte de dialogue Modifier l'expression s'affiche.
Dans le volet des variables globales, cliquez sur Paramètres. La liste des paramètres en cours apparaît dans le volet opposé.
Double-cliquez sur DayoftheWeek. L'expression de paramètre est ajoutée à la zone de texte de l'expression. L'expression suivante apparaît maintenant dans la zone de texte de l'expression : =Parameters!DayoftheWeek.Value.
Cliquez sur OK.
Cliquez sur OK.
Le filtre du tableau est désormais défini pour comparer la valeur du champ Weekday à la valeur de paramètre de DayoftheWeek. Par exemple, lorsque vous entrez la valeur Sunday dans la barre d'outils du rapport pour DayoftheWeek, le processeur de rapports ne traite que les lignes du tableau où le champ Weekday a pour valeur Sunday.
Cliquez sur Aperçu. Comme tous les paramètres possèdent des valeurs par défaut, le rapport s'exécute automatiquement. Le tableau n'affiche que les valeurs qui appartiennent à la plage de dates définie par StartDate et EndDate, et qui tombent un dimanche.
Dans la prochaine procédure (facultative), vous allez ajouter une mise en forme à l'en-tête du tableau.
(Facultatif) Pour définir la couleur d'arrière-plan et de police pour la ligne d'en-tête du tableau
Cliquez sur l'onglet Mise en page.
Cliquez à l'intérieur du tableau. Les poignées du tableau apparaissent.
Cliquez sur la ligne d'en-tête du tableau. Dans la barre d'outils de mise en page, cliquez sur le bouton Couleur d'arrière-plan. La boîte de dialogue Choisir une couleur s'affiche.
Sous l'onglet Web, choisissez Rouge foncé.
Cliquez sur OK.
Ensuite, choisissez la couleur de police.
Dans la barre d'outils de mise en page, cliquez sur le bouton Couleur de premier plan. La boîte de dialogue Choisir une couleur s'affiche.
Sous l'onglet Web, choisissez Blanc.
Cliquez sur OK.
Cliquez sur Aperçu. Le tableau s'affiche avec les couleurs choisies pour la ligne d'en-tête du tableau.
Étapes suivantes
Vous avez défini avec succès des paramètres de requête et des paramètres de rapport, ainsi que leurs valeurs par défaut, et lié un paramètre de rapport à un champ calculé. Dans la prochaine leçon, vous allez apprendre à créer une liste de valeurs disponibles, ou valeurs valides, pour un paramètre. Voir Leçon 3 : Ajout d'un paramètre à valeur unique avec une liste des valeurs disponibles.
Voir aussi
Tâches
Leçon 1 : Création d'un projet Report Server pour le didacticiel sur les paramètres