2017-01-19 11 views
0

У меня есть отчет в Visual Studio Reports 2008. В моем отчете содержится источник данных 2, и каждый источник данных имеет параметр.Как присоединиться к значениям двух параметров? (Visual Studio Reports 2008)

Как присоединиться к значениям двух параметров?

Пример: Значения параметра 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 параметр добавили следующую функцию (в свойствах параметра - Доступные значения - Выберите Указать значения - добавлена ​​функция):

=IIf(Parameters!ReportParameter1.Value = " Group1"," Group2"," Group3" THEN Parameters!ReportParameter2.Value = " Class1") 

ИЛИ

IIf(Parameters!ReportParameter1.Value = " Group4"," Group5"," Group6"," Group7"," Group8" THEN Parameters!ReportParameter2.Value = " Class2") 

ИЛИ

IIf(Parameters!ReportParameter1.Value = " Group9"," Group10"," Group11"," Group12"," Group13" THEN Parameters!ReportParameter2.Value = " Class3") 

ответ

0

Вы можете использовать выражение, чтобы установить определенное значение для параметра 2, основанного на параметре 1.

Если параметр 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, чтобы избежать изменения пользователем значения параметра .

Дайте мне знать, если это поможет.

0

параметр 1 и 2 позволяет множественный выбор значений

Используя новое выражение и выбор значений параметров отображения ошибок: «Ошибка в локальной обработке отчета параметр2»

= Switch (

Array.indexOf (! Параметры MyParam1.Value, "Group1")> - 1, "Class1",

Array.indexOf (! Параметры MyParam1.Value, "Group2")> - 1, "Class1",

Array.indexOf (! Параметры MyParam1.Value, "Group3")> - 1, "Class1",

Array.indexOf (! Параметры MyParam1.Value, "Group4")> - 1, "Class2" ,

Array.indexOf> (Параметры MyParam1.Value, "Group5"!) - 1, "Class2",

Array.indexOf (! Параметры MyParam1.Value, "Group6")> - 1,» Class2 ",

Array.IndexOf (Параметры! MyParam1.Значение, "Group7")> - 1, "Class2",

Array.indexOf (Параметры MyParam1.Value, "группе 8")> - 1, "Class2",

Array.indexOf (Параметры! MyParam1.Value, "Group9")> - 1, "Class3",

Array.indexOf (Параметры MyParam1.Value, "Group10")> - 1, "Class3",

Array.indexOf (! Параметры MyParam1.Value, "Group11")> - 1, "Class3",

Array.indexOf (Параметры MyParam1.Value, "Group12")> - 1, "Class3",

Array.indexOf (! Параметры MyParam1.Value, "Group13")> - 1, "Class3"

)