11.09.2015, 11:01 | #1 |
Участник
|
Динамическое изменение контролов Group на форме
Есть необходимость, дабы не плодить, а потом прятать/показывать группы на форме, - изменять на одной группе параметр DataGroup.
Так вот - значение программно поменять не проблема, а вот как заставить поменяться перечень полей в группе остается загадкой. Пример замены DataGroup: X++: Group1.dataGroup(tablefieldgroupstr(CustTable, MyGroup)); Group1.autoDataGroup(true); |
|
11.09.2015, 11:10 | #2 |
Молодой, подающий надежды
|
Это надо делать с соответствующим группе FormBuildGroupControl до вызова super() в init() формы. В рантайме такое не получится. А в целом стандартный подход именно "наплодить" кучу нужных групп и управлять их свойством visible() по разным условиям. Т.к. ваш подход менее очевиден для других разработчиков, а если позже потребуется указать какие-то специфические свойства контрола (например Label) или перекрыть метод (например lookup, jumpRef) внутри группы, то начнутся новые танцы с метапрограммированием.
X++: FormBuildGroupControl fbGroupControl; fbGroupControl = element.design().control('Group1'); fbGroupControl.dataGroup(tablefieldgroupstr(CustTable, MyGroup)); fbGroupControl.autoDataGroup(true);
__________________
Кононов Пётр Последний раз редактировалось pedrozzz; 11.09.2015 в 11:27. |
|
11.09.2015, 11:45 | #3 |
Участник
|
Спасибо за быстрый ответ. Буду плодить группы
|
|
15.09.2015, 08:07 | #4 |
сибиряк
|
как вариант, использовал: все контролы запихнул в одну группу, сделал ее невидимой. создал другую группу и в зависимости от условий с помощью moveControl менял контролам родителя.
__________________
С уважением, Вячеслав. |
|