Utilizarea IIF în SSRS

voturi
0

Am încercat să calculeze valoarea% pentru fiecare grup (logica fiind „Grupul A Apeluri / Total apeluri“).

Problema este că, pentru unele grupuri am nevoie pentru a utiliza (MAX (Fields! OverallCalls.Value) în timp ce pentru altele trebuie sa folosesc (MAX (Fields! TotalCalls.Value). Din acest motiv, am adăugat o declarație suplimentară IIF chiar în partea de jos, cu toate acestea, pentru un motiv oarecare I a lua o eroare spunând: „Prea multe argumente pentru funcțiile IsNothing publice (expresie ca obiect) Ca Boolean“.

=FORMATPERCENT(
       Sum(
IIF(Fields!Group.Value = Dissatisfactions Total,
       Fields!TotalDissatisfactions.Value,
IIF(Fields!Group.Value = RID Total,
       Fields!TotalRidDissatisfactions.Value,
       IIF(
              Fields!Group.Value = CRT OR
              Fields!Group.Value = Escalations
              ,Fields!ComplaintID.Value
              ,IIF(
                           Fields!Group.Value = Calls
                           ,Fields!Calls.Value
                           ,0
                     )
       )
       )
       )  
       ) / IIF(IsNothing(MAX(Fields!OverallCalls.Value), (MAX(Fields!TotalCalls.Value), (MAX(Fields!OverallCalls.Value)
       )
Întrebat 24/10/2019 la 11:52
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
1

Există erori cu paranteze lipsă.

Încercați următorul cod

=FORMATPERCENT(
Sum(
    IIF(Fields!Group.Value = "Dissatisfactions Total",
        Fields!TotalDissatisfactions.Value,
        IIF(Fields!Group.Value = "RID Total",
            Fields!TotalRidDissatisfactions.Value,
            IIF(
            Fields!Group.Value = "CRT" OR Fields!Group.Value = "Escalations",
                Fields!ComplaintID.Value,
                IIF(
                    Fields!Group.Value = "Calls",
                    Fields!Calls.Value,
                    0
                    )
                )
            )
        )  
   ) 
   / 
   IIF(IsNothing(MAX(Fields!OverallCalls.Value)),  
        MAX(Fields!TotalCalls.Value),  
        MAX(Fields!OverallCalls.Value) 
    )
   )

De asemenea, pentru o mai bună lizibilitate atunci când aveți mai multe declarații IIF imbricate aș sfătui folosind comutatorul ca codul de mai jos

=FORMATPERCENT(
Sum(
    Switch (
        Fields!Group.Value = "Dissatisfactions Total", Fields!TotalDissatisfactions.Value,
        Fields!Group.Value = "RID Total", Fields!TotalRidDissatisfactions.Value,
        Fields!Group.Value = "CRT" OR Fields!Group.Value = "Escalations", Fields!ComplaintID.Value,
        Fields!Group.Value = "Calls", Fields!Calls.Value,
        True, 0
        )

   / 
   IIF(IsNothing(MAX(Fields!OverallCalls.Value)),  
        MAX(Fields!TotalCalls.Value),  
        MAX(Fields!OverallCalls.Value) 
    )
   )   
Publicat 24/10/2019 la 12:22
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more