Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение изменений в DBGrid/DBGridEh, при изменении фокуса ячейки 
:(
    Опции темы
dalien
Дата 30.7.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 17.6.2009

Репутация: нет
Всего: нет



Добрый день всем. Помогите мне разобраться с DBGrid/DBGridEh.
редактирование ячеек грида
НА форме лежат 2 DBGrid,в первом отображается инфа по сопроводительным письмам(DBGrid заполняется через ADOQuery). Если мы нажимаем кнопкой мыши на любую строку во втором DBGrid'е отображается информация о документах,которые прикреплены к сопроводительному письму. На картинке выбрана запись с номером письма 185/09205, а к этому письму прилагается договор и спецификация.Соответственно, изменяя набор данных 1 грида, изменяются записи во 2 гриде.

при двойном клике мыши на записи,я перевожу ее в режим редактирования
Код

procedure TForm8.DBGridEh2DblClick(Sender: TObject);
begin
     DBGridEh2.Options:=dbgrideh2.Options-[dgRowSelect];
     DBGridEh2.Options:=dbgrideh2.Options+[dgEditing];
end;

есть процедура UpdateDocCover которая записывает изменения DBGrid'а
Код

procedure TForm8.UpdateDocCover();
var q:String;
begin
        DM.UpdateDocCover.Active:=false;
        DM.UpdateDocCover.Close;
        DM.UpdateDocCover.SQL.Clear;
        q:='update doc_cover set doc_cover.doc_cov=:name where doc_cover.id_doc_cover=:par1';
        DM.UpdateDocCover.SQL.text:=q;     DM.UpdateDocCover.Parameters.ParamByName('par1').Value:=DBGridEh2.Columns[0].Field.asString;
        DM.UpdateDocCover.Parameters.ParamByName('name').Value:=DBGridEh2.Columns[1].Field.asString;
        DM.UpdateDocCover.ExecSQL;
        DM.UpdateDocCover.Active:=false;
        DM.UpdateDocCover.Close;

        DM.DSDocCover.DataSet.Active:=false;
        DM.DSDocCover.DataSet.Close;//:=true;
        DM.DSDocCover.DataSet.Open;//:=true;
        DM.DSDocCover.DataSet.Active:=true;
        showmessage('данные изменены и сохранены');
end;


Теперь самое главное, как организовать эти изменения после того,как пользователь внес изменения в поле(ячейку) и нажал на клавишу Enter или перешел на другую запись и при этом выскакивало сообщение о том,что данные будут изменены.
Если я перехожу на другую запись, то измененные данные сохраняются,но надо вывести сообщение,что данные будут изменены.
Как лучше это сделать, обработку каких событий выполнять.
С уважением,dalien.


PM MAIL   Вверх
former
Дата 30.7.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Написать процедуру или функцию (что будет удобнее) обработчика (вывод сообщения и отмена/подтверждение изменений). В событиях грида OnEnter и OnSelectionChanged вызывать этот обработчик. Возможно, что и в некоторых других событиях тоже.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0383 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.