SSRS Bericht: Mehrere Werte in URL Parameter übergeben

Nachdem wir bereits einen Artikel über die Übergab von URL-Parametern an Berichte des SSRS geschrieben haben, stellt sich doch die Frage, wie man eigentlich einen Parameter via URL übergibt, der mehrere Werte annimmt.

Report Parameter der mehrere Werte erlaubt

Denn tatsächlich ist das gar nicht so trivial, wenn man es richtig machen will. Deshalb erkläre ich dir hier, wie man über die URL einen Parameter mit mehreren Werten übergeben kann.

Als Beispiel nehmen wir wieder denselben Bericht, also die Bestellübersicht im Matrix42 Service Katalog. Falls du übrigens den vorherigen Artikel nicht gelesen hast, solltest du das jetzt nachholen 😉

Ausgangssituation

Frühen wir uns erst mal die URL Voraugen, die wir im letzten Beitrag erstellt hatten. Bei mir sah diese wie folgt aus:

http://srvwsm001:81/ReportServer/Pages/ReportViewer.aspx?/M42/DE/Service+Catalog/bestellübersicht&UserFragmentID=bfecb19e-cc09-e511-d380-0050562f9516&CostCenter=f4a41c4c-4029-e511-80ee-0050562f9516&MONTH=01&YEAR=2021&rs:Command=RenderCode-Sprache: JavaScript (javascript)

Ziel

Jetzt nehmen wir mal an, ich möchte 2 oder mehrere Kostenstellen in der URL mitgeben. Um das zu bewerkstelligen, muss ich mir einen neuen Parameter im Berichtsgenerator anlegen und diesen zur Vorbelegung des Parameters CostCenter nutzen.

Neuen Parameter hinzufügen

Mache hierzu einen Rechtsklick auf den Ordner “Parameter” → “Add Parameter”

SSRS Parameter hinzufügen

Den Namen darfst du dir selbst ausdenken, wichtig ist, dass Null werte zugelassen sind und der Parameter unsichtbar ist, da er nur für unsere URL ist und ihn ja keiner sehen soll.

SSRS - Versteckten Parameter speichern
Anschließend mit “OK” speichern, sonst müssen wir nichts einstellen.

Da wir diesen als Standardwert für “CostCenter” nehmen wollen, muss der Parameter vor dem Parameter “CostCenter” sein:

Parameter nach oben verschieben

Vorbelegung einstellen

Nun kommen wir zur Magic, wie manche Leute aus dem Marketing von Matrix42 sagen würden 😉

Wir müssen den Parameter CostCenter nun so einstellen, dass er anhand der kommaseparierten Werte, die wir später in ReportParameter1 übergeben, vorbelegt wird.

Hierzu ein Rechtsklick auf CostCenter → ParameterProperties und dann in den Reiter DefaultValues wechseln.

Funktion zur Vorbelegung des Parameters erstellen
Mit der Auswahl von Specific values → Add → Function können wir eine Funktion zur Vorbelegung erstellen.

Mit dieser Funktion greifen wir nun die Werte von unserem verstecktem ReportParameter1 ab und fügen sie mithilfe des Split Befehls kompatibel in den Parameter CostCenter ein.

=Split(Parameters!ReportParameter1.Value,",")Code-Sprache: JavaScript (javascript)
Split Funktion die Werte vom versteckten Parameter übernimmt
Anschließend alle Boxen mit “OK” speichern & schließen. Nicht vergessen auch den Bericht mit der Diskette oben links zu speichern, passiert mir ziemlich oft 😉

Multi URL-Parameter testen

Abschließend müssen wir nur noch den Parameter mit kommaseparierten Werten füllen (und den ursprünglich nicht mehr). Bei mir sieht die URL mit 3 Kostenstellen dann so aus:

http://srvwsm001:81/ReportServer/Pages/ReportViewer.aspx?/M42/DE/Service+Catalog/bestellübersicht&UserFragmentID=bfecb19e-cc09-e511-d380-0050562f9516&ReportParameter1=f4a41c4c-4029-e511-80ee-0050562f9516,f4a41c4c-4029-e511-80ee-0050562f9516,1921bfaa-cd6c-e511-4081-0050562f9516&MONTH=01&YEAR=2021&rs:Command=Render

Hier das Ergebnis:

Bericht mit vorbelegtem Multi-Parameter in Chrome
Ich find es klasse 🙂
0
Du auch?x
morpheus42 Icon

Hallo 👋
Schön, dich zu treffen.

Trag dich ein, um neue ESM-Beiträge direkt in deinen Posteingang zu bekommen!

Wir senden keinen Spam! Erfahre mehr in unserer Datenschutzerklärung.

Foto des Autors
Autor
Simon
Gründer von morpheus42, ESM Senior Consultant, Kaffee-Suchtie & Smart Home Fanatiker. A wise man once said: "Have you cleared the Cache?"

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
Alle Kommentare anzeigen
Send this to a friend