Kann mir jemand sagen, wie ich alle ausgewählten Werte meines mehrwertigen Parameters im SSRS-Bericht anzeigen soll? Wenn Sie eine parameter.value
Option angeben, wird ein Fehler ausgegeben.
Kann mir jemand sagen, wie ich alle ausgewählten Werte meines mehrwertigen Parameters im SSRS-Bericht anzeigen soll? Wenn Sie eine parameter.value
Option angeben, wird ein Fehler ausgegeben.
Antworten:
Mit der Funktion "Verbinden" können Sie eine einzelne Zeichenfolge aus dem Array von Beschriftungen erstellen:
=Join(Parameters!Product.Label, ",")
=Join(Parameters!Product.Value, ",")
= Join (Parameter! Product.Label, vbcrfl) für neue Zeile
Ich wusste nichts über die Join-Funktion - Schön! Ich hatte eine Funktion geschrieben, die ich in den Codeabschnitt eingefügt hatte (Berichtseigenschaften-> Registerkarte Code:
Public Function ShowParmValues(ByVal parm as Parameter) as string
Dim s as String
For i as integer = 0 to parm.Count-1
s &= CStr(parm.value(i)) & IIF( i < parm.Count-1, ", ","")
Next
Return s
End Function
Hoffentlich findet das jemand anderes nützlich:
Die Verwendung des Joins ist der beste Weg, um einen mehrwertigen Parameter zu verwenden. Aber was ist, wenn Sie ein effizientes "Alles auswählen" möchten? Wenn es 100s + gibt, ist die Abfrage sehr ineffizient.
Um dies zu lösen, anstatt eine SQL-Abfrage unverändert zu verwenden, ändern Sie sie in einen Ausdruck (klicken Sie oben rechts auf die Schaltfläche Fx) und erstellen Sie dann Ihre Abfrage wie folgt (Sprachmarkierungen sind erforderlich):
= "Select * from tProducts Where 1 = 1 "
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")
Gehen Sie in Ihrem Parameter wie folgt vor:
SELECT -1 As ProductID, 'All' as ProductName Union All
Select
tProducts.ProductID,tProducts.ProductName
FROM
tProducts
Wenn Sie die Abfrage als Ausdruck erstellen, können Sie die SQL-Anweisung effizienter gestalten, aber auch die Schwierigkeiten bewältigen, die SQL Server beim Umgang mit Werten in einer In-Anweisung hat.