Хто-небудь може сказати мені, як відобразити все вибране значення мого багатозначного параметра у звіті SSRS. При наданні parameter.value
опції це видає помилку.
Хто-небудь може сказати мені, як відобразити все вибране значення мого багатозначного параметра у звіті SSRS. При наданні parameter.value
опції це видає помилку.
Відповіді:
Ви можете використовувати функцію "Приєднання", щоб створити єдиний рядок із масиву міток, наприклад:
=Join(Parameters!Product.Label, ",")
=Join(Parameters!Product.Value, ",")
Я не знав про функцію приєднання - приємно! Я написав функцію, яку розмістив у розділі коду (властивості звіту-> вкладка коду:
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
Сподіваємось, комусь ще це знадобиться:
Використання об’єднання є найкращим способом використання багатозначного параметра. Але що, якщо ви хочете мати ефективну функцію "Вибрати все"? Якщо є 100s +, тоді запит буде дуже неефективним.
Щоб вирішити це, замість використання SQL-запиту як є, змініть його на вираз (натисніть кнопку Fx вгорі праворуч), а потім створіть свій запит приблизно так (потрібні мовні знаки):
= "Select * from tProducts Where 1 = 1 "
IIF(Parameters!ProductID.Value(0)=-1,Nothing," And ProductID In (" & Join(Parameters!ProductID.Value,"','") & ")")
У вашому Параметрі виконайте наступне:
SELECT -1 As ProductID, 'All' as ProductName Union All
Select
tProducts.ProductID,tProducts.ProductName
FROM
tProducts
Побудувавши запит як вираз, ви можете зробити оператор SQL більш ефективним, але також впоратись із труднощами, які виникає у SQL Server із обробкою значень у операторі In.