SSRS报告在DateTime字段上显示#Error

时间:2012-08-06 12:37:26

标签: reporting-services

我有一个查询,在SSRS中显示名称为“PostedOn”的DateTime字段。 问题是当我使用ASP.Net查看我的报告时,报告仅在PostedOn Field上显示#Error。 但是当我在Designer View中查看我的报告时,它正确地显示了PostedOn Date。 如果我使用

= Fields!PostedOn.Value

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

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

比使用#Error特别反弹。 Designer显示正确的日期     e.g. 08/06/2012.

当我从ASP.Net Application查看此报告时。它显示#Error。 我已经用

检查了它
=Iif(IsNothing(Fields!PostedOn.Value),"",
CDate(Fields!PostedOn.Value).ToShortDateString())' 

但到目前为止还没有运气。 #Error显示在报告中。 请帮帮我。 提前谢谢。

2 个答案:

答案 0 :(得分:3)

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

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

查看this文章

答案 1 :(得分:0)

当你从app调用报表时,PostedOn的值可能是NULL,当你尝试使用null值在表达式中执行某些函数时,通常会给你错误。

当SSRS使用iif子句计算表达式时,则分别对所有部分进行评估:条件,真值和假值,并在最后完成决定shov的内容。

你在ToShortDateString()字段中有函数PostedOn,在Iif表达式中,所以当PostedOn为NULL时,可能会给你一个错误。

尝试检查应用程序发送到哪个报告。