任何人都可以告诉我如何在SSRS报告中显示我的多值参数的所有选定值。提供parameter.value
选项时会出错。
答案 0 :(得分:149)
您可以使用“加入”功能从标签数组中创建单个字符串,如下所示:
=Join(Parameters!Product.Label, ",")
答案 1 :(得分:11)
=为新行加入(参数!Product.Label,vbcrfl)
答案 2 :(得分:6)
我不知道连接功能 - 很好!我编写了一个函数,放在代码部分(报告属性 - >代码选项卡:
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
答案 3 :(得分:0)
希望其他人对此有用:
使用Join是使用多值参数的最佳方法。但是,如果您想要高效的“全选”怎么办?如果大于100,则查询效率将非常低。
要解决此问题,而不是原样使用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'语句中的值所遇到的困难。