The Group expression for the grouping ‘Origin2’ contains an error: Argument 'Length' must be greater or equal to zero. (rsRuntimeErrorInExpression)

The Group expression for the grouping ‘Origin2’ contains an error: Argument 'Length' must be greater or equal to zero. (rsRuntimeErrorInExpression)

每次呈现此报告时我都会收到此错误。我查看了这个组的组表达式,它看起来像这样:

=Trim(Left(Fields!ILS_LS_USER_10.Value,InStr(Fields!ILS_LS_USER_10.Value,"->")-2))

字段ILS_LS_USER_10.Value是:BNST -> USWEOLN

我看不到错误。谁能帮我诊断一下这个错误?

如果您将字符串文字替换为字段,它会起作用!ILS_LS_USER_10.Value。

问题是默认情况下它没有将字段的值作为字符串获取。在 .Value 之后使用 ToString() 方法,它应该可以工作,或者至少在我的机器上是这样。

=Trim(Left(Fields!ILS_LS_USER_10.Value.ToString(),InStr(Fields!ILS_LS_USER_10.Value.ToString(),"->")-2))

我发现出于某种原因,Group 表达式似乎不喜欢 InStr 中的减法。省去减法就可以了。 事实上,采用相同的公式,并将其放入组中的占位符中,它似乎工作得很好。在 Group 表达式中替换为 Split 并且有效。 这是在 SQL Server 2016 上,使用 Report Builder。