1

我想以以下格式生成我的字符串:

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))

但是,只要长度小于 10,上述 IIF 条件就会给我#Error。可能的解决方案是什么?或者,如果我能知道表达式以尽可能最简单的方式生成完整格式,那就更好了。

4

2 回答 2

0

即使您有条件检查 10 个字符,SSRS 仍会评估错误部分,这就是您收到错误的原因,这通常在尝试避免除以零错误时遇到。更多信息在这里

除以零/空解决方法

另一篇文章

于 2018-10-10T12:01:15.900 回答
0

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

于 2018-10-10T23:35:26.893 回答