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

Joyeux Noel 2024, bonnes fêtes de fin d’année

Voilà 10 ans que je n'avais pas écrit un petit texte pour souhaiter un joyeux… Read More

4 mois ago

Fin des vacances d’halloween (1er novembre), bon retour en classe

Cela faisait un petit moment que je n'avais pas créé de billets sur ce blog.… Read More

6 mois ago

Agile | L’importance d’écrire des tâches pour une User Story

Explorez l'importance des user stories dans la méthode Agile à travers une vidéo humoristique qui… Read More

5 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

6 ans ago

[Actu] Élections présidentielles 2017

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

8 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

9 ans ago