Reporting services 分组的组表达式‘;原创2’;包含错误:参数';长度';必须大于或等于零。(rsRuntimeErrorInExpression)

Reporting services 分组的组表达式‘;原创2’;包含错误:参数';长度';必须大于或等于零。(rsRuntimeErrorInExpression),reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,每次呈现此报告时,我都会遇到此错误。我查看了这个组的组表达式,它看起来是这样的: =Trim(Left(Fields!ILS_LS_USER_10.Value,InStr(Fields!ILS_LS_USER_10.Value,"->")-2)) 字段ILS\u LS\u USER\u 10.Value为:BNST->USWEOLN 我看不出错误。有人能帮我诊断这个错误吗?如果你把字符串文字放在字段的位置,它就可以工作了!ILS\U LS\U USER\U 10.Value 问题在于,默

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

=Trim(Left(Fields!ILS_LS_USER_10.Value,InStr(Fields!ILS_LS_USER_10.Value,"->")-2))
字段ILS\u LS\u USER\u 10.Value为:BNST->USWEOLN


我看不出错误。有人能帮我诊断这个错误吗?

如果你把字符串文字放在字段的位置,它就可以工作了!ILS\U LS\U USER\U 10.Value

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

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

我发现,出于某种原因,小组表达似乎不喜欢指令中的减法。省去减法,它就行了。 事实上,采用相同的公式,并将其放置在组中的占位符中,它似乎工作正常。在组表达式中替换为Split,它可以工作。 这是在SQL Server 2016上使用报表生成器实现的