|
27.06.2008, 11:01 | #1 |
Постигающий
|
Очистить все контролы
Добрый день..
есть у меня сложная форма с множеством групп, подгрупп и полями в них. нужно сделать кнопку по нажатию на которую все поля будут очищаться. не понятно , как мне добраться до каждого из полей дизайна? пробовал вот так : X++: Object currentContainer; Object ctrl; int numc; int f; int i, j; FormControl fc; FormStringControl sc; ; i = fieldTab.controlCount();// fieldTab - вкладка с группами, в которых все нужные поля for (j=1; j<=i; j++) { fc = fieldTab.controlNum(j); if (SysdictClass::isEqualOrSuperClass(classidget(fc),classNum(FormGroupControl))) { currentContainer = form.design().control(fc.id()); numc = currentContainer.controlCount(); for (f = 1; f <= numc; f++) { ctrl = currentContainer.controlNum(f); if (SysdictClass::isEqualOrSuperClass(classidget(ctrl),classNum(FormBuildStringControl))) { sc = ctrl; sc.text(""); } } } } Последний раз редактировалось Андрей К.; 27.06.2008 в 11:06. |
|
27.06.2008, 11:04 | #2 |
Moderator
|
Поля связаны с источником данных?
__________________
Андрей. |
|
27.06.2008, 11:28 | #3 |
Участник
|
Цитата:
X++: for (i = 1; i <= formRun.design().controlCount(); i++)
{
formControl = formRun.design().controlNum(i);
...
}
__________________
Функциональное тестирование сайтов |
|
27.06.2008, 11:48 | #4 |
Участник
|
А вы код-то этот дебажили?
X++: if (SysdictClass::isEqualOrSuperClass(classidget(ctrl),classNum(FormBuildStringControl))) { sc = ctrl; sc.text(""); } |
|
27.06.2008, 13:18 | #5 |
Постигающий
|
нет, без источника
Цитата:
в таком случае вообще операторы под if не выполняются Последний раз редактировалось Андрей К.; 27.06.2008 в 13:24. |
|
27.06.2008, 13:40 | #6 |
MCTS
|
А попробуйте рекуррентный перебор
X++: static void Job60(Args _args) { Args args = new Args(formStr(EmplTable)); FormRun formRun = ClassFactory.formRunClass(args); FormControl formControl; FormBuildControl buildCtrl; int i, cnt; boolean hasClassMethod(FormBuildControl _Ctrl, str _methodName) { ClassId classId = classIdGet(_Ctrl); sysDictClass sysDictClass= new sysDictClass(classId); ; return sysDictClass.hasObjectMethod(_methodName); } void nextControl(FormBuildControl Ctrl) { int _i; FormBuildControl _buildCtrl; FormControl _formControl; ; if(hasClassMethod(Ctrl, 'controlCount')) { for(_i=1; _i<=Ctrl.controlCount(); _i++) { _buildCtrl = Ctrl.controlNum(_i); _formControl = formRun.control(_buildCtrl.id()); if(hasClassMethod(_formControl, 'controlCount')) { info(_formControl.name()); nextControl(_formControl); } } } } ; formRun.run(); cnt = formRun.form().design().controlCount(); for(i=1; i<=cnt; i++) { buildCtrl = formRun.form().design().controlNum(i); formControl = formRun.control(buildCtrl.id()); if(hasClassMethod(formControl, 'controlCount')) { // if(hasClassMethod(formControl, 'controlCount')) // { info(formControl.name()); nextControl(formControl); // } } } formRun.wait(); }
__________________
В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню Последний раз редактировалось Russland; 27.06.2008 в 13:47. |
|
27.06.2008, 13:41 | #7 |
Moderator
|
Подброшу свою старую темку, там последнее сообщение должно помочь. И уйдите от Object, типизируйте все переменные.
__________________
Андрей. |
|
27.06.2008, 16:17 | #8 |
Постигающий
|
Спасибо, буду изучать...о результатах ссобщу )
|
|