错误条件的 SSRS 表达式错误
Error in SSRS expression for false condition
我想生成以下格式的字符串:
Vancouer
应显示为 -> ( V) anc-ouer
Roberts Cut-Off Road
-> Roberts Cu(t-O) ff-Road
... 等等
所以我使用的最后 4 个字符:
Right(Fields!NAME.Value, 4)
我使用 IIF 的中间部分:
IIF(Len(Fields!NAME.Value) < 10,
Left(Fields!NAME.Value,.
(Len(Fields!NAME.Value)-7)),
Mid(Fields!NAME.Value,Len(Fields!NAME.Value)-9,3))
但是上面的 IIF 条件在长度小于 10 时给我 #Error。可能的解决方案是什么?或者,如果我能知道以最简单的方式生成完整格式的表达式就更好了。
即使您有条件检查 10 个字符,SSRS 仍然评估错误部分,这就是您收到错误的原因,这通常是在尝试避免被零除错误时遇到的。更多信息在这里
divide by zero/null workaround
为了弥补 RegBes 提到的问题,使用额外的 IIF 解决初始 IIF 的错误部分的错误。
IIF(Len(Fields!NAME.Value) < 10,
Left(Fields!NAME.Value, Len(Fields!NAME.Value) - 7),
Mid(Fields!NAME.Value, Len(Fields!NAME.Value) - IIF(Len(Fields!NAME.Value) < 10, 0, 9), 3)
)
如果 LEN 小于 10,这将减去 0。第一个 IIF 将确保此代码不显示值,但解决了 IIF 评估 IIF 的 TRUE 和 FALSE 部分的问题。
我想生成以下格式的字符串:
Vancouer
应显示为 -> ( V) anc-ouer
Roberts Cut-Off Road
-> Roberts Cu(t-O) ff-Road
... 等等
所以我使用的最后 4 个字符:
Right(Fields!NAME.Value, 4)
我使用 IIF 的中间部分:
IIF(Len(Fields!NAME.Value) < 10,
Left(Fields!NAME.Value,.
(Len(Fields!NAME.Value)-7)),
Mid(Fields!NAME.Value,Len(Fields!NAME.Value)-9,3))
但是上面的 IIF 条件在长度小于 10 时给我 #Error。可能的解决方案是什么?或者,如果我能知道以最简单的方式生成完整格式的表达式就更好了。
即使您有条件检查 10 个字符,SSRS 仍然评估错误部分,这就是您收到错误的原因,这通常是在尝试避免被零除错误时遇到的。更多信息在这里
divide by zero/null workaround
为了弥补 RegBes 提到的问题,使用额外的 IIF 解决初始 IIF 的错误部分的错误。
IIF(Len(Fields!NAME.Value) < 10,
Left(Fields!NAME.Value, Len(Fields!NAME.Value) - 7),
Mid(Fields!NAME.Value, Len(Fields!NAME.Value) - IIF(Len(Fields!NAME.Value) < 10, 0, 9), 3)
)
如果 LEN 小于 10,这将减去 0。第一个 IIF 将确保此代码不显示值,但解决了 IIF 评估 IIF 的 TRUE 和 FALSE 部分的问题。