2014-10-21 5 views
1

Я пробовал следующее: AX2009 Loop through all the controls in the form on init и смог открыть все формы в форме при открытии.Редактировать FormBuildControl при открытии формы AX

Но по какой-то причине, когда я пытаюсь отредактировать элемент управления формой, он не работает. У меня есть оператор с таким типом:

switch (control.handle()) 
{ 
    case classnum(FormBuildButtonControl): 
     formBuildButtonControl = control; 

     formBuildButtonControl.enabled(false); 
    break; 
} 

Когда форма открывается, кнопка управления по-прежнему включена. Я попытался вызвать метод цикла от до и после супер в методе run и до и после супер-метода в init, и он не работал ни в одном из них. Хотя это не работает при вызове перед супер в методе init, потому что я должен использовать некоторые свойства из инициализированных элементов управления формой.

ответ

1

Хорошо, я понял это. Вместо того чтобы использовать класс FormBuildButtonControl, следующий может взять на себя идентификатор элемента управления и быть призваны вносит изменения в управление: element.control(control.id()).enable(false);

Edit: зацикливание также может быть вызвано из до или после того, как супер в перспективе или после супер в методе init.

2

Вы должны установить AutoDeclaration элемента управления Yes. Тогда вы можете получить доступ управления своим именем:

controlName.enabled(condition); 

Для управления, связанного с полем таблицы обычно лучше изменить поле источника данных:

datasource.object(fieldNum(table,fieldName)).enabled(condition); 

Поскольку может быть несколько элементов управления в поле.

 Смежные вопросы

  • Нет связанных вопросов^_^