Partager via


Leçon 4 : Ajout d'un paramètre à valeurs multiples avec Sélectionner tout

Mis à jour : 12 décembre 2006

Dans cette leçon, vous allez modifier les paramètres SalesOrderID et DayoftheWeek de paramètres à valeur unique en paramètres à valeurs multiples. Les paramètres à valeurs multiples permettent de sélectionner plusieurs valeurs pour un paramètre de rapport. Pour modifier le paramètre de rapport SalesOrderID, vous allez changer la requête pour que le dataset AdventureWorks teste @SalesPersonID dans l'ensemble des valeurs sélectionnées au lieu d'effectuer le test par rapport à une seule valeur et vérifier la propriété à valeurs multiples du paramètre de rapport. Pour modifier le paramètre de rapport DayoftheWeek, vous allez vérifier la propriété à valeurs multiples, définir les valeurs disponibles à partir d'un nouveau dataset et fournir une expression pour les valeurs par défaut. Vous allez créer un nouveau dataset pour fournir des valeurs disponibles au paramètre DayoftheWeek. Enfin, vous allez ajouter une zone de texte au rapport pour afficher les valeurs de paramètres des sélections DayoftheWeek effectuées.

Pour ouvrir le rapport Sales Orders

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

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

  3. Cliquez sur l'onglet Données.

Pour modifier la requête du dataset afin de tester l'inclusion dans un ensemble de valeurs

  1. Dans la liste déroulante Datasets, choisissez AdventureWorks.

  2. Modifiez la clause WHERE de la requête existante en remplaçant le test d'égalité (= (@SalesPersonID)) de @SalesPersonID par le test d'inclusion (IN (@SalesPersonID)).

    Remplacez la chaîne de requête de ce dataset par la requête ci-après.

    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) 
       AND
       S.SalesPersonID IN (@SalesPersonID)
       )
    
  3. Cliquez sur le bouton Exécuter (!). Lorsque vous êtes invité à fournir les paramètres de requête, utilisez le tableau de valeurs suivant. Le Concepteur de requêtes ne prend pas en charge le test des paramètres à valeurs multiples.

    @StartDate

    20010101

    @EndDate

    20030101

    @SalesPersonID

    286

  4. Cliquez sur OK. L'ensemble de résultats retourné pour le commercial Ranjit Varkey Chudakatil s'affiche avec SalesPersonID = 286.

Pour définir les propriétés du paramètre de rapport SalesPersonID

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

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

  3. Dans la section Propriétés, vérifiez la présence de Valeurs multiples.

  4. Dans la zone de texte Demander, tapez Select Sales Persons: (Sélectionner les commerciaux :).

  5. Cliquez sur OK.

  6. Cliquez sur l'onglet Aperçu. Le rapport affiche une liste déroulante avec les noms des commerciaux.

Aa337396.note(fr-fr,SQL.90).gifRemarque :
Une valeur (Sélectionner tout) est fournie comme première valeur d'une liste déroulante des valeurs disponibles pour un paramètre à valeurs multiples. Utilisez cette case à cocher pour activer ou désactiver l'ensemble des valeurs.
Aa337396.note(fr-fr,SQL.90).gifRemarque :
L'option Sélectionner tout a été désactivée dans SQL Server 2005 Service Pack 1, mais restaurée dans SQL Server 2005 Service Pack 2.

Pour ajouter un nouveau dataset pour les valeurs disponibles de DaysoftheWeek

  1. Sous l'onglet Données, dans la liste déroulante Datasets, choisissez <Nouveau dataset>.

  2. Définissez AdventureWorks comme source de données.

  3. Dans le champ Name, tapez WeekDaysfromQuery.

  4. Collez la chaîne de requête ci-après dans le volet de requête.

    SET DATEFIRST 1;
    SELECT DISTINCT 
       DATEPART(weekday, S.OrderDate) as WeekDayNumber,
       DATENAME(weekday, S.OrderDate) as Weekday
       FROM Sales.SalesOrderHeader S
    Order by WeekDayNumber
    

    DATEFIRST définit le jour à utiliser comme premier jour de la semaine. Par exemple, SET DATEFIRST 7 modifie l'ordre des jours de la semaine de telle sorte que le dimanche constitue le premier jour. Pour plus d'informations, consultez SET DATEFIRST (Transact-SQL).

    Dans ce didacticiel, le premier jour de la semaine est le lundi.

  5. Cliquez sur OK.

  6. Cliquez sur le bouton Exécuter (!) de la barre d'outils du Concepteur de requêtes. L'ensemble de résultats retourné affiche les nombres ordinaux et les jours de la semaine.

Pour définir les propriétés du paramètre de rapport DayoftheWeek

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

  2. Dans le volet Paramètres, sélectionnez DayoftheWeek. Vous avez créé ce paramètre au cours de la leçon 2.

  3. Dans la section Propriétés, vérifiez la présence de Valeurs multiples.

  4. Dans la zone de texte Demander, tapez Filter on which days of the week: (Filtrer sur les jours suivants :).

  5. Dans la liste déroulante Datasets de la section Valeurs disponibles, sélectionnez WeekDaysfromQuery.

  6. Dans la liste déroulante Champ de valeur, sélectionnez Weekday.

  7. Dans la liste déroulante Champ d'étiquette, sélectionnez Weekday.

    Pour les valeurs par défaut, dans la première zone de texte Valeur, tapez Saturday (Samedi) et, dans la seconde zone de texte Valeur, tapez Sunday (Dimanche).

  8. Cliquez sur OK.

    Avant de pouvoir afficher un aperçu du rapport, vous devez modifier l'expression du filtre définie pour la région de données de tableau à utiliser dans l'opérateur IN parce que le paramètre DayoftheWeek est désormais à valeurs multiples.

