powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Valid & TableRevert
6 сообщений из 6, страница 1 из 1
Valid & TableRevert
    #33520492
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установлена буферизация № 5. Делаю APPEND BLANK. Ввод непосредственно в Гриде. На Grid.Column1.Text1.Valid() установлено:

RETURN !EMPTY(This.Value)

Если я оставляю это поле пустым, то естественно появляется сообщение об ошибке. В этот момент я жму кнопку, на которой стоит Tablerevert(.T.). Из Грида исчезает пустая новая запись. Но Фокс все-таки донимает сообщением о том, что поле is EMPTY.

А почему так? Вроде, должно быть по-сталински: "Нет поля – нет проблемы!"
...
Рейтинг: 0 / 0
Valid & TableRevert
    #33526997
Равиль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Поведение фокса правильное. Valid() - функция цепкая, обмануть ее невозможно, она обеспечивает обязательную проверку условия перед потерей фокуса объектом, но использование в таком виде (Return Условие()) причинит Вам массу неудобств - например не сможете даже закрыть форму по [x] (и по пункту меню, и по кнопке тулбара), пока поле остается пустым.

В Вашем случае она привязана к значению текстбокса в гриде (.Value), которая вычисляется вне зависимости от того, есть "под ней" запись в таблице или нет.

То есть в Valid() помещайте реакцию на введенное значение, не запрещая выход из самого поля (не ставьте Return ...). Что-то такое:

** Text1.Valid()
If Empty(This.Value)
** можно вставить сообщение (запрос) пользователю о пустоте и в зависимоти от его реакции либо откатить TableRevert(), либо продолжить редактирование.
Endif

Также посмотрите в сторону события LostFocus()
...
Рейтинг: 0 / 0
Valid & TableRevert
    #33527330
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не такие уж цепкие эти LostFocus и Valid. :)) В том-то и проблема!

При редактировании таблицы прямо в Гриде, хотелось сделать так, чтобы Text1 не оставался пустым.

Если ставил в Grid1.Column1.Text1.Valid() проверку: RETURN !Empty(This.Value), то сообщение об ошибке появлялось, но с записи на запись или с поля на поле в этом в Гриде перейти нельзя. Но мышью можно было нажимать посторонние кнопочки, что НИЗЗЯ.
Та же история, если проверку закинуть в Rule (Field Validation) – при пустом Text1 гуляй по Форме, где хочешь, кроме строк этого Грида.

Если же проверка была на уровне Grid1.Valid():
RETURN !Empty(This.Column1.Text1.Value),
то с пустым Text1 убежать из Грида уже было нельзя. Но зато при пустой таблице (Grid.RecordSource), сам Грид становился роковой западней. Тут все схвачено! Оставалось только Фокс снять.

Можно, конечно, сделать проверку на количество записей в таблице или в Valid() прописывать какой-нибудь балласт в пустое поле, но мне кажется, есть вариант правильнее и проще.

А как нужно?
...
Рейтинг: 0 / 0
Valid & TableRevert
    #33527333
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi men dea!

Ну сказано же как нужно - не блокировать выход и всё - а известить
пользователя о том что не всё тут в порядке, заблокировать кнопку
сохранения, покрасить "нехорошее" поле другим цветом и т.п. - это уж как
фантазии хватит.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Valid & TableRevert
    #33528975
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В том-то и дело, что таких нехороших кнопок у меня миллион. Не хотелось каждый раз ставить им Enabled=.f., а потом восстанавливать доступность.
Выходит, что все равно будет все сложно.
...
Рейтинг: 0 / 0
Valid & TableRevert
    #33539231
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi men dea!

Не представляю форму, на котолрой есть хотя-бы 2 кнопки "Сохранить", не
говоря уже про миллион.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Valid & TableRevert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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