Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Добрый день. Подскажите, пожалуйста, как правильным образом отображать значение поля типа datetime в гриде, я в свойстве Displayformat поля ставлю dd.mm.yyyy hh:MM:ss, при работе приложения всё отображает правильно, но при входе в режим редактирования поля, значение отображается в каком-то непонятном виде, если установить Editmask, то тоже показывается ввод по маске, а мне хотелось, чтобы при переходе в этот режим корректно отображалась дата и время. Заранее спасибо.
13 ноя 17, 11:57    [20948706]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 23086
patrick1968
чтобы при переходе в этот режим корректно отображалась дата и время

А сейчас как отображается?
13 ноя 17, 12:08    [20948766]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3156
И какие компоненты используются (что за грид)?
13 ноя 17, 12:11    [20948782]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
при отображении 09.11.2017 14:06:50 - это правильно,
а при входе в редактирование становится 2017-11-09 14:06:50 14:06:50 (почему-то время дважды) и формат даты сменился
13 ноя 17, 12:16    [20948801]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 28374

сравни DisplayFormat и EditFormat у "проблемного" поля.

Posted via ActualForum NNTP Server 1.5

13 ноя 17, 15:03    [20949703]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
У поля ADOQuery, также как и у Columns[i] грида нет такого свойства как EditFormat
13 ноя 17, 15:43    [20949926]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Компонент dbgrideh
13 ноя 17, 15:50    [20949960]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 28374

13.11.2017 15:43, patrick1968 пишет:
> нет такого свойства как EditFormat

ну значит EditMask, или что-то подобное.
чЮдес на свете не бывает.

Posted via ActualForum NNTP Server 1.5

13 ноя 17, 16:12    [20950041]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3156
Там у dbgrideh вообще-то DateEdit-контрол должен появляться с выбором из календаря (а не обычное текстовое поле с вводом по маске). Может тип колонки неправильно определился в датасете? Надо щелкнуть по датасету, выбрать Fields, выбрать нужное поле (если нет, то добавить в список все поля через add all fields), после чего посмотреть класс у поля -- он должен быть TDateField быть.

Вот так:
Картинка с другого сайта.
13 ноя 17, 16:49    [20950193]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Если в EditMask вписать шаблон даты, то при в ходе в редактирование вместо даты я вижу 10.__.__, но это также не интересно, может шаблон какой другой долженн быть а не !99.99.00;1;_
13 ноя 17, 16:53    [20950213]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57552
Удали колонку (Column) из грида и добавь заново.

Posted via ActualForum NNTP Server 1.5

13 ноя 17, 17:08    [20950286]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Что только не перепробовал - бесполезно

К сообщению приложен файл. Размер - 38Kb
13 ноя 17, 17:54    [20950447]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57552
Чудес не бывает. Выкладывай архив с проектом.

Posted via ActualForum NNTP Server 1.5

13 ноя 17, 19:33    [20950696]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
d7i
Member

Откуда:
Сообщений: 97
Проблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.
Надо в SQL-запросе установить нужный формат функцией DATEFORMAT (или подобной - не
знаю какой диалект SQL используется в БД, но в любом есть функция форматирования даты)...
13 ноя 17, 19:57    [20950750]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 26642
patrick1968
при входе в редактирование становится 2017-11-09 14:06:50 14:06:50

в настройках системы небось такой формат впилил. Проверь.
13 ноя 17, 20:05    [20950767]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
не думаю, что запрос здесь как-то влияет, вот его вид:

SET DATEFORMAT dmy;

