![]() |
#9 |
Боец
|
1. Если это нужно сделать для конкретной формы, то лучше этот функционал написать на форме (а ещё лучше в классе и вызывать из формы). Если это нужно для таблицы, которая светится на нескольких формах, то лучше этот функционал написать на таблице, но при этом проверять, что вызов произошел из нужной формы, т.к. изменение полей таблицы может происходить не только по явной инициативе пользователя.
2. В примере данном примере вызов происходит на датасорсе формы Address, метод validateWrite(): X++: public boolean validateWrite() { boolean ret; Tutorial_RunbaseForm tutorial_RunbaseForm; ; ret = super(); if (ret && Address.RecId) { if (Address.Name != Address.orig().Name) { tutorial_RunbaseForm = Tutorial_RunbaseForm::construct(); if (tutorial_RunbaseForm.prompt()) { tutorial_RunbaseForm.run(); } else { Address.reread(); ret = checkfailed("ПОля не сохранены"); } } } return ret; } В качестве диалога\формы для указания причины изменения подставил диалог tutorial_RunbaseForm. У вас должен быть свой. 3. Это первый пример, который пришел в голову, соотв-нно на красивость и полную корректность не претендует. |
|