Reporting services 如何连接两个参数的值?(Visual Studio报告2008)

Reporting services 如何连接两个参数的值?(Visual Studio报告2008),reporting-services,ssrs-2008,reporting,Reporting Services,Ssrs 2008,Reporting,我在VisualStudioReports2008中有一个报告。 我的报表包含数据源2,每个数据源都有参数 如何连接两个参数的值 例如: 参数1、参数值2的值 Group1,Class1 Group2, Class1 Group3, Class1 Group4, Class2 Group5, Class2 Group6, Class2 Group7, Class2 Group8, Class2 Group9, Class3 Group10, Class3 Group11, C

我在VisualStudioReports2008中有一个报告。 我的报表包含数据源2,每个数据源都有参数

如何连接两个参数的值

例如: 参数1、参数值2的值

Group1,Class1

Group2, Class1

Group3, Class1

Group4, Class2

Group5, Class2

Group6, Class2

Group7, Class2

Group8, Class2

Group9, Class3

Group10, Class3

Group11, Class3

Group12, Class3

Group13, Class3
我创建了3个参数并添加了以下函数(在参数属性-可用值-选择指定值-添加函数中):


可以使用表达式根据参数1为参数2设置确定的值

如果参数1允许多个值选择,则可以使用
IndexOf
函数。在“参数2属性”的“默认值”选项卡中,选择“指定值”并添加新表达式,使用以下选项:

=Switch(
Array.IndexOf(Parameters!MyParam1.Value,"Group1")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group2")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group3")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group4")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group5")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group6")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group7")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group8")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group9")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group10")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group11")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group12")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group13")>-1,"Class3"
) 
否则,如果您的参数不允许多个值,您只需使用:

=Switch(
Parameters!MyParam1.Value = "Group1","Class1",
Parameters!MyParam1.Value = "Group2","Class1",
Parameters!MyParam1.Value = "Group3"1,"Class1",
Parameters!MyParam1.Value = "Group4","Class2",
Parameters!MyParam1.Value = "Group5","Class2",
Parameters!MyParam1.Value = "Group6","Class2",
Parameters!MyParam1.Value = "Group7","Class2",
Parameters!MyParam1.Value = "Group8","Class2",
Parameters!MyParam1.Value = "Group9","Class3",
Parameters!MyParam1.Value = "Group10","Class3",
Parameters!MyParam1.Value = "Group11","Class3",
Parameters!MyParam1.Value = "Group12","Class3",
Parameters!MyParam1.Value = "Group13","Class3"
)
我建议您将参数2设置为隐藏,以避免 用户手动更改参数的值


让我知道这是否有帮助。

参数1和2允许多个值选择

使用新表达式和选择参数值会显示错误: “本地报表处理中出错。参数2”

=开关(

Array.IndexOf(Parameters!MyParam1.Value,“Group1”)>-1,“Class1”

Array.IndexOf(Parameters!MyParam1.Value,“Group2”)>-1,“Class1”

Array.IndexOf(Parameters!MyParam1.Value,“Group3”)>-1,“Class1”

Array.IndexOf(Parameters!MyParam1.Value,“Group4”)>-1,“Class2”

Array.IndexOf(Parameters!MyParam1.Value,“Group5”)>-1,“Class2”

Array.IndexOf(Parameters!MyParam1.Value,“Group6”)>-1,“Class2”

Array.IndexOf(Parameters!MyParam1.Value,“Group7”)>-1,“Class2”

Array.IndexOf(Parameters!MyParam1.Value,“Group8”)>-1,“Class2”

Array.IndexOf(Parameters!MyParam1.Value,“Group9”)>-1,“Class3”

Array.IndexOf(Parameters!MyParam1.Value,“Group10”)>-1,“Class3”

Array.IndexOf(Parameters!MyParam1.Value,“Group11”)>-1,“Class3”

Array.IndexOf(Parameters!MyParam1.Value,“Group12”)>-1,“Class3”

Array.IndexOf(Parameters!MyParam1.Value,“Group13”)>-1,“Class3”

)

IIf(Parameters!ReportParameter1.Value = " Group9"," Group10"," Group11"," Group12"," Group13" THEN Parameters!ReportParameter2.Value = " Class3")
=Switch(
Array.IndexOf(Parameters!MyParam1.Value,"Group1")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group2")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group3")>-1,"Class1",
Array.IndexOf(Parameters!MyParam1.Value,"Group4")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group5")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group6")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group7")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group8")>-1,"Class2",
Array.IndexOf(Parameters!MyParam1.Value,"Group9")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group10")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group11")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group12")>-1,"Class3",
Array.IndexOf(Parameters!MyParam1.Value,"Group13")>-1,"Class3"
) 
=Switch(
Parameters!MyParam1.Value = "Group1","Class1",
Parameters!MyParam1.Value = "Group2","Class1",
Parameters!MyParam1.Value = "Group3"1,"Class1",
Parameters!MyParam1.Value = "Group4","Class2",
Parameters!MyParam1.Value = "Group5","Class2",
Parameters!MyParam1.Value = "Group6","Class2",
Parameters!MyParam1.Value = "Group7","Class2",
Parameters!MyParam1.Value = "Group8","Class2",
Parameters!MyParam1.Value = "Group9","Class3",
Parameters!MyParam1.Value = "Group10","Class3",
Parameters!MyParam1.Value = "Group11","Class3",
Parameters!MyParam1.Value = "Group12","Class3",
Parameters!MyParam1.Value = "Group13","Class3"
)