2016-09-26 100 views
0

我很难在SSRS中使用具有多个子句的if语句。错误在IF语句中使用多个子句SSRS

我使用的表达:

=IIF(DateDiff("d",Fields!Project_Target_Date.Value, Now())>-14 AND DateDiff("d",Fields!Project_Target_Date.Value, Now())<-1, "Yellow") OR IIF(DateDiff("d",Fields!Project_Target_Date.Value, Now())>-1, "Red", "Black") 

对于我得到的错误:

The Color expression for the textrun ‘Project_Target_Date.Paragraphs[0].TextRuns[0]’ contains an error: [BC30516] Overload resolution failed because no accessible 'IIf' accepts this number of arguments. 

我希望能设定目标日期的颜色以显示黄色,如果2周之内现在,如果目标日期已过去,则显示为红色,否则显示为黑色。

我想我离开/俯视简单的事情。

任何帮助,将不胜感激!

谢谢!

回答

0

试试这个:

=IIF(
    DateDiff("d",Fields!Project_Target_Date.Value, Now())>-14 
    AND 
    DateDiff("d",Fields!Project_Target_Date.Value, Now())<-1, "Yellow", 
    IIF(
    DateDiff("d",Fields!Project_Target_Date.Value, Now())>-1, "Red","Black")) 

我比较喜欢的,而不是嵌套的综合投资框架使用开关:

=Switch(
    DateDiff("d",Fields!Project_Target_Date.Value, Now())>-14 AND 
    DateDiff("d",Fields!Project_Target_Date.Value, Now())<-1, 
    "Yellow", 
    DateDiff("d",Fields!Project_Target_Date.Value, Now())>-1, 
    "Red", 
    true,"Black" 
) 

让我知道,如果这有助于。

+0

完美,谢谢! –

0

您错误地嵌套您的IIF。您可以使用类似:

=IIF(DateDiff("d",Fields!Project_Target_Date.Value, Now())>-14 AND DateDiff("d",Fields!Project_Target_Date.Value, Now())<-1, "Yellow",IIF(DateDiff("d",Fields!Project_Target_Date.Value, Now())>-1, "Red", "Black")) 
+0

辉煌,谢谢! –