|
![]() |
#1 |
Участник
|
Цитата:
Вызывается валидейт прямо из таблицы при наложении фильтра. Век живи - век учись. Вопрос, как это ПРАВИЛЬНО обходится, к примеру, в форме 53 (список заказов покупок) Там ставь любые ключи и любую фигню - не вылетает. А вот уже в строках заказа покупки (форма 54) - опять "вылетает" как и в нашем случае с 5407. В некоторых местах у Nav шаманят с кодом на триггере OnFindRecord и пишут что-то типа: IF FIND (Which) THEN EXIT(TRUE) ELSE BEGIN SETRANGE("No."); EXIT(FIND(Which)); END; Тогда тоже форма не вылетает при наложении неправильных фильтров. Но общий "рецепт" - что-то написать в триггере OnValidate ключевого поля таблицы. Вопрос, что именно? ![]() ЗЫ: А. Нет. Нифига! Удалил из таблицы 38 весь код с триггера OnValidate, а оно всё равно работает и не вылетает, хотя на форме 53 нет вообще никакого кода на триггерах, или всяких там св-в типа DelayedInsert. Значит, дело в чём-то другом. Разбираюсь... |
|
![]() |
#2 |
Участник
|
Форма 53 не редактируемая, там никаких валидейтов в принципе быть не может. Для редактируемых форм, как отметил Sancho помогает DelayedInsert.
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Цитата:
Хочу добавить по поводу фильтра по не ключевым полям. Поведение формы будет зависить от значения свойства PopulateAllFields. Если оно равно yes, то ошибка будет вываливаться и для не ключевых полей. |
|