Цитата:
Сообщение от
AlexB
Триггер OnInputChange() срабатывает ВО ВРЕМЯ ввода данных,
т.е. вы вводите стринг из трёх букв "абв" == > этот триггер срабатывает 3 раза, т.е. ВО ВРЕМЯ ввода каждой буквы
То, что Вам нужно, это триггер OnAfterInput(), он срабатывает ПОСЛЕ OnInputChange() и ещё ДО OnValidate()
например в поле "Description":
Код:
Description - OnAfterInput(VAR Text : Text[1024];)
IF Text <> '' THEN BEGIN
// ваш программный код
......
......
END;
Причём надо работать в этом триггере с VAR-variable Text!
Чтобы узнать, в каком порядке отрабытавают триггеры, пропишите просто CONFIRM-Диалог в каждом триггере (в форме и в таблице), в C/AL HELP'e тоже кое-что нaписано.
Возможно я не уловил сути триггера OnInputChange, т.к. я пытался в нём делать проверку, есть ли текст в поле TextBox'a, а он там видимо появляется только после валидейта, я правильно понял? А в OnAfterInput в переменной Text как раз таки и идёт поток именно вводимой информации. Т.е. если я введу стринг 'абв', то этот триггер тоже сработает 3 раза, а переменная Text будет меняться следующим образом, сначала Text='а', потом Text='аб' и в конце Text='абв', я всё правильно понял?
Спасибо большое! Когда переходишь с других платформ, тяжелее всего не к синтаксису привыкнуть, не к языку, тяжелее всего проникнуться другой логикой и начать думать в рамках этой новой логики. Ведь по сути элементарный вопрос, мог бы и сам догадаться, но я даже Ваше объяснение не сразу понял... Ещё раз спасибо большое!