1

我正在使用对象数据源编写 Visual Studio 2012 报告 (.sdlc)。对象数据源有一个可为空的 DateTime?财产。我想在为空时显示“-”,然后在不为空时将日期格式化为“dd-MMM-yy”。

我尝试了以下表达式,但总是在报告的 TextBox 中收到“#Error”。

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

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

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

我认为“格式”属性依赖于 DateTime 类型,所以我尝试将值转换为表达式中的字符串,但仍然得到“#Error”

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

=IIf(IsDate(Fields!OpenInDRMADate.Value), "-", FormatDateTime(Fields!OpenInDRMADate.Value, DateFormat.ShortDate))

如何为空 DateTime 值显示“-”?

4

2 回答 2

0

我在标题文本框中的日期有同样的问题。

=IIF(ISDATE(Fields!LICENCEDDATE.value) = False, "", formatdatetime(IIF(IsDate(Fields!LICENCEDDATE.value) ="1",Fields!LICENCEDDATE.Value,"01/01/1900"),dateformat .ShortDate))

这有效

我只是不明白

formatdatetime(IIF(IsDate(Fields!LICENCEDDATE.value) ="1" <-- "1" 是什么意思???

于 2012-12-20T23:04:00.783 回答
0

我想你可能有别的事情要做,因为我试过了

=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中。

也许您在该对象上有另一个导致问题的表达式(例如,颜色)?

于 2012-11-05T01:05:42.927 回答