![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка значений полей [D5, Paradox]
MishaS © (2003-07-04 13:01:00)Добрый день, у меня имеется таблица Paradox, все поля которой должны быть заполнены. Модификация данных производится в TDBGrid.
Проблема состоит в следующем, как мне отследить что пользователь заполнил все поля записи в TDBGrid, и если нет, то
не давать ему подтвердить изменения(при редактировании). А в случае вставки новой записи не дать перейти к другой, пока он не заполнит все поля.
Я использовал следующие обработчики событий:
procedure TFormSyst.Table1BeforeScroll(DataSet: TDataSet);
begin
//If Table1Name_Syst.IsNull then Abort;
If Trim(Table1.FieldByName ("Name_Syst").AsString)="" then Abort;
procedure TFormSyst.Table1BeforeInsert(DataSet: TDataSet);
begin
If Trim(Table1.FieldByName("Name").AsString)="" then Abort;
end;
Но это не помогло
MsGuns (2003-07-07 11:43:00) [1]ИМХО, нехорошо (хоть и просто - на первый взгляд) давать редактить узеру весь НД (а через грид это чаще всего и делается).
Тем более в парадоксе, имеющем обыкновение падать по n раз на дню.
Все коррекции должны делаться через не связанные с БД контролы. Выполнение-отмена по кнопкам. Там же и контроли корректности, заполненности и т.п. В этим случае проще, кстати, перейти от TTable (любительский уровень) к TQuery.
Zacho (2003-07-07 11:11:00) [2]Есть событие TField.OnValidate
Или см. Johnmen © (04.07.03 13:04)
VAleksey (2003-07-07 11:05:00) [3]У TTable есть замечательные события
OnPostError
OnUpdateError
их и обрабатывай.
А для полей поставь галочку Requered = true.
DenK_vrtz (2003-07-07 11:05:00) [4]Не давай вводить другие значения, пусть выбирают только из списка!
MishaS (2003-07-07 10:41:00) [5]Нужно, чтобы перед тем, как курсор перейдёт с новой, но ещё не записанной в таблицу БД записью (т.е. поля в гриде заполнены, но не нажата клавиша Enter или не было попытки перехода к другой записи) на другую (произойдёт попытка потдтвердить изменения) мне надо проверить значения полей ещё не подтверждённой записи и если они не соответствуют допустимым (проверяется в программе), то не подтвердить создание записи, но не стирать при этом значения тех полей в DBGrid какие мы уже ввели.
DenK_vrtz (2003-07-04 13:36:00) [6]Application.OnException
MishaS (2003-07-04 13:31:00) [7]DenK_vrtz, а в каком обработчике его писать
DenK_vrtz (2003-07-04 13:17:00) [8]Required = true, а чтобы сообщение было по-русски дописать обработчик ошибок
Johnmen (2003-07-04 13:04:00) [9]BeforePost