2017-02-02 6 views
0

я один доклад, в котором множественным условие собирается применять как 100% 75% и 50%SSRS IIF Conditin

я использовал цвет фона состояние

=iif(count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "8" and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") 
= "100%" ,"Green","Red") and iif(
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value,Fields!SINFO.Value, "FullTime"))>= "6" and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") 
= "75%" ,"Green","Red") and iif(
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "4" and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") 
= "50%" ,"Green","Red") 

я не получаю никакого цвета, пожалуйста, дайте мне знать, что им делать, как worng им новое в SSRS Благодаря

=Switch(Fields!Date.Value >= CDate("01/05/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("01/10/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "8" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "100%", 
"Green", 
Fields!Date.Value >= CDate("01/11/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("30/04/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "4" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "100%", 
"Green", 
Fields!Date.Value >= CDate("01/05/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("01/10/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value,Fields!SINFO.Value, "FullTime"))>= "6" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "75%", 
"Green", 
Fields!Date.Value >= CDate("01/11/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("30/04/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "3" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "75%", 
"Green", 

Fields!Date.Value >= CDate("01/05/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("01/10/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "4" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "50%" , 
"Green", 
Fields!Date.Value >= CDate("01/11/" & Str(Year(Parameters!StartDate.Value))) and Fields!Date.Value <= CDate("30/04/" & Str(Year(Parameters!EndDate.Value))) and 
count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "2" 
and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "50%", 
"Green", 
true,"Red" 
) 
+0

Вы группируете EMPNO в этом отчете случайно? –

+0

nope .......... im группировка оценками имен – Skorpion

ответ

0

Вы пропускали поток через неправильный путь. Я изменил ваше форматирование для ясности.

=iif(
    lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime")= "100%" 
    and  
    (
     (
      IS_SUMMER() 
      AND 
      count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "8" 
     ) 
     OR 
     (
      IS_WINTER() 
      AND 
      count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "4"  
     ) 
    ), 
    "Green" 

    ,iif(
     lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime")= "75%" 
     and  
     (
      (
       IS_SUMMER() 
       AND 
       count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "6" 
      ) 
      OR 
      (
       IS_WINTER() 
       AND 
       count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "3"  
      ) 
     ), 
     "Green" 

     ,iif(
      lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime")= "50%" 
      and 
      (
       (
        IS_SUMMER() 
        AND 
        count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "6" 
       ) 
       OR 
       (
        IS_WINTER() 
        AND 
        count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "3"  
       ) 
      ), 
      "Green" 

      ,"Red" 
     ) 
    ) 
) 

Обновлено с дополнительными полями.

На этом этапе вы можете увидеть, как ужасно это становится. Это трудно на глаза и трудно поддерживать и повторно использовать. Есть два способа очистить это.

1. Используйте функцию в вашем коде, чтобы установить цвет -

textbox1.BackgroundColor=Code!MyFunctionToEvaluate(Percent,Number) 

2. Использование вычисляемых полей -

IIF(
    Fields!CALCPercent.Value=100 AND 
    (
     (Fields!CALCIsSummer.Value AND Fields!CALCCount=8) 
     OR 
     (Fields!CALCIsWinter.Value AND Fields!CALCCount=6) 
    ) 
    ... 
) 

Вот функция, которую вы можете поместить в ваш Сообщение | Параметры | Окно кода.

Public Function CalculateColor(percentage As String, count As String, Season As String) AS String  

    Dim Result As String = "Red" 

    If(percentage="100%") Then 
     Result = "Gree" 
    Else If(percentage="75%") Then 
     Result = "Gree" 
    Else If (percentage="50%") Then 
     Result="Green" 
    EndIf 

    return Result 

End Function 

После того, что компилирует (я не проверял синтаксис), то вы можете присвоить результат BackgroundColor текстового поля в.

textbox.BackgroundCode=<Expression> =Code.CalculateColor(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"),count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime")),GET_SEASON()) 
+0

спасибо еще одну вещь, которую мне нужно добавить в этот эксперемент, если \t \t Есть ли способ, когда я ставлю еще одно условие, если 100% (8 в месяц на лето с 1 мая по 31 октября) (4 в месяц зимой - 1 ноября - 30 апреля) 75% (6 в месяц на лето с 1 мая по 31 октября) (3 в месяц зимой - 1 ноября - 30 апреля) 50% (4 в месяц на лето 1 мая - 31 октября) (2 в месяц зимой - 1 ноября - 30 апреля) – Skorpion

+0

Я обновил ваши требования, однако, чтобы уменьшить беспорядок, вы можете захотеть просмотреть рассчитанные поля. –

+0

Как я могу сделать это как im niew в SSRS – Skorpion

1

Попробуйте использовать коммутатор вместо:

=Switch(
    count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "8" 
    and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "100%", 
    "Green", 
    count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value,Fields!SINFO.Value, "FullTime"))>= "6" 
    and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "75%" , 
    "Green", 
    count(lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime"))>= "4" 
    and lookup(Fields!Assessors_Staff_ID.Value,Fields!EMPNO.Value, Fields!SINFO.Value, "FullTime") = "50%" , 
    "Green", 
    true,"Red" 
) 

Он будет работать, если у вас есть правильные параметры группировки для вычислений, которые вы выполняете в каждом условном выражении.

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

+0

есть ли способ, когда я ставлю еще одно условие, если 100% (8 в месяц на лето 1 мая - 31 октября) (4 в месяц в зима-1 ноября - 30 апреля) 75% (6 в месяц на лето 1 мая - 31 октября) (3 в месяц зимой - 1 ноября - 30 апреля) 50% (4 в месяц на 1-е лето Май - 31 октября) (2 в месяц зимой - 1 ноября - 30 апреля) – Skorpion

+0

@Skorpion, если вы имеете в виду динамическое изменение состояния, вам нужно будет вычислить его где-нибудь (возможно, вычисленное поле или скрытый параметр) то ссылайтесь на этот расчет в условном выражении. –

+0

как я могу сделать это как imview в SSRS ?? – Skorpion