根据一个字段值按财政年度日期表达式对项目进行分组,如果字段值为空,则根据另一个字段值对项目进行分组

Group projects by Fiscal Year Date expression based on one field value, if field value is null then group projects based on another field value

我是 运行 一份报告,其中项目根据 FY 根据字段分组!EstSubstantial_Completion.Value。下面的表达式:

=IIf(Month(Fields!EstSubstantial_Completion.Value)=10,
year(Fields!EstSubstantial_Completion.Value)+1,
IIf(Month(Fields!EstSubstantial_Completion.Value)=11,
year(Fields!EstSubstantial_Completion.Value)+1,
IIf(Month(Fields!EstSubstantial_Completion.Value)=12,
year(Fields!EstSubstantial_Completion.Value)+1,
year(Fields!EstSubstantial_Completion.Value))))

表达式有效,但我的主管希望首先根据另一个日期字段字段将项目分组到 FY!Savings_Report_Date.Value 首先,如果字段为空 (null),则引用字段!EstSubtantial_Completion.Value 字段作为日期来确定 FY 分组。

我是 SSRS 报告的新手,所以我不确定是否有办法编写这种类型的表达式。

谢谢!

执行此操作的最简单方法是将计算字段添加到您的数据集。

转到数据集属性,然后转到“字段”选项卡,然后添加一个新字段,select 在出现提示时计算。

为字段命名,例如 FYCalc,并将表达式设置为

=IIF(Fields!Savings_Report_Date.Value = Nothing, Fields!EstSubtantial_Completion.Value, Fields!Savings_Report_Date.Value)

现在您需要做的就是换掉当前表达式中的 Fields!EstSubtantial_Completion.Value 并改用 Fields!FYCalc.Value


可选 :

当您有嵌套的 IIF 语句时,通常更容易改用 SWITCH 函数。它更容易阅读。

=SWITCH(
    Month(Fields!FYCalc.Value)=10, year(Fields!FYCalc.Value)+1,
    Month(Fields!FYCalc.Value)=11, year(Fields!FYCalc.Value)+1,
    Month(Fields!FYCalc.Value)=12, year(Fields!FYCalc.Value)+1,
    True, year(Fields!FYCalc.Value)
    )

最后的 True 就像 Else

你可以像这样进一步简化它

=IIF(
    Month(Fields!FYCalc.Value) >= 10 and Month(Fields!FYCalc.Value) <= 12, year(Fields!FYCalc.Value)+1,
    , year(Fields!FYCalc.Value)
    )