Страница 1 из 1

Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 11:00
kreator
Я затупил. Помогите. C8, ABC. Редактирую запись в форме. Нужно при нажатии кнопки OK проверить некое поле по критерию и если значение не правильное, то поставить курсор на это поле запретив Update или Insert. Типа:

Код: Выделить всё

if FIL:Field1 <> 'Правильное значение'
  select(?FIL:Field1)
  return ???
end
В какой Embed этот код вставить?

Re: Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 12:35
Дед Пахом
Вроде бы в WindowManager.TakeAccepted после Parent call, вернуть Level:Notify.

Re: Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 13:06
Yufil
Всё проще - в обработку Accept для кнопки OK ДО выполнения стандартного обработчика
IF взаписифигня
Select(?Фигня)
Cycle
End

Re: Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 15:29
Дед Пахом
Я ошибся - надо в TakeCompleted перед Parent call вернуть Level:Notify.

Re: Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 15:36
Shur
Ну тогда уж и ещё более канонический вариант.

в событии Accepted для проверяемого поля

Код: Выделить всё

If Window{PROP:AcceptAll} ! проверять только при выходе из формы
   If взаписифигня 
      Window{PROP:AcceptAll} = false ! прекратить выход
      Select(?Фигня) 
      Cycle 
   End
End

Re: Проверка значений поля при редактировании в форме.

Добавлено: 13 Декабрь 2012, 16:55
kreator
Всем спасибо! Первый вариант Деда Пахома - правильный (особое спасибо!!!). Самое интересное, что я так и делал. Почему не шло - не понятно, полдня убил. А вчерашнюю копию не сохранил, где старый вариант, сравнить теперь не с чем.

Re: Проверка значений поля при редактировании в форме.

Добавлено: 14 Декабрь 2012, 5:10
nik190994
Обычно использую стандартный шаблон RULES....