SELECT sh.ShiftID, CAST(sh.OutTime as DATETIME) OutTime, sh.CarID, c.RegNum, sh.OutDriverID,
(d.FirstName + ' ' + SUBSTRING(d.LastName, 1,1) + '.' + SUBSTRING(d.SecondName, 1, 1) + '.') as OutDriverName, sh.OutUser, u.USERNAME as OUTUSERNAME,
sh.OutRun, CAST(sh.InTime as DATETIME) InTime, sh.InDriverID,(d1.FirstName + ' ' + SUBSTRING(d1.LastName, 1,1) + '.' + SUBSTRING(d1.SecondName, 1, 1) + '.') as InDriverName,
sh.InRun, sh.InUser, u1.USERNAME as INUSERNAME, sh.ShiftCash, sh.CashUser, u2.USERNAME as CASHUSERNAME, sh.ShiftOnBoard
FROM dbo.Shifts sh left outer join dbo.Cars c on (c.CarID = sh.CarID)
left outer join dbo.Drivers d on (d.DriverID = sh.OutDriverID)
left outer join dbo.Drivers d1 on (d1.DriverID = sh.InDriverID)
left outer join dbo.USERS u on (u.USERID = sh.OutUser)
left outer join dbo.USERS u1 on (u1.USERID = sh.InUser)
left outer join dbo.USERS u2 on (u2.USERID = sh.CashUser
14 ноя 17, 09:45    [20951423]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2360
d7i
Проблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.
Надо в SQL-запросе установить нужный формат
Ога, конечно. А на клиенте конечно же выкусывать дату из строки.
14 ноя 17, 09:56    [20951467]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2360
patrick1968
SET DATEFORMAT dmy;

SELECT sh.ShiftID, CAST(sh.OutTime as DATETIME) OutTime

OutTime - строковое поле в формате dmy? Прикольно. Но проблема, скорей всего, всетаки в системном формате даты на клиенте, как kdv уже писал.
Если проверишь его и ничего не заметишь необычного - смени на другой, и посмотри на результат.
14 ноя 17, 10:02    [20951485]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Почему это строковое поле? CAST(sh.OutTime as DATETIME) OutTime, просто если в запросе написать sh.OutTime, то при открытии ADOQuery будет ошибка, в связи с этим и приходится таким образом извращаться (поле типа datetime еще раз преобразовывать в datetime), хотя в данном запросе set dateformat никак не влияет, он так остался с предыдущего запроса
14 ноя 17, 10:12    [20951535]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
а настройки формата на клиенте самые обыкновенные, вот

Модератор: Вложение удалено.
14 ноя 17, 10:17    [20951568]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57552
patrick1968> если в запросе написать sh.OutTime, то при открытии ADOQuery будет ошибка

Текст ошибки какой ?

Проверь на новом (чистом) проекте -
увидишь, что всё работает правильно.
И скриншоты научись прикладывать
правильно (обрезать лишнее).

Posted via ActualForum NNTP Server 1.5

14 ноя 17, 11:03    [20951754]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
patrick1968
Member

Откуда:
Сообщений: 275
Сейчас уже точный текст ошибки не воспроизведу, но что-то вроде "Неверный тип поля, ожидался widestring а в реалиях datetime"после того как в запросе вместо поля поставил преобразование CAST ошибка исчезла
14 ноя 17, 11:28    [20951874]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57552
Зачем вспоминать, когда можно убрать cast и проверить?

Posted via ActualForum NNTP Server 1.5

14 ноя 17, 11:32    [20951900]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2360
patrick1968
Сейчас уже точный текст ошибки не воспроизведу, но что-то вроде "Неверный тип поля, ожидался widestring а в реалиях datetime"после того как в запросе вместо поля поставил преобразование CAST ошибка исчезла
Это потому, что поле на форме оформлено как TDateTimeField, а в базе оно - строка.
14 ноя 17, 12:52    [20952278]     Ответить | Цитировать Сообщить модератору
 Re: Неверное отображение значения  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 9852
d7i
Проблемы с форматом даты надо решать на уровне SQL-запроса, а не приложения.
Что за чушь? А в приложении вызывать StrToDateTime если опять понадобится дата?
14 ноя 17, 15:54    [20953196]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить