Коллеги, вот такой вопрос.
Есть форма, хочу перебрать контролы и, скажем, поменять метку.
Перебор реализован, например таким рекурсивным методом, который первый раз вызывается без параметров в .init() формы перед super().
X++:
public void setControls(FormBuildControl _control = null)
{
int ctrlCount;
int ctrlIdx;
FormBuildControl fbc;
if (_control)
{
ctrlCount = _control.controlCount();
for (ctrlIdx = 1; ctrlIdx <= ctrlcount; ctrlidx++)
{
fbc = _control.controlNum(ctrlIdx);
element.setlabel(fbc);
if (fbc.iscontainer() && fbc.controlcount())
{
element.setcontrols(fbc);
}
}
}
else
{
ctrlcount = element.form().design().controlCount();
for (ctrlIdx = 1; ctrlIdx <= ctrlcount; ctrlidx++)
{
fbc = element.form().design().controlNum(ctrlIdx);
element.setlabel(fbc);
if (fbc.iscontainer() && fbc.controlcount())
{
element.setcontrols(fbc);
}
}
}
}
Метод .setLabel() меняет метку у поля на то, что мне нужно.
Для стандартных контролов все работает ОК. Но если я добавлю на форме поле через персонализацию - то для него не срабатывает.
Как можно в рантайме к этим полям обратиться?
Ну, скажем, в персонализацию я, наверно, могу через параметры пользователя залезть, а как из неё получить конкретный контрол на форме как объект?