Categories: Visual Studio / SSRS

[SSRS] Trier les données à l’ouverture d’un sous rapport via le passage d’un paramètre

Avec SSRS (sql server reporting services), vous ne pouvez passer une donnée entre deux rapports qu’à l’aide de paramètres. Nous allons donc voir comment utiliser un paramètre pour choisir une clef de tri d’un tableau d’un rapport ouvert depuis un autre rapport.


La méthode décrite ci-dessous permet de gérer le tri de vos données sans toucher à votre requête SQL ou MDX.
Pour cela, nous allons effectuer 3 étapes assez simples :

  • 1. Créer le paramètre de tri dans le sous rapport
    Dans ‘report Data’, cliquez sur ‘Parameters’ puis sur ‘Add Parameters’.
    Dans l’onglet général, nommez votre paramètre ‘Tri’.
    Création d’un paramètre de tri

    Dans l’onglet ‘Available Value’, sélectionnez ‘Specify values’. C’est ici, que nous allons créer les différentes clefs de tri possible.
    Créez autant de clef de valeur que de clef de tri que vous souhaitez. Je vous conseille de donner des noms de valeurs le plus simple possible.
    Ex : Label : ‘Classement par année’. Valeur : ‘Year’
    La casse de votre valeur sera importante pour la suite. Donc faites-y attention.

    Spécification des valeurs possibles pour le paramètres

  • 2. Lier le paramètre au tri du groupe
    Dans la liste de vos ’row groups’ (ils s’affichent en bas de votre écran lorsque vous sélectionnez votre matrix ou votre tableau) faites un clic droit propriété sur celui sur lequel vous voulez que s’effectue le tri.
    Dans l’onglet ‘Sorting’, cliquez sur le bouton ‘Add’ afin de rajouter un tri.
    Cliquez sur le bouton d’expression (fx) pour ajouter l’expression en Visual Basic de tri suivante (à adapter bien sûr en fonction de vos besoins) :
    =SWITCH(
         Parameters!tri.Value  = "Year", Fields!Year.Value
       , Parameters!tri.Value  = "Gross", Fields!Gross_Amount.Value
       , Parameters!tri.Value  = "Net", Fields!Net_Amount.Value
    )
    

    Pour information, l’expression suivant est une fonction de choix, qui en fonction de la valeur du paramètre de tri (Parameters!tri.Value = « Year ») va indiquer sur quel champs doit se faire le tri (Fields!Year.Value).

    Expression en VB permettant de faire fonctionner le tri

  • 3. Appeler le sous rapport depuis le rapport principal en lui passant la clef de tri
    C’est le fonctionnement classique de passage de paramètre entre rapport.
    Allez dans votre rapport père.
    Faites un clic droit propriété sur l’élément sur lequel vous voulez rajouter une action.
    Dans l’onglet ‘action’, sélectionnez l’option ‘Go to report’
    Choisissez le rapport que vous souhaitez ouvrir.
    Ajout d’une action permettant d’ouvrir un sous rapport avec SSRS

    Cliquez sur le bouton ‘Add’ pour ajouter un paramètre à passer au rapport enfant.
    Comme nom du paramètre saisissez ‘tri’.
    Comme valeur du paramètre saisissez une des valeurs que vous avez créé précédemment (attention à la casse).

Testez et tout devrait fonctionner 🙂



Pour aller plus loin je vous propose de lire aussi :


Arnaud

Webmaster & Administrateur de UIOP.

Share
Published by
Arnaud

Recent Posts

[Agile] De l’importance d’écrire des taches claires pour vos User Stories

Dans le monde de l'agilité, le Product Owner se doit d'écrire des user stories simples,… Read More

4 ans ago

[Actu] Printemps des poètes

Parce que, contrairement à ce que l'on pourrait penser ce soir qu'il pleut des cordes,… Read More

5 ans ago

[Actu] Élections présidentielles 2017

Un peu d’humour en attendant le résultat des élections présidentielles françaises. Read More

7 ans ago

[Linux] Activer/Désactiver l’UTC en ligne de commande

Si vous n'avez pas accès à l'interface graphique de votre Linux, vous pouvez modifier l'horloge… Read More

8 ans ago

[Actu] Ces fous qui attaquent Paris

Si quelqu'un m'avait dit en Janvier que je réécrirais un article dans l'année sur des… Read More

8 ans ago

[Actu] Fin des vacances, c’est la rentrée 2015 !

Il y a quelques semaines, mois, voire années (tout est subjectif) nos enfants (et nos… Read More

9 ans ago