Reporting services 在文本框中动态显示所有参数的值

Reporting services 在文本框中动态显示所有参数的值,reporting-services,Reporting Services,我们有许多历史SSRS报告,并希望在输出的最后一页添加一个可选术语表,显示所有参数(包括多个选择)的值 在代码或程序集中是否有任何通用的方法来实现这一点,或者我是否必须手动创建特定于每个报表的表达式?e、 g.我知道这种表达方式会起作用,但如果我必须按照报告进行表达,则会很费劲: ="Param1:"+CStr(Parameters!p1.Value) + vbCrLF + "Param2:" +CStr(Parameters!p2.Value) + vbCrLF + "Param3:" +C

我们有许多历史SSRS报告,并希望在输出的最后一页添加一个可选术语表,显示所有参数(包括多个选择)的值

在代码或程序集中是否有任何通用的方法来实现这一点,或者我是否必须手动创建特定于每个报表的表达式?e、 g.我知道这种表达方式会起作用,但如果我必须按照报告进行表达,则会很费劲:

="Param1:"+CStr(Parameters!p1.Value) + vbCrLF 
+ "Param2:" +CStr(Parameters!p2.Value) + vbCrLF
+ "Param3:" +CStr(Parameters!p3.Value)
谢谢,
MrHH

您可以通过将参数传递给自定义函数来完成此操作。我构建了一个简单的示例,其中包含一个国家列表作为参数

将以下函数添加到报告的代码部分

Public Function ListSelectedParaValues(ByVal p as Parameter)  as String
    Dim pList as String 
    Dim i as Integer
    If p.IsMultiValue then
        For i  = 0 to p.Count-1
            pList  = pList  + "Value " + cstr(i) + ": " + CStr(p.Value(i)) + " " + chr(13) + chr(10)
        Next
    Else
        pList = CStr(p.Value) 
    End If
    Return pList
End Function
要测试这一点,请添加一个文本框并将其表达式设置为

=Code.ListSelectedParaValues(Parameters!Countries)
显然,您需要用参数名称替换出
国家/地区
,但不要像通常那样附加
,否则将失败,您只需要参数名称

输出如下所示


太好了,谢谢。那么,报告中是否有一个参数集合,允许您循环每个参数,然后使用您的方法解析每个参数?不幸的是,SSRS文档明确指出,您无法遍历参数集合,并且必须知道参数名称。