Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Обязательное поле....   Найти похожие ветки 

 
Express   (2005-12-18 18:33) [0]

Помогите, у меня в таблице есть обязательные поля, как мне обработать ошибку, если пользователь не заполнил это поле??????


 
mfender ©   (2005-12-18 18:50) [1]

Если пользователь не заполнил поле, то его нужно заполнить, иначе теряется смысл. Проверять всё это надо, поставив обратчик на onBeforePost.


 
Виталий Панасенко   (2005-12-19 09:20) [2]


> mfender ©   (18.12.05 18:50) [1]
> Если пользователь не заполнил поле, то его нужно заполнить,
>  иначе теряется смысл. Проверять всё это надо, поставив
> обратчик на onBeforePost.

Если мне память не изменяет, то это событие срабатывает ПОСЛЕ проверки на обязательность заполения.. Т.е. ошибка все равно (сообщение) будет...
OnPostError:
Occurs when an application attempts to modify or insert a record and an exception is raised.

Delphi syntax:

property OnPostError: TDataSetErrorEvent;

C++ syntax:

__property TDataSetErrorEvent OnPostError = {read=FOnPostError, write=FOnPostError};

Description

Write an OnPostError event handler to handle exceptions that occur when an attempt to post a record fails.


 
Desdechado ©   (2005-12-19 10:44) [3]

Виталий Панасенко
не проснулся? :)
ОnBeforePost и OnPostError - разные вещи
проверять надо в ОnBeforePost, как правильно выше было сказано


 
evvcom ©   (2005-12-19 10:47) [4]

Field.Required еще есть


 
Виталий Панасенко   (2005-12-19 11:05) [5]


> Desdechado ©   (19.12.05 10:44) [3]
> Виталий Панасенко
> не проснулся? :)
> ОnBeforePost и OnPostError - разные вещи
> проверять надо в ОnBeforePost, как правильно выше было сказано

Но в Д5 это не так... :-))))
procedure TDataSet.Post;
begin
 UpdateRecord;
 case State of
   dsEdit, dsInsert:
     begin
       DataEvent(deCheckBrowseMode, 0);
       CheckRequiredFields;
       DoBeforePost;
       CheckOperation(InternalPost, FOnPostError);
       FreeFieldBuffers;
       SetState(dsBrowse);
       Resync([]);
       DoAfterPost;
     end;
 end;
end;


 
Express   (2005-12-20 13:15) [6]

Народ свем спасибо за советы!!!, но они все равно не помогли справиться с этой проблемой!!!! Получается так, что OnPostError не успевает обрабатывать эту ошибку(хотя мне кажется что именно он должен это делать), а ОnBeforePost как раз вызывается перед тем как происходит эта ошибка....

У меня есть одно имея, но она мне тоже не нравиться: Если получать список всех поле в обработчике ОnBeforePost, проверять на обязательное заполнение и если что то не то выводить сообщение и все такое....

Как вам эта мысль???? мне по прежнему нужны ваши советы!!!!!!!


 
Johnmen ©   (2005-12-20 13:20) [7]

Да-да, перед постом делать нужные тебе проверки. И принимать решение - постить или сообщать и давать исправиться...


 
evvcom ©   (2005-12-20 14:07) [8]


> Express   (20.12.05 13:15) [6]

А [4] попал в full ignore? А как тебе идея в AfterOpen сделать
MyDataSet.FieldByName("MyField").Required := True;?


 
Виталий Панасенко   (2005-12-20 14:14) [9]

Есть еще один вариант - использовать OnValidate-событие интересующих полей... Может, опять не проснулся...


 
evvcom ©   (2005-12-20 14:28) [10]


> Есть еще один вариант - использовать OnValidate-событие
> интересующих полей

Это для более сложных случаев. Здесь вообще фсё просто.



Страницы: 1 вся ветка

Текущий архив: 2006.02.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1138917575
WestBronx
2006-02-03 00:59
2006.02.19
Деление.


5-1125262102
jack128
2005-08-29 00:48
2006.02.19
Опубликованные события у TPesistent


15-1138545375
smus
2006-01-29 17:36
2006.02.19
Назначение процедуры действию динамически созданного компонента


2-1138677721
Близнец
2006-01-31 06:22
2006.02.19
Большая степень числа


1-1137581196
Igor_thief
2006-01-18 13:46
2006.02.19
Timage - Stretch





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский