Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Visual Studio 2012报表(.sdlc)中为null时,如何为可为null的日期时间指定默认值_Visual Studio_Reporting Services_Sdlc - Fatal编程技术网

Visual studio Visual Studio 2012报表(.sdlc)中为null时,如何为可为null的日期时间指定默认值

Visual studio Visual Studio 2012报表(.sdlc)中为null时,如何为可为null的日期时间指定默认值,visual-studio,reporting-services,sdlc,Visual Studio,Reporting Services,Sdlc,我正在使用对象数据源编写Visual Studio 2012报表(.sdlc)。对象数据源具有可为空的DateTime?财产。如果为空,我希望显示“-”,如果不为空,则将日期格式化为“dd-MMM-yy” 我尝试了以下表达式,但在报告的文本框中始终收到“#Error” 注意:在这两次尝试中,文本框上的“格式”属性设置为“dd MMM yy” =IIf(IsNothing(Fields!OpenInDRMADate.Value), "-", Fields!OpenInDRMADate.Value)

我正在使用对象数据源编写Visual Studio 2012报表(.sdlc)。对象数据源具有可为空的DateTime?财产。如果为空,我希望显示“-”,如果不为空,则将日期格式化为“dd-MMM-yy”

我尝试了以下表达式,但在报告的文本框中始终收到“#Error”

注意:在这两次尝试中,文本框上的“格式”属性设置为“dd MMM yy”

=IIf(IsNothing(Fields!OpenInDRMADate.Value), "-", Fields!OpenInDRMADate.Value)

=IIf(IsDate(Fields!OpenInDRMADate.Value), "-", Fields!OpenInDRMADate.Value)
我认为'Format'属性依赖于DateTime类型,所以我尝试将值转换为表达式中的字符串,但仍然得到了'#错误'


我如何为空的日期时间值显示“-”呢?

我想您可能会有其他原因,因为我尝试了

=IIf(IsNothing(Fields!OpenInDRMADate.Value), "-", Fields!OpenInDRMADate.Value)
将Format属性设置为
dd MMM yy
,并获取空日期的破折号

我也试过了

=IIf(IsNothing(Fields!OpenInDRMADate.Value), "-", FormatDateTime(Fields!OpenInDRMADate.Value, DateFormat.ShortDate))
没有Format属性,并且再次得到了空的破折号

这是在VS2008年


可能是该对象上的另一个表达式(例如,颜色)导致了问题?

我在标题文本框中遇到了与日期相同的问题

=IIF(ISDATE(Fields!licensedDate.value)=False,“, formatdatetime(IIF(IsDate(Fields!licensedDate.value)=“1”,Fields!licensedDate.value,“01/01/1900”),dateformat.ShortDate)

这很有效

我只是不明白

formatdatetime(IIF(IsDate)(Fields!licensedDate.value)=“1”请将问题作为答案发布。这是答案部分。
=IIf(IsNothing(Fields!OpenInDRMADate.Value), "-", FormatDateTime(Fields!OpenInDRMADate.Value, DateFormat.ShortDate))