谁能告诉我如何在SSRS报告中显示我的多值参数的所有选定值。给parameter.value
选项时会出错。
Answers:
您可以使用“ Join”函数从标签数组中创建单个字符串,如下所示:
=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
希望其他人觉得这很有用:
使用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”语句中的值所遇到的困难。