1

我有一个多值参数 (Param_Locations),用户可以从中选择多个服务位置(例如 LocationA、LocationA 眼镜店、LocationB、LocationB 眼镜店……)。这些位置的选择对于我将要生成的数据集很重要。然后,我可以使用 =Join(Parameters!Param_Locations.Label) 在报告标题中显示所选位置。

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

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

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

4

2 回答 2

2

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

=Join(Filter(Parameters!Param_Locations.Label, "Optical Shop", False), ", ")
于 2013-04-22T16:48:15.203 回答
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)

有关更多详细信息,请参阅使用自定义代码

于 2013-04-20T19:17:47.673 回答