简体   繁体   English

SSRS 表达式条件使用公式根据参数输入显示日期

[英]SSRS expression condition using a formula to show dates based on parameter input

I'm struggling to write an SSRS expression to show dates based on a group heading and parameter date.我正在努力编写一个 SSRS 表达式来显示基于组标题和参数日期的日期。 The expression needs to look at the cell value and add 1 & 7 days.表达式需要查看单元格值并添加 1 & 7 天。 The date parameter is called inputdate日期参数称为 inputdate

so if the cell value = '4) Overdue Week 1 - ' then inputdate + 1 &-& inputerdate +7 as WE1 if the cell value = '5) Overdue Week 2 - ' then inputdate + 8 &-& inputerdate +14 as WE2 if the cell value = '6) Overdue Week 3 - ' then inputdate + 15 &-& inputerdate +21 as WE2所以如果单元格值 = '4) Overdue Week 1 - ' 那么 inputdate + 1 &-& inputerdate +7 as WE1 如果单元格值 = '5) Overdue Week 2 - ' 然后 inputdate + 8 &-& inputerdate +14 as WE2 如果单元格值 = '6) Overdue Week 3 - ' then inputdate + 15 &-& inputerdate +21 as WE2

and so on...等等...

The cell is based on a grouped header.该单元基于分组的 header。

Any help is appreciated.任何帮助表示赞赏。 Thanks in advance提前致谢

This is my attempt:这是我的尝试:

   =IIf((Fields!Type_of.Value = "4) Overdue Week 1 - '",
DateAdd("d",1,Parameters!inpdate.Value) +-+ DateAdd("d",7,Parameters!inpdate.Value),0)
,IIf((Fields!Type_of.Value = "5) Overdue Week 2 - '"
,DateAdd("d",8,Parameters!inpdate.Value) +-+ DateAdd("d",14,Parameters!inpdate.Value),0)
IIf((Fields!Type_of.Value = "6) Overdue Week 3 - '"
,DateAdd("d",15,Parameters!inpdate.Value) +-+ DateAdd("d",21,Parameters!inpdate.Value),0)
IIf((Fields!Type_of.Value = "7) Overdue Week 4 - '"
,DateAdd("d",22,Parameters!inpdate.Value) +-+ DateAdd("d",28,Parameters!inpdate.Value),0)
IIf((Fields!Type_of.Value = "8) Overdue Week 5 - '"
,DateAdd("d",29,Parameters!inpdate.Value) +-+ DateAdd("d",35,Parameters!inpdate.Value),0)
IIf((Fields!Type_of.Value = "9) Overdue Week 6 - '"
,DateAdd("d",36,Parameters!inpdate.Value) +-+ DateAdd("d",42,Parameters!inpdate.Value),0)

but it returns an error;但它返回一个错误;

Severity Code Description Project File Line Suppression State Error [rsCompilerErrorInExpression] The Value expression for the field 'Date_Type_of' contains an error: [BC30198] ')' expected.严重性代码 描述 项目文件行抑制 State 错误 [rsCompilerErrorInExpression] 字段“Date_Type_of”的值表达式包含错误:应为 [BC30198] ')'。

In addition to what Harry mentioned, your IIF statement syntax is incorrect.除了 Harry 提到的之外,您的 IIF 语句语法不正确。 You don't have any closing parenthesis nor a final ELSE.您没有任何右括号,也没有最后的 ELSE。

Here's what should work:这是应该工作的:

=IIf(Fields!Type_of.Value = "4) Overdue Week 1 - '",
    DATEADD("d", Parameters!inpdate.Value, 1) & "-" & DATEADD("d", Parameters!inpdate.Value,7),
    IIf(Fields!Type_of.Value = "5) Overdue Week 2 - '",
        DATEADD("d", Parameters!inpdate.Value,8) & "-" & DATEADD("d", Parameters!inpdate.Value, 14),
        IIf(Fields!Type_of.Value = "6) Overdue Week 3 - '",
            DATEADD("d", Parameters!inpdate.Value, 15) & "-" & DATEADD("d", Parameters!inpdate.Value, 21),
            Parameters!inpdate.Value)
        )
    )

I indent to keep track of the levels of IIFs.我缩进以跟踪 IIF 的水平。 But as Harry also mentioned, a SWITCH is better when you have multiple scenarios.但正如 Harry 也提到的,当您有多个场景时,SWITCH 会更好。

=SWITCH(    Fields!Type_of.Value = "4) Overdue Week 1 - '", DATEADD("d", Parameters!inpdate.Value, 1) & "-" & DATEADD("d", Parameters!inpdate.Value,7),
            Fields!Type_of.Value = "5) Overdue Week 2 - '", DATEADD("d", Parameters!inpdate.Value,8) & "-" & DATEADD("d", Parameters!inpdate.Value, 14),
            Fields!Type_of.Value = "6) Overdue Week 3 - '", DATEADD("d", Parameters!inpdate.Value, 15) & "-" & DATEADD("d", Parameters!inpdate.Value, 21), 
            True, Parameters!inpdate.Value
        )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM