none
SSRS - Comment créer plusieurs chevauchements de critères optionnels

    Question

  • Bonjour,

    J'utilise SSRS 2008 R2 et je cherche comment faire pour créer plusieurs niveaux de critères sql ou de filtres pour un rapport aux quels je pourrais activer/désactiver au besoin. Ainsi, pour un ensemble de données, je pourrais demander la liste filtrée par nom='Royer'. Je pourrais aussi filter par ville (au besoin).

    Il est certain qu'il est plus efficace de filtrer directement par sql pour minimiser le flux de données.

    Si quelqu'un connait une solution, je vous serais grée de m'aider.

    Merci d'avance à tous!


    • Déplacé Ciprian Duduiala mercredi 31 août 2011 06:30 (Origine :SQL Server pour les développeurs)
    mardi 30 août 2011 13:37

Toutes les réponses

  • Bonjour

    Pour pouvoir faire celà vous pouvez soit utiliser les paramètres directement dans vos dataset, soit utiliser les filtres.

    Je m'explique, il est possible de créer un DataSet qui sert de liste de données pour les valeurs disponible pour un paramètre donné.
    Cette requête dans le dataset peut prendre un paramètre elle aussi :

    SELECT
     DimCurrency.CurrencyKey
     ,DimCurrency.CurrencyAlternateKey
     ,DimCurrency.CurrencyName
    FROM
     DimCurrency
    WHERE DimCurrency.CurrencyName LIKE @p

    Ici @p est un paramètre de la requête SQL, dans les propriétés du Dataset et l'onglet "Paramètres", Reporting Services vous offrira la possibilité de mapper ce paramètre de requête @p avec n'importe quel paramètre du rapport.

    Il y a une seconde solution, toujours dans les propriétés du DataSet, mais cette fois avec une requête plus simple :

    SELECT
     DimCurrency.CurrencyKey
     ,DimCurrency.CurrencyAlternateKey
     ,DimCurrency.CurrencyName
    FROM
     DimCurrency

    Allez sur l'onglet "Filtres" et acliquez sur Ajouter. Vous pourrez alors indiquer une condition entre une des colonnes du DataSet et une formule, cliquez sur fx et vous aurez accès à la liste des paramètres du rapport.

    La principale différence entre les 2 méthodes, c'est que la première executera la requête contenu dans le DataSet à chauqe changement du paramètre source, la seconde chargera les données une fois pour toute et le filtre se fera du côté de Reporting Services. Le choix se fait en fonction du volume de données et des aller/retour souhaités ou non entre RS et le serveur de données source.

    Bonne journée

     


    Christian Robert - MVP SQL Server - Microsoft Certified Master - SQL Server 2008
    Blog : http://www.sqlnco.ch
    Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr
    mardi 30 août 2011 14:27
    Modérateur
  • Accessoirement si un modérateur peut déplacer le topic dans "SQL Server - Décisionnel (modules BI de SQL Server)", çà sera plus çà place.

    Merci


    Christian Robert - MVP SQL Server - Microsoft Certified Master - SQL Server 2008
    Blog : http://www.sqlnco.ch
    Groupe des Utilisateurs Francophone de SQL Server : http://www.guss.fr
    mardi 30 août 2011 21:58
    Modérateur