![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование времени в DBGrid [D7, MSSQL]
Katya © (2006-10-26 22:02:00)Здравствуйте! Подскажите, как решить следующую проблему: в DBGrid имеется поле для ввода времени в формате 00:00. При этом для соответствующего поля в DataSet-е задана маска ввода. Пытаюсь изменить значение в ячейке, она переходит в состояние редактирования, но при этом обнуляет минуты, а часы остаются без изменений, т.е. если было значение '08:30', то при редактировании отобразится '08:00'. Самое печальное: для исходного значения '00:00' отображается '99:__'. Может это как-то связано с маской ввода? Кто-нибудь знает, как это исправить? Заранее огромное спасибо.
Ketmar (2006-10-29 02:17:00) [21]>[8] Германн(c) 29-Oct-2006, 02:15
>И это совет для "новичков"?
а мы, между прочим, в "базах". %-)
Германн (2006-10-29 02:15:00) [22]
> нарисуйте свою панельку с двумя или тремя эдитами (час,
> мин, сек), которую при попадании фокуса в нужную колонку
> грида рисуйте прямо поверх ячейки, подгоняя геометрию.
И это совет для "новичков"?
Johnmen (2006-10-29 02:02:00) [23]
> MsGuns © (29.10.06 01:37) [6]
> Жэка, иди ты..
> ;))
Не уйду! Не позволю развращать новичков! :)))
MsGuns (2006-10-29 01:37:00) [24]>Johnmen © (29.10.06 00:17) [5]
>Опять за старое. Хоть бы ИМХО добавил........
Жэка, иди ты..
;))
Johnmen (2006-10-29 00:17:00) [25]
> MsGuns © (28.10.06 22:50) [4]
> ....такой интерфейс просто крайне неудобен для пользователя.
Опять за старое. Хоть бы ИМХО добавил........
MsGuns (2006-10-28 22:50:00) [26]Катюша, Вы избрали далеко не самый лучший способ ввода даты, давая править непосредственно в гриде, да еще и с помощью маски - такой интерфейс просто крайне неудобен для пользователя.
Воспользуйтесь имеющимися компонентами или нарисуйте свою панельку с двумя или тремя эдитами (час, мин, сек), которую при попадании фокуса в нужную колонку грида рисуйте прямо поверх ячейки, подгоняя геометрию.
Правильно введенное время просто программно присваивайте полю записи.
Katya (2006-10-28 21:56:00) [27]Поле DateTime, маска '!90:00;1;_' (стандартная маска ShortTime).
Может это и выход - использовать обычные компоненты, но требование пользователя: отсутствие кнопок типа "Записать", "Обновить" и т.п.; к тому же требуется отображение большого кол-ва данных, т.е. без грида не обойтись.
Sergey13 (2006-10-27 09:13:00) [28]> [0] Katya (26.10.06 22:02)
Какого типа поле, какая маска?
> [1] Shirson © (27.10.06 08:46)
> Писать придётся больше, но работает не в пример надёжнее и меньше изматывает пользователя.
И пользователя изматывает (тут конечно много нюансов, но по моему опыту изматывает) и сервер.
Shirson (2006-10-27 08:46:00) [29]Из собственного опыта - никаких редактирований в гриде или прочих компонентах с "прямым" доступом в базу.
Только через обычные компоненты и "фиксировать" средствами update. Писать придётся больше, но работает не в пример надёжнее и меньше изматывает пользователя.