Отображение полей Datetime

отредактировано 23:56 Раздел: FastReport .NET
Здравствуйте.

По умолчанию значения пустых полей типа DateTime отображаются как "01.01.0001".
Это очень неудобно.
Можно сделать что-бы для пустого поля по умолчанию возвращалось пустое значение?

Пробую использовать ф-ию:
[FormatDateTime([DEAL_INFO.BIRTHDAY])]
результат: 0:00:00
Судя по документации должно быть пустое значение в результате.
Ошибка в ф-ии?

PS. Источник данных - Oracle, FR 1.1.62

Спасибо.

Комментарии

  • отредактировано 23:56
    Здравствуйте,

    Используйте св-во HideValue:
    http://fast-report.com/documentation/UserM...u/hidezeros.htm
  • отредактировано 23:56
    Здравствуйте.

    Это не совсем хорошее решение. HideValue использует региональные установки. Для полей с датами и временем это очень неудобно.
    Мне кажется, что пустые поля должны по умолчанию отображаться пустыми, ведь в БД значение поля = null.
    И разработчик отчета не может догадываться, что в этом случае получится "01.01.0001".

    А что насчет ф-ии FormatDateTime?
    Это не относится к решению вопроса отображения пустых дат, но насколько я понял, ф-ия должна вернуть пустое значение в случае пустого аргумента.
  • отредактировано 23:56
    Кроме того, в аналогичной ситуации параметры типа DateTime отображаются пустыми.
  • отредактировано 23:56
    Другой вариант - отключить преобразование null-значений в настройках отчета. По умолчанию оно включено.
    Ф-я FormatDateTime - это полный аналог VB-шной функции, и ведет себя соответственно.
  • отредактировано 23:56
    Здравствуйте.

    Решил поднять тему еще раз.
    Я считаю, что преобразование null-значений (Convert null values) в настройках отчета не должно влиять на отображение полей с датами.
    В этом нет никакого смысла.
    Пустая дата не должна отображаться как "01.01.0001".
    Кроме того, параметры ведут себя правильно (нет преобразования).
    Я общался на вашем семинаре в Киеве с Михаилом Филиппенко.
    Он со мной согласился и записал этот вопрос.

    Вопрос будет решен?

    Спасибо
  • отредактировано 23:56
    Здравствуйте,

    С недавнего времени можно использовать св-во HideZeros у объекта "Текст" для подавления пустых дат.
  • отредактировано 23:56
    AlexTZ написал: »
    Здравствуйте,

    С недавнего времени можно использовать св-во HideZeros у объекта "Текст" для подавления пустых дат.

    А с выражениями что делать? А с датами внутри объекта RichText?
    Получается совершенно нелогичное поведение.
    Я считаю, что такое поведение является неверным в принципе.
    Может я ошибаюсь, тогда приведите пример, пожалуйста.
  • отредактировано March 2010
    Св-во HideZeros также работает и в RichText. С выражениями все просто: что включена опция ConvertNulls, что выключена - разницы нет, нулевая дата все равно будет представлена в виде 1.1.0001. Например,
    [Year([Employees.BirthDate])]
    вернет 1 в обоих случаях. В выражениях всегда используется вызов Report.GetColumnValue("column_name"), который конвертирует null независимо от системной настройки. Если этого не делать, будут возникать ошибки.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.