我有一个多值参数(Param_Locations),用户可以从中选择多个服务位置(例如LocationA,LocationA Optical Shop,LocationB,LocationB Optical Shop,......)。选择这些位置对于我将生成的数据集非常重要。然后,我可以使用以下方法在报告的标题中显示所选位置:= Join(参数!Param_Locations.Label)。
我遇到的问题是我想过滤掉标签中包含“光学”一词的任何位置。我不希望这些位置显示在报告标题中,即使它们可能是从下拉选择列表中选择的。
我尝试过使用Filter()函数无济于事。任何想法都将不胜感激。
问候! 巴巴克C. 亚利桑那州凤凰城
答案 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), ", ")