在 IF 语句 SSRS 中使用多个子句时出错

Error using multiple clauses in IF statement SSRS

我在 SSRS 中使用带有多个子句的 if 语句时遇到困难。

我正在使用表达式:

=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 周内显示黄色,如果目标日期已超过今天则显示红色,否则显示为黑色。

我想我要离开 out/overlooking 一些简单的东西。

如有任何帮助,我们将不胜感激!

谢谢!!

您的 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"))

试试这个:

=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 而不是嵌套的 IIF:

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

如果有帮助请告诉我。