在报告中显示参数(多值)

时间:2008-11-18 22:14:51

标签: reporting-services parameters

任何人都可以告诉我如何在SSRS报告中显示我的多值参数的所有选定值。提供parameter.value选项时会出错。

4 个答案:

答案 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'语句中的值所遇到的困难。

相关问题