2011-06-16 49 views
1

我工作在asp.net的报告,MVC/C#和我在报告中希望在无时间显示日期所以不是表达编辑

2011/12/3 00:00:00 - -----以------ 2011/12/3

,我使用这个表达式是显示日期我的文本框:

=FormatDateTime(Fields!DateClosed.Value) 

,以及用于与项目日期它没有时间正确显示 - 但对于列表中没有日期的其他项目,它们显示时间如下:12:00:00 AM

如何修复表达式,以便仅在有日期显示时显示日期,而不显示日期不可用时。

+0

你能澄清你的问题吗?你有一些没有日期的项目,你不想出现任何东西。但是你有物品有日期,你只希望日期出现? – carlbenson 2011-06-16 14:23:41

+0

@Carl Benson正确,我有一个列表中的项目,其中有一些日期与我有的当前表达式显示正常。但是对于没有日期的项目,时间会显示在上午12:00:00,如果没有日期,我不希望出现任何内容。 – Masriyah 2011-06-16 14:25:40

回答

1

所以我玩了这个,我用了一个不同的格式表达式,幸运的运行良好。感谢大家如何帮助。

=Format(Fields!DateClosed.Value, "d") 
0

检查日期为空,如果是则设置string.Empty

2

如何:

=(DateClosed==null) ? FormatDateTime(DateClosed) : string.Empty; 

此外,您可以使用

=(DateClosed==null) ? DateClosed.Value.ToString("mm dd yyyy") : string.Empty; 

,而不是调用一个单独FormatDateTime()功能(当然,除非你需要集中日期格式,但可以通过将格式存储在web.config中来处理)。

甚至

string FormatDateTime(DateTime? date) 
{ 
    var result = date==null ? date.ToString("mm dd yyyy") : string.Empty; 
} 

,如果你不想把三元条件的标记。

+0

感谢您的帮助,这看起来非常好,有助于使用,但对于报表查看器中的文本框表达式,它不喜欢冒号表达式,但我知道这对于我将用于其中的应用程序的其他部分非常有用。谢谢 – Masriyah 2011-06-16 14:44:01

+0

这也适用于我的报告:=格式(Fields!DateClosed.Value,“d”) – Masriyah 2011-06-16 14:46:59