![]() |
#6 |
Участник
|
Сложно)
На базовом классе DimensionControllerObject есть несколько делегатов, вызовы которых используются при создании контролов аналитик делегат DimensionLinkShowField отвечает за пропуск создания контрола (parmCancel() класса-события DimensionLinkCancelEventArgs должен вернуть True) делегат DimensionLinkAllowFieldEdit - за возможность блокирования изменения контрола (DimensionLinkCancelEventArgs.parmCancel() == true) делегат DimensionLinkMarkFieldOptional - за обязательность (DimensionLinkCancelEventArgs.parmCancel() == true) Для подписки на событие, необходимо реализовать паблик-метод, соответствующий подписываемому делегату, в классе-обработчике формы (на самой форме нельзя - подписка не будет выполнена) Определение аналитики выполняется по идентификатору аналитики (DimensionAttributeRecId) X++: // Метод в классе-обработчике public void showDimensionControl(DimensionLinkCancelEventArgs _e) { ; if (_e) _e.parmCancel(_e.parmDimensionAttributeId() != ViewDimensionAttributeRecId); } //Подпись на событие DimensionLinkShowField ... dimensionDefaultingController = DimensionDefaultingController::constructInGroupWithValues( ... //подписка на событие //myHadlerClass.showDimensionControl - это Instance-метод класса dimensionDefaultingController.DimensionLinkShowField += eventhandler(myHadlerClass.showDimensionControl); //если потребуется использовать статический метод dimensionDefaultingController.DimensionLinkShowField += eventhandler(MyHadlerClass::staticShowDimensionControl); ...
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Oz (2), Logger (3). |