[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’.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. - 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).
- 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.
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 :
- [SSRS] Comment utiliser un seul dataset pour remplir un paramètre et sélectionner sa valeur par défaut.
- SQL SERVER – Create a Very First Report with the Report Wizard