Pour modifier le filtre afin d'utiliser un paramètre à valeurs multiples

  1. En mode Mise en page, sélectionnez le tableau. Le tableau s'affiche avec un contour gris.

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

  3. Cliquez sur l'onglet Filtre.

  4. Dans la liste déroulante de la colonne Expression, vérifiez que la valeur est =Fields!Weekday.Value.

  5. Modifiez l'opérateur en remplaçant le signe égal (=) par In.

  6. Dans la liste déroulante de la zone de texte Valeur, vérifiez que la valeur est =Parameters!DayoftheWeek.Value.

  7. Cliquez sur OK.

    Le filtre du tableau est désormais défini pour comparer la valeur du champ Weekday à la valeur du paramètre DayoftheWeek à l'aide de l'opérateur In. Quand vous choisissez que le paramètre du rapport soit à valeurs multiples, le filtre teste chaque ligne du tableau pour vérifier que le champ Weekday existe dans la collection DayoftheWeek.

  8. Cliquez sur l'onglet Aperçu. Le rapport affiche le paramètre de rapport DaysoftheWeek avec les valeurs par défaut Saturday et Sunday.

Aa337396.note(fr-fr,SQL.90).gifRemarque :
Une valeur (Sélectionner tout), en dehors de l'exception signalée dans une précédente procédure, est fournie comme première valeur d'une liste déroulante des valeurs disponibles pour un paramètre à valeurs multiples. Utilisez cette case à cocher pour activer ou désactiver l'ensemble des valeurs.

Pour ajouter une zone de texte afin d'afficher les valeurs de paramètres

  1. En mode Mise en page, sélectionnez le tableau. Appuyez plusieurs fois sur la touche BAS pour déplacer le tableau vers le bas et développez la hauteur du rapport.

  2. À partir de la boîte à outils, faites glisser une zone de texte au-dessus du tableau. Sélectionnez un bord de la zone de texte et développez sa largeur pour qu'elle corresponde à celle du tableau.

  3. Collez l'expression suivante dans la zone de texte :

    ="From " & Parameters!StartDate.Value & " to " & 
    Parameters!EndDate.Value & vbCrLf & "For the following " & 
    Parameters!DayoftheWeek.Count & " days of the week: " & 
    Join(Parameters!DayoftheWeek.Value,", ") & vbCrLf &
    "First and last selected salespersons: " & 
    Parameters!SalesPersonID.Label(0) & " and " & 
    Parameters!SalesPersonID.Label(Parameters!SalesPersonID.Count-1)
    

    Plusieurs points sont à noter pour cette expression 

    • Vous pouvez faire référence à l'étiquette du paramètre à la place de sa valeur. Par exemple : Parameters!SalesPersonID.Label au lieu de Parameters!SalesPersonID.Value.
    • Pour adresser un membre particulier d'une collection de paramètres, utilisez l'index de base zéro. Par exemple : Parameters!SalesPersonID.Label(0).
    • Pour adresser l'ensemble de la collection, n'utilisez aucun index. Par exemple : Parameters!SalesPersonID.Value.
    • Pour rechercher le nombre de valeurs, utilisez Parameters!SalesPersonID.Count.
    • Vous pouvez aussi déterminer si un paramètre est à valeurs multiples. Par exemple : Parameters!SalesPersonID.IsMultivalue.
    • Vous pouvez concaténer toutes les valeurs sélectionnées dans un paramètre à valeurs multiples en utilisant la fonction Visual Basic Join. Par exemple, Join(Parameters!DayoftheWeek.Value,", ").
  4. Cliquez sur Aperçu. Vérifiez que lorsque vous cliquez sur Afficher le rapport, la zone de texte affiche les valeurs que vous avez sélectionnées dans les paramètres.

Étapes suivantes

Vous avez modifié avec succès les propriétés des paramètres de rapport de valeur unique en valeurs multiples. Vous avez effectué les modifications nécessaires dans une requête, un filtre et une expression à accueillir, à l'aide d'une collection de paramètres à valeurs multiples. Vous avez appris à utiliser les paramètres à valeurs multiples dans une expression. Dans la prochaine leçon, vous allez apprendre à créer un paramètre booléen pour contrôler la quantité de détails à visualiser dans un rapport. Voir Leçon 5 : Ajout d'un paramètre pour contrôler la visibilité d'une ligne.

Historique des modifications

Version Historique

12 décembre 2006

Contenu modifié :
  • Option Sélectionner tout restaurée dans SP 2.

Voir aussi

Tâches

Leçon 1 : Création d'un projet Report Server pour le didacticiel sur les paramètres

Autres ressources

Utilisation de paramètres dans Reporting Services

Aide et Informations

Assistance sur SQL Server 2005