![]() |
#1 |
MCTS
|
Почему метод "control::control_name" возвращает null?
Здравствуйте.
Почему, если элемент управления формы находится в группе с выставленным свойством AutoDataGroup = True и создан через display метод таблицы, то обращение к этому элементу управления с помощью element.control(control::control_name) возвращает null? Можно ли это как-то исправить? |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
![]() |
#2 |
Участник
|
Хм... интересно. А element.design().controlName() работает?
P.S.: Это не метод, это перечисление (enum) |
|
![]() |
#3 |
Участник
|
Сразу навскидку - в какой момент делаете обращение? Если в методе init() формы до вызова super(), так какбы все закономерно по идее.
|
|
![]() |
#4 |
Участник
|
По-моему, дело в том, что элементы группы, у которой AutoDataGroup = True, создаются во время выполнения (иначе при добавлении новых полей в группу на таблице новые поля не добавлялись бы на форму автоматически).
А если поля на форме создаются во время выполнения, то нет никакой гарантии, что их имена совпадают с именами, отображаемыми в репозитарии. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
![]() |
#5 |
Участник
|
Может имеет смысл тогда поэкспериментировать - на время отрубить AutoDataGroup, и посмотреть как будет отрабатывать?
|
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Резонно - control_name можно и поменять потом. При использовании AutoDeclaration не пройдет компиляция, и ошибочный код не будет упущен. А вот при использовании control::control_name не помню, выдается ли error если компилим после переименования...
|
|
![]() |
#8 |
Участник
|
в AX2012 этот control:: убрали вообще
|
|
|
За это сообщение автора поблагодарили: Eldar9x (0), S.Kuskov (0). |
![]() |
#9 |
MCTS
|
Спасибо всем! Значит, не буду больше пользоваться этим методом.
|
|