vendredi 29 mars 2013

[SSRS] : Concaténation de plusieurs lignes en une seule

Un petit post rapide, pour montrer comment concaténer plusieurs lignes d'une requête en une seule, par exemple en affichant pour chaque gamme de produit, la liste des produits dans la même cellule, séparés par une virgule.

Le but est de passer de cette représentation :


 A quelque chose qui ressemble à :


Pour cela, la version 2008 R2 a apporté une nouvelle fonction le "LookupSet" qui est, un peu similaire à la fonction "Lookup" mais qui permet de récupérer un jeu de données au lieu d'une seule valeur, à partir d'un autre Dataset.

Dans mon cas les données proviennent du même dataset, donc je me suis livré au jeu et j'ai testé le "LookupSet" en faisant une jointure sur le même champ (Gamme) du Dataset du tableau, et ce qui fonctionne très bien, puisque la requête est généré avant l'évaluation de l'expression SSRS.

Et techniquement, la syntaxe de l'expression SSRS est la suivante :

Join(LookupSet(Fields!GammeDesc.Value, Fields!GammeDesc.Value, Fields!ProduitDesc.Value, "DataSet1"),", ")

Avec en vert, la clé de jointure qui pointe sur le même champ et en bleu le champ qu'on veut récupérer et puis la fonction "Join" pour concaténer le résultat retourné par le "LookupSet".

En espérant que ça pourrait aider.



Aucun commentaire:

Enregistrer un commentaire