SSRS 表达式条件使用公式显示基于参数输入的日期
SSRS expression condition using a formula to show dates based on parameter input
我正在努力编写一个 SSRS 表达式来显示基于组标题和参数日期的日期。
该表达式需要查看单元格值并添加 1 和 7 天。日期参数称为inputdate
所以如果单元格值 = '4) 第 1 周过期 - ' 那么 inputdate + 1 &-& inputerdate +7 as WE1
if the cell value = '5) Overdue Week 2 - ' then inputdate + 8 &-& inputerdate +14 作为WE2
if the cell value = '6) Overdue Week 3 - ' then inputdate + 15 &-& inputerdate +21 as WE2
等等...
单元格基于分组 header。
感谢任何帮助。提前致谢
这是我的尝试:
=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)
但它 returns 一个错误;
严重性代码说明项目文件行抑制状态
错误 [rsCompilerErrorInExpression] 字段 'Date_Type_of' 的值表达式包含错误:预期 [BC30198] ')'。
除了 Harry 提到的之外,您的 IIF 语句语法也不正确。您没有任何右括号,也没有最后的 ELSE。
这是应该起作用的:
=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)
)
)
我缩进跟踪 IIF 的水平。但正如 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
)
我正在努力编写一个 SSRS 表达式来显示基于组标题和参数日期的日期。 该表达式需要查看单元格值并添加 1 和 7 天。日期参数称为inputdate
所以如果单元格值 = '4) 第 1 周过期 - ' 那么 inputdate + 1 &-& inputerdate +7 as WE1 if the cell value = '5) Overdue Week 2 - ' then inputdate + 8 &-& inputerdate +14 作为WE2 if the cell value = '6) Overdue Week 3 - ' then inputdate + 15 &-& inputerdate +21 as WE2
等等...
单元格基于分组 header。
感谢任何帮助。提前致谢
这是我的尝试:
=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)
但它 returns 一个错误;
严重性代码说明项目文件行抑制状态 错误 [rsCompilerErrorInExpression] 字段 'Date_Type_of' 的值表达式包含错误:预期 [BC30198] ')'。
除了 Harry 提到的之外,您的 IIF 语句语法也不正确。您没有任何右括号,也没有最后的 ELSE。
这是应该起作用的:
=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)
)
)
我缩进跟踪 IIF 的水平。但正如 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
)