2

我有一个查询在 SSRS 中显示名称为“<code>PostedOn”的 DateTime 字段。问题是当我使用 ASP.Net 查看我的报告时,报告仅在 PostedOn 字段上显示#Error。但是当我在设计器视图中查看我的报告时,它会正确显示 PostedOn 日期。如果我使用

= Fields!PostedOn.Value

直接值,它显示 SSRS 上的 PostedOn 列为空。如果我使用

= CDate(Fields!PostedOn.Value).ToShortDateString() 

比它特别反弹 # Error。设计器显示正确的日期 e.g. 08/06/2012.

当我从 ASP.Net 应用程序查看此报告时。它显示 # Error。我已经检查过了

=Iif(IsNothing(Fields!PostedOn.Value),"",
CDate(Fields!PostedOn.Value).ToShortDateString())' 

也是,但到目前为止还没有运气。#Error显示在报告上。请帮助我。提前致谢。

4

2 回答 2

3

您应该检查日期时间最小值

 =IIf(CDate(Fields!PostedOn.Value)=CDate("1/1/0001"),Nothing,
 CDate(Fields!PostedOn.Value).ToShortDateString()) 

检查这篇文章

于 2012-08-06T12:50:45.357 回答
0

也许值PostedOnNULL当您从应用程序调用报告时,并且当您尝试在表达式中使用空值执行某些函数时,通常会给您错误。

当 SSRS 使用 iif 子句评估表达式时,将分别评估所有部分:条件、真值和假值,最后决定要推什么。

您在 Iif 表达式中具有字段功能ToShortDateString()PostedOn因此当 PostedOn 为 NULL 时,可能会给您一个错误。

尝试检查什么应用程序发送报告。

于 2012-11-23T13:24:11.470 回答