Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 IIF在SSRS中的应用_Visual Studio 2010_Visual Studio 2012_Reporting Services_Ssrs 2008_Ssrs 2012 - Fatal编程技术网

Visual studio 2010 IIF在SSRS中的应用

Visual studio 2010 IIF在SSRS中的应用,visual-studio-2010,visual-studio-2012,reporting-services,ssrs-2008,ssrs-2012,Visual Studio 2010,Visual Studio 2012,Reporting Services,Ssrs 2008,Ssrs 2012,我试图计算每个组的%值(逻辑为“A组调用/总调用”) 问题是,对于某些组,我需要使用(MAX(Fields!OverallCalls.Value),而对于其他组,我需要使用(MAX(Fields!TotalCalls.Value)。出于这个原因,我在最底部添加了一个额外的IIF语句,但是,出于某种原因,我得到一个错误,它说:“公共函数的参数太多等于零(表达式为对象)”作为布尔值' =FORMATPERCENT( Sum( IIF(Fields!Group.Value = "Diss

我试图计算每个组的%值(逻辑为“A组调用/总调用”)

问题是,对于某些组,我需要使用(MAX(Fields!OverallCalls.Value),而对于其他组,我需要使用(MAX(Fields!TotalCalls.Value)。出于这个原因,我在最底部添加了一个额外的IIF语句,但是,出于某种原因,我得到一个错误,它说:“公共函数的参数太多等于零(表达式为对象)”作为布尔值'

=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)
       )

有缺少括号的错误

请尝试以下代码

=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) 
    )
   )
=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) 
    )
   )   
另外,为了更好的可读性,当您有许多嵌套的Iif语句时,我建议使用如下代码中的switch

=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) 
    )
   )
=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) 
    )
   )