|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2015, 18:15 | #1 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Не пустая ячейка в DBGrid
Суть:
Имеется связка FireBird + Лазарус. Схема такая IBConnection --> SQLTransaction --> SQLQuery --> DataSource --> DBGrid. Все это работает - строки показываются, добавляются и т.д. Хочется такой возможности как прямое редактирование полей в DBGrid. Но есть такая беда - в определенной колонке должны обязательно пробиваться данные, если юзер оставил пустое поле, то его следует восстановить первоначальным значением. Добавление записи происходит по отдельному батону и там естественно я не дам юзеру пустые поля.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
27.01.2015, 18:34 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Сразу пердуперждЫю что такого не делал никогда но:
1) Попробовать поюзать OnEditingDone для определения что редактирование окончено, и сравнить с первоначальным значением 2) Поюзать OnBeforeEdit OnAfterEdit. Это что бы попробовал прежде всего я.
I'm learning to live...
|
27.01.2015, 19:38 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
OnBeforeEdit - запомнить начальные значения полей
OnBeforePost - контроль на пустоту и забивание при необходимости умолчаниями при вставке или начальными при корректировке Еще у каждого поля есть OnSetText - контроль ввода в визуальном компоненте Ну и пустое поле двоякий смысл - NULL и например '' для символьного - это разное
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.01.2015 в 19:40. |
27.01.2015, 20:12 | #4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
BeforeEdit в SQLQuery? В моем DBGride нет OnBeforeEdit, или это свойство можно настраивать только программно? У меня Лазарус и я подозреваю, что тут наверно проявляются эти самые отличия.
Есть еще сильно подозрительные OnColEnter и OnColExit может это и есть аналоги?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 27.01.2015 в 20:15. |
27.01.2015, 20:33 | #5 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
PS Есть они в паблике SQLQuery - BeforePost, BeforeEdit только нужно в рунтайме присваивать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.01.2015 в 20:41. |
||
27.01.2015, 20:38 | #6 | ||
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Цитата:
Цитата:
В принципе можно поставить на отлов исключения. Но опять вопрос - как узнать какую ячейку будет править юзер?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 27.01.2015 в 20:46. |
||
27.01.2015, 20:45 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Вот прочитал - TSQLQuery is a unidirectional dataset - однонапрвленный датасет, я так понимаю непосредственное редактирование в гриде не прокатит. Наверно и в лазарусе. Только SQL-командами. Нужно менять датасет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.01.2015 в 20:47. |
27.01.2015, 20:53 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Э-э-э... Може DBGrid фтопку?
I'm learning to live...
|
27.01.2015, 21:06 | #9 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Не, нашел выход! Я повесил невидимый DbEdit и натравил его на нужную мне колонку. Экспериментально доказано, что его значение в точности совпадает нужным полем . Теперь нужно отслеживать результат изменения в DBEdit. Решение рядом, осталось только чуть-чуть...
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
27.01.2015, 21:09 | #10 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Я бы использовал IBDataSet и прописывал запросы на обновление в InsertSQL и ModifySQL
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.01.2015 в 21:19. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пустая ячейка не воспринимается как пустая | SvetlanaF | Microsoft Office Excel | 3 | 24.02.2014 05:34 |
DBGrid конкретная ячейка | Niklan | БД в Delphi | 6 | 24.01.2013 07:31 |
следующая не пустая ячейка, при условии | Skitt | Microsoft Office Excel | 1 | 04.05.2012 23:38 |
Цвет ячейка и DBGrid | M@riy@ | Компоненты Delphi | 3 | 14.11.2010 20:35 |
подскажите плз. пустая ячейка как интерпретируется? | zander | Microsoft Office Excel | 2 | 02.08.2009 22:18 |