Может ли кто-нибудь сказать мне, как отобразить все выбранное значение моего параметра multi value в отчете SSRS. При предоставлении опции parameter.value
она дает ошибку.
Параметр отображения (многозначный) в отчете
Ответ 1
Вы можете использовать функцию "Join", чтобы создать одну строку из массива меток, например:
=Join(Parameters!Product.Label, ",")
Ответ 2
= Join (Параметры! Product.Label, vbcrfl) для новой строки
Ответ 3
Я не знал о функции соединения - Ницца! Я написал функцию, которую я разместил в разделе кода (свойства отчета → вкладка кода:
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
Ответ 4
Надеюсь, кто-то еще найдет это полезным:
Использование Join - лучший способ использовать многозначный параметр. Но что, если вы хотите иметь эффективный вариант "Выбрать все"? Если есть 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".