如何在SSRS分组表达式中使用多选参数选中的字段名?
SSRS动态分组多值参数解决方案
你之前的思路错在函数返回的是表达式文本,不是实际计算后的字段值——SSRS不会把你拼接出来的Fields!XX.Value...字符串当成可执行的表达式,只会把它当成普通文本,自然没法用来分组。
正确的做法是直接在函数里获取选中字段的实际值,再拼接成分组用的字符串。把你的VB代码改成下面这样:
Public Function SamTest(ByVal parm as Parameter) as string Dim s as String = "" Dim fieldValue as Object For i as integer = 0 to parm.Count-1 ' 通过字段名直接获取对应的值 fieldValue = Fields(parm.Value(i)).Value ' 处理空值,避免多余逗号 If fieldValue IsNot Nothing Then If s <> "" Then s &= "," s &= CStr(fieldValue) End If Next Return s End Function
然后分组表达式依然用=code.SamTest(Parameters!GroupBY)就行。
注意事项
- 参数的可选值必须和数据集里的字段名完全匹配(区分大小写),比如数据集里是
Category,参数值就不能写category - 函数里加了空值判断,避免某个字段值为空时出现多余的逗号,或者分组键变成空字符串
- 如果需要自定义分隔符,把代码里的
","改成你想要的符号就行
内容的提问来源于stack exchange,提问作者Samarth Kaushik
相关产品推荐
相关产品推荐

