![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение или отмена изменений [D7, Access]
KinnOk © (2006-05-18 09:53:00)Данные редактируются в гриде.
Задача - отследить, были ли изменения, если да - то спросить, нужно их сохранять или нет. Редактируются прям в гриде.
Beforescroll и Afterscroll - в них не видится состояние dsinsert, dsEdit.
В принципе подошел бы Beforepost, но :
procedure TDM.model_condBeforePost(DataSet: TDataSet);
begin
if mnForm.DBGridEh1.DataSource.DataSet.State in [dsinsert,dsEdit] then
begin
if MessageDlg('Данные изменились,
сохранить?',mtWarning,[mbYes,mbNo],0) = mrNo
then DM.model_cond.Cancel;
end;
в редактируемой записи по кнопке No ничего не изменяется, но в конец набора данных добавляется запись со значением редактируемого поля до редактирования.
KinnOk (2006-05-18 10:32:00) [21]
> Зачем это надо?
> Грид сам все делает...
>
Затем, что грид не предупреждает , что данные изменились. И нужны ли эти изменения. Т.е. типа зщиты от случайного нажатия.
В принципе то и так оно сойдет конечно, но все же.
> Если так все серьезно, то может это тот случай, когда надо
> не в гриде делать, а на отдельной форме?
В том то и дело, что не так и серьезно все, обычный справочник практически.
Можно и без предупреждения все как есть оставить. Но ведь есть понятие - юзабилити.
Зачем без нужды усложнять сушности?
Полей - около 30, довольно загруженная форма для редактирования получается...
V-A-V (2006-05-18 10:04:00) [22]> Sergey13
поддерживаю, это наиболее правильный вариант...
Sergey13 (2006-05-18 10:01:00) [23]2 KinnOk (18.05.06 09:53)
> Редактируются прям в гриде.
Если так все серьезно, то может это тот случай, когда надо не в гриде делать, а на отдельной форме?
V-A-V (2006-05-18 10:00:00) [24]Зачем это надо?
Грид сам все делает...