AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.08.2021, 14:27   #9  
danov.86 is offline
danov.86
Участник
 
25 / 13 (1) ++
Регистрация: 16.08.2012
Вот мой пример перебора контролов формы может кому ни будь будет полезно
FormControl getToDateControl(str _controlName) // поиск контрола на форме по имени
{
int i,y,fCnt;
FormControl control, groupCtrl ;
FormBuildControl controlBuild,buildCtrl;
Object groupBuildObject,groupCtrlObject;
FormControl ctrl;
FormControl getcontrol;
str name;


FormControl getGroupControl(FormBuildControl _buildControl)
{
FormBuildControl controlBuildloc, buildCtrlloc;
FormControl controlloc, groupCtrlloc ;
Object groupBuildObjectloc,groupCtrlObjectloc;


groupCtrlloc = element.design().control(_buildControl.id());
groupBuildObjectloc = _buildControl;
controlBuildloc = this.form().design().control(groupCtrlloc.id());
fCnt = groupBuildObjectloc.controlCount(); // проверяем сколько вложенностей в полученном контроле
for(y=1; fCnt>=y;y++) // перебервем все вложенности контрола
{
buildCtrlloc = controlBuildloc.controlNum(y);
if (buildCtrlloc)
ctrl = element.design().control(buildCtrlloc.id()); // получаем вложенный контрол
controlBuildloc = this.form().design().control(ctrl.id());
if(controlBuildloc && controlBuildloc.isContainer()) // смотрим есть ли во вложенном контроле вложенности
{
ctrl = getGroupControl(controlBuildloc); // отправляем на рекурсию
if(ctrl != null)
return ctrl;
}
else
{
if(ctrl.name() == _controlName ) // если вложенностей нет проверяем имя контрола с искомым контролом
return ctrl;
else
return null;
}
}

}
;
for(i=1; element.design().controlCount()>=i;i++) //перебераем верхний уровень контролов
{
control = element.design().controlNum(i);
controlBuild = this.form().design().control(control.id());

if(controlBuild && controlBuild.isContainer()) // проверяем есть ли в контроле вложенности
{
control = getGroupControl(controlBuild); // отправляем полученный верхний контрол в метод обработки
if(control != null )
return control;
}
else
{
if(control.name() == _controlName ) // если вложенностей нет проверяем имя контрола с искомым контролом
return control;
}
}
return control;
}

Последний раз редактировалось danov.86; 19.08.2021 в 14:38.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как мне обновить Grid расположенный на другой форме? Yuri Safronov DAX: Программирование 17 22.01.2013 14:18
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Как не выводить заголовки в форме, если нет строк? DreamCreator DAX: Программирование 9 29.05.2008 15:10
Добавление источника к запросу на форме Lucky13 DAX: Программирование 1 21.05.2007 17:12
Отличия в строках ReqPO, почему одна строка появляется в форме а другая нет (Master Planning, Planned Orders) rkorchagin DAX: Программирование 8 21.02.2007 16:27

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:15.