Czy ktoś może mi powiedzieć, jak wyświetlić wszystkie wybrane wartości mojego parametru wielowartościowego w raporcie SSRS. Podając parameter.value
opcję daje błąd.
Czy ktoś może mi powiedzieć, jak wyświetlić wszystkie wybrane wartości mojego parametru wielowartościowego w raporcie SSRS. Podając parameter.value
opcję daje błąd.
Odpowiedzi:
Możesz użyć funkcji „Join”, aby utworzyć pojedynczy ciąg z tablicy etykiet, na przykład:
=Join(Parameters!Product.Label, ",")
=Join(Parameters!Product.Value, ",")
Nie wiedziałem o funkcji łączenia - Świetnie! Napisałem funkcję, którą umieściłem w sekcji kodu (właściwości raportu-> zakładka kod:
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
Mam nadzieję, że ktoś inny uzna to za przydatne:
Korzystanie z Join to najlepszy sposób na użycie parametru o wielu wartościach. Ale co, jeśli chcesz mieć wydajną opcję „Wybierz wszystko”? Jeśli jest ponad 100, zapytanie będzie bardzo nieefektywne.
Aby rozwiązać ten problem, zamiast używać zapytania SQL w obecnej postaci, zmień je na użycie wyrażenia (kliknij przycisk Fx w prawym górnym rogu), a następnie utwórz zapytanie mniej więcej w ten sposób (znaki mowy są konieczne):
= "Select * from tProducts Where 1 = 1 "
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")
W parametrze wykonaj następujące czynności:
SELECT -1 As ProductID, 'All' as ProductName Union All
Select
tProducts.ProductID,tProducts.ProductName
FROM
tProducts
Budowanie zapytania jako wyrażenia oznacza, że możesz zwiększyć wydajność instrukcji SQL, ale także poradzić sobie z trudnościami, jakie SQL Server ma z obsługą wartości w instrukcji „In”.