错误条件的 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

another article

为了弥补 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 部分的问题。