【问题标题】:SSRS VB IIF statement returning error for NULL valueSSRS VB IIF 语句返回 NULL 值错误
【发布时间】:2016-04-15 13:22:54
【问题描述】:

我想知道是否有人可以帮助我们理解为什么 SSRS 在我的 Textbox13 文本框中返回错误。

警告 1 [rsRuntimeErrorInExpression] 文本运行“Textbox13.Paragraphs[0].TextRuns[0]”的值表达式包含错误:从字符串“NULL”到类型“Date”的转换无效。

值 Workorder_Closed_Date 是 sql 查询的结果,要么填写要么为 NULL

=IIF(IsNothing(Fields!Workorder_Closed_Date.Value),
    reportitems!Textbox13.Value="open",
    reportitems!Textbox13.Value="closed")

【问题讨论】:

  • 这是Textbox13的表达式吗?

标签: vb.net reporting-services null


【解决方案1】:

如果该表达式适用于Textbox13,那么这将起作用:

=IIf(IsNothing(Fields!WorkOrder_Closed_Date.Value), "open", "closed")

请注意,IIf 同时执行 truefalse 部分,因此您希望在条件的每个分支中都有一个 常量表达式,而不是副作用。

=IIf(condition, value_if_true, value_if_false)

天哪。

警告 1 [rsRuntimeErrorInExpression] textrun 'Textbox13.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:从字符串“NULL”到类型“Date”的转换无效强>

您的值不是null(实际上也不是Nothing)——它是一个包含VALUE "NULL" 的字符串字面量。

您需要修复您的数据,而不是您的报告。

【讨论】:

  • 试过了,但看起来 SSRS 拒绝了 Fields!WorkOrder_Closed_Date.Value
  • 我之前没有注意到这一点,但我收到以下错误警告 1 [rsRuntimeErrorInExpression] textrun 'Textbox13.Paragraphs[0].TextRuns[0]' 的值表达式包含错误:转换从字符串“NULL”到类型“日期”无效。
  • 奇怪,数据库字段是数据时间,这意味着 SSRS 正在更改字段类型...
  • 我想我理解你所说的数据库正在将其更改为文本值为 NULL 的字符串,如果是这样的话,我很惊讶,因为数据库来自信誉良好的供应商
  • 您的数据源(视图、存储过程、内联 SQL)可能正在“为了方便”进行转换。如果数据库将日期存储为日期,那就有希望了。
猜你喜欢
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
相关资源
最近更新 更多