重载解析失败,因为没有可访问的 'IIF' 接受这个数量的参数。 SSRS 2012

Overload resolution failed because no accessible 'IIF' accepts this number of arguments. SSRS 2012

我的报告中有两种类型的日期:DateFrom, DateToEffDateFrom, EffDateTo 用户可以选择要使用的日期。

这是图表:

在此图表中,我希望 Bar LineLabels 仅在用户选择的日期内显示。 因此,如果用户选择使用 DateFrom = '3/1/2017' 和 DateTo = '4/1/2017' 那么该行和标签应该只显示一个月。 但是,如果用户选择使用 EffDateFrom = '3/1/2017' 和 EffDateTo = '4/1/2017',则该行和标签仅应在有效日期之前显示一个月。 所以在 LabelDate 中,我写了这个表达式:

=IIF(Fields!MonthNumber.Value>= MONTH(Parameters!DateFrom.Value) AND Fields!MonthNumber.Value<= MONTH(Parameters!DateTo.Value)
OR
Fields!MonthNumber.Value>= MONTH(Parameters!EffDateFrom.Value) AND Fields!MonthNumber.Value<= MONTH(Parameters!EffDateTo.Value)
,(RunningValue(Fields!Premium.Value, sum,Nothing)/RunningValue(Fields!Total_Forcast.Value, sum, Nothing))
, Nothing)

但是它给了我这个错误:

那么为什么它不接受这个表达式呢? 有什么方法可以编写更有效的表达式来检查要使用的日期吗?

谢谢

我用一些放置得当的括号来编译它:

=IIF((Fields!MonthNumber.Value>= MONTH(Parameters!DateFrom.Value) And 
     Fields!MonthNumber.Value<= MONTH(Parameters!DateTo.Value))
    Or
    (Fields!MonthNumber.Value>= MONTH(Parameters!EffDateFrom.Value) And 
    Fields!MonthNumber.Value<= MONTH(Parameters!EffDateTo.Value)),
        (RunningValue(Fields!value.Value, Sum, Nothing)/RunningValue(Fields!value.Value, Sum, Nothing))
, Nothing)

试一试。