|
|
#1 |
|
Участник
|
AX2009: Как перехватить DS методы у формы Обозреватель таблиц?
Привет.
Среда AX 2009. Есть цель журналировать обновления InventTrans но не через настройку из формы SysDatabaseLogSetup (через нее как раз журналирование InventTrans отключено) а при открытии InventTrans через обозреватель таблиц и если через данную форму будет изменена какая либо запись в таблице InventTrans. Я так понял у данной формы "Обозреватель таблиц" надо перекрыть DS метод update. Но ведь нюанс что данная форма открывает все виды таблиц и там наверное нет привязки DS ? |
|
|
|
|
#2 |
|
Участник
|
Добавлю, что если перекрыть метод в DS Common - write, не срабатывает.
|
|
|
|
|
#3 |
|
Участник
|
Может лучше application.logUpdate
А так в форме перекройте write датасорса. Должно сработать |
|
|
|
|
#4 |
|
Участник
|
Вносить "локальные" модификации в "глобальный" объект - плохая практика. Почему не сделать модификацию напрямую в триггерах InventTrans.update() и InventTrans.insert()?
Есть методы, позволяющие определить, что изменения вызваны из формы. Посмотрите методы на таблицах BOMTable, BOMVersion. Там есть вызов вот таких методов this.isFormDataSource() this.DataSource() Напрямую проводки обычно не редактируются, значит, изменения из формы, скорее всего, это из обозревателя. Но можно уточнить примерно так X++: if (this.isFormDataSource()) { formName = this.dataSource().formRun().name(); // Имя формы обозревателя для dax2012 if (formName == 'SysTableBrowser') { // обновление запущено из формы обозревателя } }
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|