Ошибка на обработке IsDBNull(DateTime)

Обсуждение Stimulsoft Reports.NET
Ответить
mbondarev
Сообщения: 14
Зарегистрирован: 05 дек 2012, 12:46

Ошибка на обработке IsDBNull(DateTime)

Сообщение mbondarev »

Добрый день!

У меня в отчете есть поле с типом DateTime, которое может быть не заполнено (DBNull). Мне необходимость вывести текст "Пусто" если в этом поле нет даты.

Использую следующее выражение :

Код: Выделить всё

{select1.Date == null || System.Convert.IsDBNull(select1.Date) ? "Пусто" : Format("{0:dd.MM.yyyy}", select1.Date)}
В результате для строк с заполненной датой все отображается корректно, а для остальных - выводится пустая строка, хотя должно быть "Пусто".
Вложения
Report.mrt
(48.25 КБ) 334 скачивания
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение HighAley »

Здравствуйте.

Вы можете использовать свойство "Показывать вместо нулевых значений".
IfNullRus.png
IfNullRus.png (39.72 КБ) 4026 просмотров
Спасибо.
mbondarev
Сообщения: 14
Зарегистрирован: 05 дек 2012, 12:46

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение mbondarev »

Добрый день!

Все-таки, мне кажется, что это ошибка. И было бы хорошо исправить ее, тк в некоторых отчетах необходимо производить обработки полей на isdbnull. Например, когда печатаем какой-либо договор пропадает целый пункт.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение HighAley »

Здравствуйте.

Пришлите, пожалуйста, шаблон отчёта с данными, чтобы мы смогли воспроизвести данную проблему.

Спасибо.
mbondarev
Сообщения: 14
Зарегистрирован: 05 дек 2012, 12:46

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение mbondarev »

проект во вложении
Вложения
StimulSoftDesignerTest.zip
(32.9 КБ) 177 скачиваний
mbondarev
Сообщения: 14
Зарегистрирован: 05 дек 2012, 12:46

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение mbondarev »

забыл написать, что нужно нажимать кнопку "Print"
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение HighAley »

Здравствуйте.

При обращении к DataSource.Field вы получаете значение, приведённое к нужному типу, а в данном случае следует обращаться именно в объекту базы данных.
Поэтому вам следует использовать следующее выражение:

Код: Выделить всё

{System.Convert.IsDBNull(select1["Date"]) ? "Пусто" : Format("{0:dd.MM.yyyy}", select1.Date)}
так как в первоначальном варианте вы проверяли уже приведённое значение.

Спасибо.
mbondarev
Сообщения: 14
Зарегистрирован: 05 дек 2012, 12:46

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение mbondarev »

Спасибо, помогло!
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Ошибка на обработке IsDBNull(DateTime)

Сообщение HighAley »

Здравствуйте.

Рады вам помочь.

Спасибо.
Ответить