我有一个查询,在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
显示在报告中。
请帮帮我。
提前谢谢。
答案 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时,可能会给你一个错误。
尝试检查应用程序发送到哪个报告。