SSRS 2008过滤报表头中显示的多值参数

时间:2013-04-20 17:02:53

标签: reporting-services ssrs-2008

我有一个多值参数(Param_Locations),用户可以从中选择多个服务位置(例如LocationA,LocationA Optical Shop,LocationB,LocationB Optical Shop,......)。选择这些位置对于我将生成的数据集非常重要。然后,我可以使用以下方法在报告的标题中显示所选位置:= Join(参数!Param_Locations.Label)。

我遇到的问题是我想过滤掉标签中包含“光学”一词的任何位置。我不希望这些位置显示在报告标题中,即使它们可能是从下拉选择列表中选择的。

我尝试过使用Filter()函数无济于事。任何想法都将不胜感激。

问候! 巴巴克C. 亚利桑那州凤凰城

2 个答案:

答案 0 :(得分:2)

我会使用自定义代码来执行此操作;尝试使用本机函数只是有点过于复杂,但您可以在自定义代码中轻松遍历参数标签:

Public Function ShowParameterValues(ByVal parameter as Parameter) as String

  Dim s as String 

  For i as integer = 0 to parameter.Count-1

    If InStr(CStr(parameter.Label(i)), "Optical") = 0
      s = s + CStr(parameter.Label(i)) + ", " 
    End If

  Next

  s = Mid(s, 1, Len(s) - 2)

  Return s

End Function

如果要显示已过滤的参数标签,请在报告中调用此函数:

=Code.ShowParameterValues(Parameters!Param_Locations)

有关详细信息,请参阅Using Custom Code

答案 1 :(得分:2)

尝试过滤方法是正确的。我在SQL Server 2012 SP1中成功测试了以下代码。

=Join(Filter(Parameters!Param_Locations.Label, "Optical Shop", False), ", ")