2017-01-31 3 views
1

Ich möchte eine mehrzeilige Tabelle mit einem mehrwertigen Parameter erzeugen.SSRS mehrwertiger Parameter zu mehrzeiliger Tabelle

Das einzige, was ich jetzt tun kann, wie unter den angegebenen Parameter in jeder Zeile ist vorbei:

=Parameters!P.Value(0) 
=Parameters!P.Value(1) 
... 
=Parameters!P.Value(n) 

Gibt es eine Möglichkeit, es dynamisch zu tun?

+0

Bitte Eingänge liefern und Puts erwartet aus. – Snowlockk

Antwort

1

Interessante Frage, das einzige, was ich mir vorstellen kann, ist die Umwandlung der Parameter-Array in XML in einem Dataset, und dann konvertiert es in eine Tabelle über Xml-Knoten.

Der Datensatz Parameter (nennen wir es @par) sollte dann in einem Ausdruck wie eingestellt werden:

declare @parxml xml = @par 
Select p.query('./text()') 
from @parxml.nodes('/n') as T(p) 

dieser Wille:

= "<n>" + join(Parameters!P.Value,"</n><n>") + "</n>" 

Dann wird die Abfrage für den Datensatz dies wird Stellen Sie für jeden ausgewählten Parameterwert eine Tabelle mit einer Zeile bereit.

+0

cool, es funktioniert wie ein Charme ... einfacher als meine Lösung sicher –

1

Endlich habe ich eine gute Lösung gefunden.
(erinnern Sie sich, P ist ein Multi-Wert-Parameter .. es.

Zuerst fügen Sie eine Datenmenge, die auf eine Tabelle (Datenbank) zeigt aus einem numerischen progressiven Feld (id) so: (Denken Sie daran, die Tabelle mit einer Anzahl von Zeilen zu laden = = zu der möglichen Anzahl von Werten in Ihrem Multi-Value-Parameter ... oder laden Sie einfach wie 10000 Zeilen und ich denke, Sie werden in Ordnung sein)

enter image description here

dann in dem Bericht mit einer Tabelle hinzu: Feld id (von Dataset1) und den folgenden Ausdruck (Ihre Parameter P darstellt):

=Parameters!P.Value(Fields!id.Value) 

enter image description here

jetzt, wenn Sie den Bericht ausführen werden Sie so etwas wie dieses:

enter image description here

So entfernen Sie die #Error Zeilen einfach die gesamte Tabelle auswählen, wie unten, und du bist fertig!

enter image description here

+0

Es ist eine gute Lösung +1, aber haben Sie die Lösung versucht, die ich gepostet? es muss keine Tabelle erstellen oder irgendetwas filtern und es sind nur vier Zeilen Code – Jayvee

+0

yep, es funktioniert auch –