Как DateTime, допускающий значение NULL, получает значение по умолчанию, если значение NULL в отчете Visual Studio 2012 (.sdlc)

Я работаю над отчетом Visual Studio 2012 (.sdlc), используя объектный источник данных. Источник данных объекта имеет значение DateTime?, допускающее значение NULL. имущество. Я хотел бы отображать «-» при нулевом значении, а затем форматировать дату как «дд-МММ-гг», если она не равна нулю.

Я пробовал следующие выражения, но всегда получал "#Error" в текстовом поле отчета.

Примечание. В этих двух попытках свойство «Формат» в текстовом поле установлено на «дд-МММ-гг».

=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?


person jacksonakj    schedule 02.11.2012    source источник


Ответы (2)


Я думаю, у вас может быть что-то еще, потому что я пытался

=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.

Может быть, у вас есть другое выражение (например, для цвета) для этого объекта, которое вызывает проблему?

person Chris Latta    schedule 05.11.2012

У меня была такая же проблема с датой в текстовом поле заголовка.

=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"???

person Ron Armstrong    schedule 20.12.2012
comment
Публикуйте вопросы как вопрос. Это раздел ответов. - person A--C; 21.12.2012