Отображение полей Datetime
Здравствуйте.
По умолчанию значения пустых полей типа DateTime отображаются как "01.01.0001".
Это очень неудобно.
Можно сделать что-бы для пустого поля по умолчанию возвращалось пустое значение?
Пробую использовать ф-ию:
[FormatDateTime([DEAL_INFO.BIRTHDAY])]
результат: 0:00:00
Судя по документации должно быть пустое значение в результате.
Ошибка в ф-ии?
PS. Источник данных - Oracle, FR 1.1.62
Спасибо.
По умолчанию значения пустых полей типа DateTime отображаются как "01.01.0001".
Это очень неудобно.
Можно сделать что-бы для пустого поля по умолчанию возвращалось пустое значение?
Пробую использовать ф-ию:
[FormatDateTime([DEAL_INFO.BIRTHDAY])]
результат: 0:00:00
Судя по документации должно быть пустое значение в результате.
Ошибка в ф-ии?
PS. Источник данных - Oracle, FR 1.1.62
Спасибо.
Комментарии
Используйте св-во HideValue:
http://fast-report.com/documentation/UserM...u/hidezeros.htm
Это не совсем хорошее решение. HideValue использует региональные установки. Для полей с датами и временем это очень неудобно.
Мне кажется, что пустые поля должны по умолчанию отображаться пустыми, ведь в БД значение поля = null.
И разработчик отчета не может догадываться, что в этом случае получится "01.01.0001".
А что насчет ф-ии FormatDateTime?
Это не относится к решению вопроса отображения пустых дат, но насколько я понял, ф-ия должна вернуть пустое значение в случае пустого аргумента.
Ф-я FormatDateTime - это полный аналог VB-шной функции, и ведет себя соответственно.
Решил поднять тему еще раз.
Я считаю, что преобразование null-значений (Convert null values) в настройках отчета не должно влиять на отображение полей с датами.
В этом нет никакого смысла.
Пустая дата не должна отображаться как "01.01.0001".
Кроме того, параметры ведут себя правильно (нет преобразования).
Я общался на вашем семинаре в Киеве с Михаилом Филиппенко.
Он со мной согласился и записал этот вопрос.
Вопрос будет решен?
Спасибо
С недавнего времени можно использовать св-во HideZeros у объекта "Текст" для подавления пустых дат.
А с выражениями что делать? А с датами внутри объекта RichText?
Получается совершенно нелогичное поведение.
Я считаю, что такое поведение является неверным в принципе.
Может я ошибаюсь, тогда приведите пример, пожалуйста.
[Year([Employees.BirthDate])]
вернет 1 в обоих случаях. В выражениях всегда используется вызов Report.GetColumnValue("column_name"), который конвертирует null независимо от системной настройки. Если этого не делать, будут возникать ошибки.