Вопрос по форматированию даты
Здравствуйте.
Я пока чайник в FR, поэтому и вопрос соответственный.
Нужно тривиально отформатировать дату в поле.
Согласно инструкции пишу в нем:
[frxDBNaklSklad."DATA" #ddd.mm.yy]
.
В результате форматирование происходит, но вместо реальной даты выводит всюду какое-то неведомое значение - 29.06.05. Пытался форматировать и с помощью редактора формата - все то же.
Что делать?
Спасибо.
Я пока чайник в FR, поэтому и вопрос соответственный.
Нужно тривиально отформатировать дату в поле.
Согласно инструкции пишу в нем:
[frxDBNaklSklad."DATA" #ddd.mm.yy]
.
В результате форматирование происходит, но вместо реальной даты выводит всюду какое-то неведомое значение - 29.06.05. Пытался форматировать и с помощью редактора формата - все то же.
Что делать?
Спасибо.
Комментарии
Бэнд подключён к датасету?
memo расположен на GroupHeader и подключен к датасету, ибо если убрать форматирование дата отображается корректно, вот только присутствует время, что мне, собственно, и не нужно.
Попробовал. Показывает то же 29.06.1905. Но как только DateToStr убрать - дату и время показывает верно. Попробовал также ставить поле и на другие бенды, в том числе и на мастер - глюк не исчезает.
Стоял у меня сначала недолго FR3 - так там тоже самое с форматированием времени было. Снес я его и поставил FR4. Вначале, я, как истинный славянин, поле покороче сделал и время терялось за углом - главное результат. Но вот дошло до експорта в ексель - поля должны соответствовать ширине колонок таблицы - приперло как-то решать этот вопрос.
Мож чего и криво заинсталлировал - так ведь все остальное хорошо работает.
Попробуйте в делфи ShowMessage(DateToStr(Table.FieldValues)); (где table это ваш датасет) , думаю результат будет аналогичный.
М-дя....
Действительно.
ShowMessage(DateToStr(Table.FieldValues));
и ShowMessage(Table.FieldValues.asstring);
дают разлмчные результаты.
В делфи то я, как раз, не новичок, но виже такое в первый раз.
FR тут нипричем.
Спасибо. Это я уж вырою.
Можно попробовать просто отбросить дробную часть числа (т.е. время).
Если и после этого выводится не правильная дата то, обратите внимание на переменную ShortDateFormat содержит формат даты для функции DateToStr(обычно берется из системных региональных настроек).
Но если вы пробовали задавать строку форматирования вручную то, скорее всего, что-то со значением в поле.
Да... Похоже тут не все так просто. Смахивает на кучерявый глюк в FR c вариантным типом.
Уважаемый =Den=. Зайдите, пожалуйста, на форум по делфям в SQL.RU. Я там дискуссию по этому поводу поднял и уже много написано. Не перекатывать же все сюда. Прошу Вас.
DataSet клиента может иметь поле с датой типа TSQLTimeStamp, который не одно и тоже с типом TDateTime. Преобразование по умолчанию вариантного значения такого поля в строку Delphi выполняется правильно, но функция DateToStr с этим типом не дружит. Посему вариантный выбор полей в виде dataset1.fields[0] разработчиками FR есть плохим ходом и надо бы использовать более контролируемые asDateTime, etc.
В ФР для определенных типов есть исключение , они читаются не через вариант.
Нужно было сразу сказать какой тип у поля, добавим его в исключения
А об этом, если можно подробней.