You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS 2019中原有正常表达式突然返回#Error问题求助

SSRS表达式返回#Error问题排查与解决

问题描述

此前正常运行的SSRS表达式如今在单元格中返回#Error,具体情况:

  • 原表达式:
    =Format(First(Fields!dateEnd.Value, "myDs"), "dd/MM/yyyy HH:mm")
    
    返回#Error;
  • 单独调用=First(Fields!dateEnd.Value, "myDs")可正确返回值;
  • 单独调用=Format(Now, "dd/MM/yyyy HH:mm")可按预期格式化日期;
  • 使用字符串拼接(如"The current time: " + Format(Now, "dd/MM/yyyy HH:mm"))也会返回#Error。

解决方法

1. 强制转换数据类型并处理空值

虽然单独调用First能返回值,但dateEnd字段可能并非严格的DateTime类型,或存在空值/无效数据。先转换类型再格式化:

=Format(CDate(First(Fields!dateEnd.Value, "myDs")), "dd/MM/yyyy HH:mm")

如果存在空值,添加判断避免报错:

=IIF(IsNothing(First(Fields!dateEnd.Value, "myDs")), "", Format(CDate(First(Fields!dateEnd.Value, "myDs")), "dd/MM/yyyy HH:mm"))

2. 检查报表表达式语言设置

SSRS默认使用VB.NET作为表达式语言,若被修改会导致函数兼容问题:

  • 右键报表空白处→选择“报表属性”;
  • 切换到“代码”选项卡,确认“语言”设置为Visual Basic。

3. 调整单元格格式避免冲突

单元格本身的格式设置可能与表达式输出冲突:

  • 右键报错单元格→选择“文本框属性”;
  • 切换到“数字”选项卡,设置为“文本”或匹配的日期格式,避免双重格式化引发错误。

4. 字符串拼接改用&运算符

SSRS中+运算符对类型匹配要求严格,推荐用&进行字符串拼接:

="The current time: " & Format(Now, "dd/MM/yyyy HH:mm")

内容的提问来源于stack exchange,提问作者Luiz Guilheme Barbieri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:04:54