SSRS - 如何使 IIF 语句忽略无效值

2024-03-20

我正在使用 Business Intelligence 2008 在 SSRS 中创建一个表。我有一个日期(作为字符串)作为表中使用的值之一。该值可能有一个表示日期的字符串,也可能为空。如果它有一个值,我希望该值以不同的方式格式化。现在,我有一个显示它的单元格的表达式:

=IIf(Fields!MyDate.Value = Nothing, "", Format(CDate(Fields!MyDate.Value), "dd-MM-yyyy"))

如果该字段具有值,则此方法非常有效。但是,当该字段为空时,该单元格将填充为#Error。如果我有的话,这就有意义了Format功能,但似乎IIf应该阻止它尝试使用空白值运行它。我用这个表达式测试了它:

=IIf(Fields!MyDate.Value = Nothing, "No value", "Value")

...果然,空白值输入了语句的正确部分并打印出“无值”。我不明白为什么表达式的第二部分(未使用)会导致错误。有没有办法重写这个不会导致错误?谢谢

编辑:正如我在评论中提到的,我还尝试了这样的 switch 语句:

=Switch(Fields!MyDate.Value = Nothing, "", Fields!MyDate.Value <> Nothing, Format(CDate(Fields.MyDate.Value), "dd-MM-yyyy"))

然而,这返回了#Error也适用于空白值。

编辑关于可能的重复:请不要将其标记为询问 IIf 是否短路的问题的重复。我看了那里,它问了一个不同的问题,但没有给出适合我需要的答案。


问题是Iif不会短路。一种丑陋的解决方法是使用嵌套Iif:

=IIf(Fields!MyDate.Value = Nothing, "", _
    Format(CDate(Iif(Fields!MyDate.Value = Nothing, Today(),Fields!MyDate.Value)), "dd-MM-yyyy"))

这是丑陋的、重复的、容易出错的。

另一种选择是创建一个自定义函数does短路:

Public Function FormatOrBlank (ByVal theDate As DateTime, ByVal format As String)
If String.IsNullOrWhiteSpace(theDate) 
  Return ""
Else
  Return Format(CDate(theDate)), format)
End If
End Function 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSRS - 如何使 IIF 语句忽略无效值 的相关文章

随机推荐

  • Hibernate 的二级缓存是否/可以用于 COUNT() 操作?

    当使用 Hibernate 和 Ehcache 作为二级缓存 2LC 实现时 在使用 WHERE 子句执行 COUNT 操作时是否 或可以 使用此缓存 用 SQL 术语来说 我正在执行的查询是SELECT COUNT id FROM tab
  • 以编程方式选择 DataGridView 的一行

    在我的表单应用程序中 有一个 buttonNEW 选择NewIndexRow of DataGridView我想用这个按钮更改 datagridview 的索引 private void buttonNew Click object sen
  • 将变量向上舍入到下一个最接近的 X 倍数

    我正在寻找一种方法将数字四舍五入到下一个最接近的 250 倍数 例如 如果我有以下 JS var containerHeight container height 我们假设 containerHeight 的值是 680px 我想要一种向上
  • 如何设置 AG-GRID 列垂直边框的样式

    我希望我的 AG Grid 列具有垂直边框 默认情况下 网格行具有水平边框 我希望它模仿常规 Excel 电子表格的外观和感觉 我尝试在列定义中使用单元格样式 如下所示 this columnDefs headerName Test cel
  • 我可以通过编程方式向 WPF 数据网格添加一行吗?

    我只想添加一个新行 我的数据源位于需要进行一些处理的对象中 我需要像下面这样的 wpf 数据网格 DataRow row dataTable NewRow foreach NavItem item in record Items row i
  • 如何将数据绑定到非静态类上的静态属性?

    In my ViewModel类我有一个静态属性AllSupport但我不知道如何正确绑定它 ListView 已绑定到 ObservableCollectionAllEffects具有AllSupport静态属性 我用过这个
  • 在 PHP 邮件函数中设置 $headers 数组时遇到问题

    当我将 headers 数组指定为时 我无法通过 PHP 邮件函数发送电子邮件 headers array From gt email protected cdn cgi l email protection Content type gt
  • 悬停时模糊整个背景

    所以我的首页上有一些项目 其中显示了一些动漫 我想做的是 当你将鼠标悬停在第一个节目 Hunter X Hunter 上时 我希望页面上的所有其他内容 不包括悬停的内容 都变得模糊 我环顾四周 看到了一些例子 但我觉得我的情况有点不同 首页
  • PHP REST API 中的选项

    我正在用 PHP 编写 REST API 但找不到任何解释如何使用 OPTIONS 的资源 它似乎是 REST API 的重要组成部分 这就是我发现的内容 谁能解释 OPTIONS 应该包含什么以及它应该如何格式化 提前致谢 HTTP OP
  • 您在哪里进行验证?

    希望您会看到我在下面的场景中描述的问题 如果不清楚 请告诉我 您的应用程序分为三层 前端UI层 可以是asp net webform 或者window 用于编辑Person数据 中间层业务服务层 编译成dll PersonServices
  • 如何在 jenkins 2 管道中使用 FileParameterValue

    如何将当前项目工作区中的文件作为参数传递给另一个项目 例如就像是 build job otherproject parameters class FileParameterValue name output tar gz value wai
  • IntelliJ 中的“重新部署”和“重新启动服务器”有什么区别?

    我使用 IntelliJ 和 Tomcat 6 来运行 Spring Java EE 应用程序 我没有部署已编译的 war 而是选择使用分解的 war 部署 从而使我可以选择热交换一些类和 JSP 然而 除了 更新类 和 更新类和资源 之外
  • 不支持扫描,将 driver.Value 类型 []uint8 存储为类型 *time.Time

    我很难查询用户 其定义为 type User struct ID int db id json id UserName string db username json username Email string db email json
  • 正则表达式匹配字符串,不包含重复字符

    我正在寻找一个简单的正则表达式来匹配没有重复字符的字符串 例子 JHMCU26809C211501 good JHMGD18508S219366 good JHMCU268091111111 坏 12345678901234567 good
  • NULL 与 NOT NULL [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 检测到设备正在关闭?

    在我的 Android 应用程序中 如果设备突然关闭 我需要执行一些操作 有什么方法可以检测设备是否已关闭 广播操作 设备正在关闭 这是广播时 设备正在关闭 完全关闭 而不是睡眠 一次 广播完毕 将进行最后的关闭 所有 未保存的数据丢失 应
  • RecyclerView 的 GridLayoutManager 上的方形布局

    我尝试用方形图像制作网格布局 我认为一定可以操纵GridLayoutManager通过操纵onMeasure做一个 super onMeasure recycler state widthSpec widthSpec 代替 super on
  • 使用 apache2 作为 proxypass 时的 Apache OpenMeetings 4.0.4 CSRF 攻击

    我有 Apache OpenMeetings 4 0 4 女巫 Apache 2 2 22 作为代理 在 OM 的 conf red5 properties 中我有 http port 8080 我想做两件事 重定向 HTTP 80 gt
  • Laravel Jetstream 与 Intertia 不返回用户

    我已经安装了带有 Inertia 的 Jetstream 我注册一个用户 然后尝试登录 控制台给出以下错误 Vue warn Error in render TypeError vm page user is null 当我查看控制器的响应
  • SSRS - 如何使 IIF 语句忽略无效值

    我正在使用 Business Intelligence 2008 在 SSRS 中创建一个表 我有一个日期 作为字符串 作为表中使用的值之一 该值可能有一个表示日期的字符串 也可能为空 如果它有一个值 我希望该值以不同的方式格式化 现在 我