{"id":142,"date":"2010-04-02T12:00:13","date_gmt":"2010-04-02T11:00:13","guid":{"rendered":"http:\/\/csopro.de\/biblog\/2010\/04\/ssrs-darstellung-von-multi-valued-parametern-im-report\/"},"modified":"2014-12-31T18:29:05","modified_gmt":"2014-12-31T17:29:05","slug":"ssrs-darstellung-von-multi-valued-parametern-im-report","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2010\/04\/ssrs-darstellung-von-multi-valued-parametern-im-report\/","title":{"rendered":"SSRS: Darstellung von multi-valued Parametern im Report"},"content":{"rendered":"<p>In Berichten ist es eine gute Angewohnheit, die durch den Benutzer ausgew\u00e4hlten Parameter im Bericht anzuzeigen.<\/p>\n<p>Bei Parametern, die dem Benutzer nur einen Wert einzugeben, ist das einfach, da dieser Ausdruck im Ausdruck-Editor einfach zusammengeklickt werden kann, zu z.B.<\/p>\n<blockquote>\n<p>=&#8220;Eingegebene Zahl: &#8220; &amp; Parameters!EinfacherParam.Value<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/paramsmiteinemwert.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"Parameter mit einem Wert\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/paramsmiteinemwert-small.jpg\" width=\"450\" height=\"408\" \/><\/a><\/p>\n<p>(Zum Vergr\u00f6\u00dfern aufs Bild klicken)<\/p>\n<p>Wenn es sich aber um einen Multi-Value Parameter (wie in meinem Beispiel der Parameter &#8222;Wochentag&#8220;) handelt, dann erzeugt der Ausdruck-Editor &#8230; Parameters!Wochentag.Value(0), was den Value (das ist der Schl\u00fcssel) ersten ausgew\u00e4hlten Wochentag ausgibt.<\/p>\n<p>Da mir aber etwas wie &#8222;Sie haben folgende Wochentage ausgew\u00e4htl: Montag, Dienstag, &#8230;&#8220; vorschwebt, m\u00fcssen wir zun\u00e4chst den Label anzeigen lassen und nicht den Schl\u00fcssel. Das geht \u00fcber Parameters!Wochentag.<strong>Label<\/strong>(0).<\/p>\n<p>Nun wollen wir aber alle ausgew\u00e4hlten Parameterwerte sehen und nicht nur den ersten. Da es sich bei Parameters!Wochentag.Label offensichtlich um ein Array handelt (Array startet mit Position 0), kann man \u00fcber die Join-Funktion die einzelnen Werte konkatenieren.<\/p>\n<p>Dazu kann man folgenden Code im Ausdruck-Fenster eingeben:<\/p>\n<blockquote>\n<p>=&#8220;Alle (via Ausdruck): &#8220; &amp;<br \/>\nJoin(Parameters!Wochentag.Label, &#8222;, &#8222;)<\/p>\n<\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"Alle Params via Ausdruck\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/alleparamsviaausdruck.jpg\" width=\"403\" height=\"132\" \/><\/p>\n<p>Damit endet die M\u00f6glichkeit im Ausdruck-Fenster.<\/p>\n<p>Will man weitere Funktionalit\u00e4t einbauen, wie z.B. die Liste 1-Montag, 2-Dienstag, &#8230;, so kann man das dadurch erreichen, dass man im Code-Fenster auf die Parameter und ihre Werte zugreifen kann:<\/p>\n<p><a href=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/code.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"Code eingeben\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/code-small.jpg\" width=\"450\" height=\"254\" \/><\/a><\/p>\n<p>(Zum Verg\u00f6\u00dfern Bild anklicken)<\/p>\n<p>Das Code-Fenster erreicht man \u00fcber Bericht &gt; Berichsteigenschaften &gt; Code.<\/p>\n<p>Dort habe ich folgenden Code eingef\u00fcgt:<\/p>\n<blockquote>\n<p>function ParameterwerteVerkettet(ParamName as string)<br \/>\ndim i as integer<br \/>\ndim erg as string<\/p>\n<p>for i = 1 to Report.Parameters(ParamName).Count<br \/>\nerg = erg &amp; Report.Parameters(ParamName).Value(i-1) &amp; &#8222;: &#8222;<br \/>\nerg = erg &amp; Report.Parameters(ParamName).Label(i-1)<br \/>\nif i&lt;&gt; Report.Parameters(ParamName).Count Then erg = erg &amp; &#8222;; &#8222;<br \/>\nnext i<\/p>\n<p>ParameterwerteVerkettet=erg<br \/>\nend function<\/p>\n<\/blockquote>\n<p>Wie man sieht, kann man einfach in dem VB-Code auf die Parameter-Arrays Value und Label zugreifen.<\/p>\n<p>Diese Funktion ruft man dann im Ausdruck wie folgt auf:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"Ausdruck via Code\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/ausdruckviacode-1.jpg\" width=\"449\" height=\"125\" \/><\/p>\n<p>Mein fertiger Bericht sieht dann wie folgt aus:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"fertiger Report\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2010\/04\/fertigerreport.jpg\" width=\"447\" height=\"324\" \/><\/p>\n<p>Das RDL kann man hier runterladen: <a title=\"Link zur Report-Datei\" href=\"https:\/\/www.csopro.de\/blogdateien\/ParamsAnzeigen.rdl\" target=\"_blank\">www.csopro.de\/blogdateien\/ParamsAnzeigen.rdl<\/a><\/p>\n<p>Noch einige weiterf\u00fchrende Hinweise:<\/p>\n<ul dir=\"ltr\">\n<li>\n<div>Leider kann man auf die Datasets eines Reports nicht im Code zugreifen (zumindest ist mir keine L\u00f6sung bekannt). Manche Aufgaben, bei denen man das br\u00e4uchte, kann man aber evtl. mit Parametern und Code &#8211; \u00e4hnlich zu dem hier dargestellten &#8211; l\u00f6sen, s. dazu den netten Blog-Eintrag Brian Welcker&#8217;s Weblog: <a href=\"http:\/\/blogs.msdn.com\/bwelcker\/archive\/2007\/07\/11\/laser-guided-missiles-report-localization-through-parameters.aspx\" target=\"_blank\">Report localization through Parameters<\/a><\/div>\n<\/li>\n<li>\n<div>Die Labels der Parameter stehen auch zur Verf\u00fcgung, wenn man nicht \u00fcber die Oberfl\u00e4che die Parameter eingibt, sondern beispielsweise \u00fcber das ReportViewer Control oder einen Deep Link (unter Angabe der Parameter-Keys) den Bericht rendert. Ein Beispiel ist der Link <a href=\"http:\/\/localhost\/ReportServer\/Pages\/ReportViewer.aspx?\/Blog\/ParamsAnzeigen&amp;rs:Command=Render&amp;rs:Format=HTML4.0&amp;rc:Parameters=collapsed&amp;Wochentag=1&amp;Wochentag=3&amp;EinfacherParam=9\" target=\"_blank\">http:\/\/localhost\/ReportServer\/Pages\/ReportViewer.aspx?\/Blog\/ParamsAnzeigen&amp;rs:Command=Render&amp;rs:Format=HTML4.0&amp;rc:Parameters=collapsed&amp;Wochentag=1&amp;Wochentag=3&amp;EinfacherParam=9<\/a><br \/>\nN\u00e4heres zum URL Access f\u00fcr SSRS siehe <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms153586%28v=SQL.100%29.aspx\" target=\"_blank\">http:\/\/msdn.microsoft.com\/en-us\/library\/ms153586%28v=SQL.100%29.aspx<\/a><\/div>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In Berichten ist es eine gute Angewohnheit, die durch den Benutzer ausgew\u00e4hlten Parameter im Bericht anzuzeigen. Bei Parametern, die dem Benutzer nur einen Wert einzugeben, ist das einfach, da dieser Ausdruck im Ausdruck-Editor einfach zusammengeklickt werden kann, zu z.B. =&#8220;Eingegebene Zahl: &#8220; &amp; Parameters!EinfacherParam.Value (Zum Vergr\u00f6\u00dfern aufs Bild klicken) Wenn es sich aber um einen &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2010\/04\/ssrs-darstellung-von-multi-valued-parametern-im-report\/\" class=\"more-link\"><span class=\"screen-reader-text\">SSRS: Darstellung von multi-valued Parametern im Report<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[26],"class_list":["post-142","post","type-post","status-publish","format-standard","hentry","category-reportingservices","tag-parameter"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=142"}],"version-history":[{"count":1,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/142\/revisions"}],"predecessor-version":[{"id":271,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/142\/revisions\/271"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}