SSRS [BC30277] - 字符类型“&”与声明的类型“String”不一致

3 reporting-services ssrs-2012

我在 Reporting Services 16 中有这个表达式,它返回错误如下:

\n\n
="--> " & SUM(Fields!entrace_money_value.Value) \n& Microsoft.VisualBasic.Constants.vbcrlf \n& "<-- " & SUM(Fields!exit_money_value.Value)\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

[rsCompilerErrorInExpression] textrun\n \xe2\x80\x98Textbox8.Paragraphs[0].TextRuns[0]\xe2\x80\x99 的值表达式包含错误:[BC30277] Znak\n Typu & neodpov\xc3\xadd \xc3\xa1 deklarovan\xc3\xa9mu datov\xc3\xa9mu 类型字符串。——捷克语

\n
\n\n

任何帮助,将不胜感激。

\n

kap*_*pex 10

我有一个非常相似的表达式并得到了相同的错误代码,尽管错误消息提到了Object而不是String

[BC30277] 类型字符“&”与声明的数据类型“Object”不匹配

对我来说,问题不在于我组合了字符串和整数(这对我来说效果很好,无需像其他答案那样进行手动转换)。问题是表达式编辑器不会将换行符视为空格。

"-->"
 & Fields!test.Value
& "<--"
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,表达式被读取为单行:

"-->" & Fields!test.Value& "<--"
Run Code Online (Sandbox Code Playgroud)

Fields!test.Value&由于语法无效,因此失败。

在下一行的开头添加空格字符(因为它们在行尾很容易被忽略)可以修复此问题:

"-->" 
 & Fields!test.Value
 & "<--"
Run Code Online (Sandbox Code Playgroud)