powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильнее проверить введенные пользователем данные?
3 сообщений из 3, страница 1 из 1
Как правильнее проверить введенные пользователем данные?
    #34192032
GreenStar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Имеется форма для ввода данных. Все текстбоксы привязаны к таблице БД. Таблица буфферизовано. Так, вопрос: как правильнее проверить введенные пользователем данные (на пустые/допустимые значения и т.д.)? Хотел проверить в RULE таблицы (не поля) или в триггере. Но при возврате значения .F. (если например, не введено значение) генерируется ошибка триггера/правила, хотя по замыслу это просто должна предотвратить неправильный ввод и возврат для повторного ввода.
Можно конечно проверить в коде формы, но хотелось бы знать, как поступают другие? Ведь триггер и rule предназначены для проверки данных?

СПАСИБО ЗА ВСЕ ОТВЕТЫ!!!
...
Рейтинг: 0 / 0
Как правильнее проверить введенные пользователем данные?
    #34192142
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStar.....Таблица буфферизовано. Так, вопрос: как правильнее проверить введенные пользователем данные (на пустые/допустимые значения и т.д.)? Хотел проверить в RULE таблицы (не поля) или в триггере. Но при возврате значения .F. (если например, не введено значение) генерируется ошибка триггера/правила, хотя по замыслу это просто должна предотвратить неправильный ввод и возврат для повторного ввода.



Подход правильный.
Что надо подправить:
1. Определить "человеческое" сообщение об ошибке
2 Написать свой обработчик ошибок, что бы не выскакивали Фоксовские сообщения

Тогда можно будет контролировать ввод и реакцию программы.
Например.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE CURSOR test (f1 i, f2 i CHECK f1 > f2 ERROR 'User error f1 > f2')

ON ERROR MyError()
INSERT INTO test VALUES ( 1 ,  2 )
ON ERROR

FUNCTION MyError 
AERROR(Arr)
CLEAR 
ACTIVATE screen 
FOR i =  1  TO ALEN(Arr)
? Arr(i)
ENDFOR 
ENDFUNC 
...
Рейтинг: 0 / 0
Как правильнее проверить введенные пользователем данные?
    #34192206
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GreenStarДобрый день
Имеется форма для ввода данных. Все текстбоксы привязаны к таблице БД. Таблица буфферизовано. Так, вопрос: как правильнее проверить введенные пользователем данные (на пустые/допустимые значения и т.д.)? Хотел проверить в RULE таблицы (не поля) или в триггере. Но при возврате значения .F. (если например, не введено значение) генерируется ошибка триггера/правила, хотя по замыслу это просто должна предотвратить неправильный ввод и возврат для повторного ввода.
Можно конечно проверить в коде формы, но хотелось бы знать, как поступают другие? Ведь триггер и rule предназначены для проверки данных?

СПАСИБО ЗА ВСЕ ОТВЕТЫ!!!
Триггер выполняется во время сохранения. Например по tableupdate()
в твоем случае надо прописать правила в метод Valid() поля ввода, тогда проверка будет выполняться при попытке покинуть поле ввода. если проверка вернет .f. - курсор с поля не уйдет. Недостаток - пока пользователь правильно не введет он с этого поля не уйдет даже окно без сохранения не закроет.
Можно в метод LostFocus() прописать, сообщение выдашь, на следующее поле уйдешь но содержимое неправильное останется
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как правильнее проверить введенные пользователем данные?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]