Reporting services SSRS:“;包含错误:[BC302205]应为语句结尾。”;

Reporting services SSRS:“;包含错误:[BC302205]应为语句结尾。”;,reporting-services,replace,expression,reporting,Reporting Services,Replace,Expression,Reporting,我创建了一个嵌套的替换表达式,它将根据当前值更改字段中的字符串。我几乎让它工作了,但是我不确定我需要添加什么来结束声明。有人能帮忙吗 =Replace( Replace( REPLACE (Fields!DeviceType.Value, "1", "Desktop / Laptop / Server"), "2", "Server"), "3", "Printer"), "4", "Firewall"), "5", "Managed Switch"), "6", "Switch"), "7"

我创建了一个嵌套的替换表达式,它将根据当前值更改字段中的字符串。我几乎让它工作了,但是我不确定我需要添加什么来结束声明。有人能帮忙吗

 =Replace(
Replace(
REPLACE (Fields!DeviceType.Value, "1", "Desktop / Laptop / Server"),
"2", "Server"),
"3", "Printer"),
"4", "Firewall"),
"5", "Managed Switch"),
"6", "Switch"),
"7", "Access Point Controller"),
"8", "Access Point"),
"9", "Desk Phone"),
"10", "Modem"),
"11", "Mobile Phone"),
"12", "DVR"),
"13", "Camera"),
"14", "NAS / SAN"),
"15", "PBX"),
"16", "UPS"),
"17", "Router"),
"18", "Monitor"),
"19", "Docking Station")

REPLACE
函数将字符串中的一段文本替换为另一段文本,因此
=REPLACE(“手机”、“手机”、“手机”)
将返回“手机”。在您的情况下,替换功能不是您所需要的

理想情况下,您应该有一个数据库表来连接并从中获取描述,但我假设您出于任何原因都不能这样做

因此,您需要的是开关功能

=SWITCH (
    Fields!DeviceType.Value = "1", "Desktop / Laptop / Server",
    Fields!DeviceType.Value = "2", "Server",
    Fields!DeviceType.Value = "3", "Printer",
    Fields!DeviceType.Value = "4", "Firewall",
    Fields!DeviceType.Value = "5", "Managed Switch",
    Fields!DeviceType.Value = "6", "Switch",
    Fields!DeviceType.Value = "7", "Access Point Controller",
    Fields!DeviceType.Value = "8", "Access Point",
    Fields!DeviceType.Value = "9", "Desk Phone",
    Fields!DeviceType.Value = "10", "Modem",
    Fields!DeviceType.Value = "11", "Mobile Phone",
    Fields!DeviceType.Value = "12", "DVR",
    Fields!DeviceType.Value = "13", "Camera",
    Fields!DeviceType.Value = "14", "NAS / SAN",
    Fields!DeviceType.Value = "15", "PBX",
    Fields!DeviceType.Value = "16", "UPS",
    Fields!DeviceType.Value = "17", "Router",
    Fields!DeviceType.Value = "18", "Monitor",
    True, "Unknown Device Type")
最后一个表达式的作用类似于
ELSE
,以防表达式中包含一些未包含的数据

如果这不起作用,请检查是否没有前导/尾随空格。如果有,则需要使用TRIM(
TRIM(Fields!DeviceType.Value)=…


还要检查字段是否为文本,如果它实际上是数字,请删除数字周围的引号。

如果您的表达式看起来不错,但仍在处理此错误,我建议检查错误消息中引用的对象上的其他表达式,或者完全删除表达式并尝试保存


我在一个看起来干净的可见性表达式上收到了相同的错误。这个问题原来是一个额外的结束语“)”但令人沮丧的是,错误消息说这是我三次检查的tablix可见性表达式,一切正常,结果是一个行可见性表达式。

您的图像链接已断开,但您应该将表达式文本复制/粘贴到问题中。这使其他人更容易修改/测试。@nycroce欢迎使用堆栈溢出!您现在应该编辑您的问题,以添加缺少的详细信息,请参阅最小、完整和可验证的示例。(). 请随时给我留言。很抱歉,我已经添加了表达式。您的DeviceType字段是否仅包含数字,还是还包含其他文本?仅包含数字。我希望它显示相应编号的文本,以便在查看报告时更容易理解资产的设备类型。(希望这是有道理的)。