Страница 1 из 1

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

Добавлено: 05 дек 2012, 13:10
mbondarev
Добрый день!

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

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

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

{select1.Date == null || System.Convert.IsDBNull(select1.Date) ? "Пусто" : Format("{0:dd.MM.yyyy}", select1.Date)}
В результате для строк с заполненной датой все отображается корректно, а для остальных - выводится пустая строка, хотя должно быть "Пусто".

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

Добавлено: 05 дек 2012, 16:22
HighAley
Здравствуйте.

Вы можете использовать свойство "Показывать вместо нулевых значений".
IfNullRus.png
IfNullRus.png (39.72 КБ) 4023 просмотра
Спасибо.

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

Добавлено: 25 дек 2012, 16:53
mbondarev
Добрый день!

Все-таки, мне кажется, что это ошибка. И было бы хорошо исправить ее, тк в некоторых отчетах необходимо производить обработки полей на isdbnull. Например, когда печатаем какой-либо договор пропадает целый пункт.

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

Добавлено: 26 дек 2012, 09:49
HighAley
Здравствуйте.

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

Спасибо.

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

Добавлено: 27 дек 2012, 10:42
mbondarev
проект во вложении

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

Добавлено: 27 дек 2012, 12:21
mbondarev
забыл написать, что нужно нажимать кнопку "Print"

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

Добавлено: 27 дек 2012, 12:23
HighAley
Здравствуйте.

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

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

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

Спасибо.

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

Добавлено: 27 дек 2012, 13:32
mbondarev
Спасибо, помогло!

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

Добавлено: 27 дек 2012, 14:29
HighAley
Здравствуйте.

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

Спасибо.