![]() |
#9 |
Участник
|
Вот мой пример перебора контролов формы может кому ни будь будет полезно
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. |
|
|
|