sql-server-2005 - SQL 2005 Reporting Services 如果检查 null

标签 sql-server-2005 reporting-services reportingservices-2005

在 SSRS 2005 中,我有一个表,其中有一个数据集链接到它。
我想检查一个字段的值是否为空,如果它不为空然后格式化数据以确保它有一个小数位并添加一个 % 符号等。

这是我在字段/列上的表达:

=iif(IsNothing(Fields!COL01.Value), "" ,Format(CDbl(Trim(Replace(Fields!COL01.Value, "%", ""))), "N1") + "%")

当数据为空时它似乎不起作用(如果有数据它工作正常)。报告显示,但该字段显示为#ERROR。

我认为它会检查两种情况是否有效,即使它为空。我正在尝试使用 if 语句来避免格式​​化空值。

最佳答案

SSRS 表达式使用 Visual Basic 进行计算,它通常对表达式中的所有操作数进行完整(即不是短路)计算,例如在 IIf(cond, truexp, falsexp) 中,除了 cond 之外,truexp 和 falsexp 都会被评估,并且无论 cond 的值如何都可能抛出。

由于 VB.NET 2.0 中似乎没有合并函数,您可能希望在报告的代码部分添加一个,例如从 Oracle 返回的十进制

Function Coalesce(fieldValue As Object, defaultValue As Decimal) As Decimal
  If IsDBNull(fieldValue) OrElse IsNothing(fieldValue) Then
    Coalesce = defaultValue
  Else
    Coalesce = CDec(fieldValue) 
  End If
End Function

也可以定义通用函数,例如合并(TResult)。

关于sql-server-2005 - SQL 2005 Reporting Services 如果检查 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835954/

相关文章:

sql-server - 如何将数据从 SQL Server 数据库传输到 Oracle 数据库

sql-server - 设置从 SQL Server 2005 到 PostgreSQL 的链接服务器

reporting-services - 问题在 SSRS 报告中重新部署更新的默认参数

visual-studio - 使用 SSRS 将日期按降序排列

reporting-services - SQL Reporting Services,请求失败,HTTP 状态为 404 : Not Found

sql-server - 如何在运行时控制SSRS图表中不存在的数据项?

sql-server - 在 VS 设计器中加载包时禁用 SSIS 包验证

sql - 将数值转换为Varchar

javascript - HTML 5 报表设计器

visual-studio-2010 - 报告默认折叠。你知道如何避免这种情况吗?