13.05.2011, 09:20 | #1 |
Участник
|
Скрытие колонок и FormMenuButtonControl в рантайме
Есть форма с двумя источниками данный (таблица используется одна)
На форме размещен Tab, на закладки которого добавлены сетки с данными из источников. В рантайме (при старте в методе run) на форму добавляется FormMenuButtonControl, после чего, скрытые колонки второй закладки проявляются (т.е. если в этот запуск кнопки добавляли, то при следующем старте скрытые колонки станут видны). Если добавлять FormButtonControl, то ничего подобного не происходит. У страниц Tab источник данных не привязан, хотя это и не влияет. Последний раз редактировалось uchenik; 13.05.2011 в 09:25. |
|
13.05.2011, 09:47 | #2 |
Участник
|
Что значит "скрытые"? В смысле каким способом скрытые? В контекстном меню по колонке команда Скрыть? или в AOT/программно свойство Visible = false?
|
|
13.05.2011, 09:52 | #3 |
Участник
|
Обычно на формах не добавляются новые контролы в runtime, а, наоборот, скрываются "лишние", и делается это традиционно не в run(), а в init() формы. Фразу "при следующем старте" я вообще не понял. А какая у вас версия Аксапты?
|
|
|
За это сообщение автора поблагодарили: lev (2). |
13.05.2011, 10:03 | #4 |
Участник
|
2009RU5
Кнопки добавляются динамически, так надо. Слетают скрытые поля (через контекстное меню), только при добавлении определенного типа элемента. |
|
13.05.2011, 10:05 | #5 |
Ищущий знания...
|
функционал на форме выполняется странно...
полностью поддержу gl00mie! Цитата:
Обычно на формах не добавляются новые контролы в runtime, а, наоборот, скрываются "лишние", и делается это традиционно не в run(), а в init() формы.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
13.05.2011, 10:08 | #6 |
Участник
|
Цитата:
X++: FormMenuButtonControl formMenuButton; FormButtonControl formButton; X++: formButton = _addTo.addControl(FormControlType::Button, 'RunTimeControl');
formButton.text(actions.Name);
formButton.userDataItem(actions.Id);
formButton.multiSelect(1); X++: formMenuButton = _addTo.addControl(FormControlType::MenuButton, 'RunTimeControl');
formMenuButton.text(actions.Name);
formMenuButton.userDataItem(actions.Id);
formMenuButton.multiSelect(1); |
|
13.05.2011, 10:25 | #7 |
Участник
|
Так надо, или вы только так умеете? Откуда взялось убеждение, что "так надо"? Если так рассуждать, то и ответом на ваш, условно говоря, вопрос "почему добавление такого-то контрола влияет на отображение столбцов, а другого - не влияет" тоже может быть "так надо"
Похоже на изобретение какого-то универсального движка. Так почему, все-такие, не подходит вариант с управлением видимостью кнопок, заранее созданных в дизайне формы? |
|
13.05.2011, 10:47 | #8 |
Участник
|
gl00mie ну правда НАДО.
Вот накидал тестовую формочку, как выяснилось закладки вообще не при чем, важен порядок элементов на форме и наличие MenuButton. В Init можно убрать добавление MenuButton, будет влиять на результат. Смена порядка элементов на форме, тоже влияет на результат (для примера надо переместить ButtonGroup на первое место). |
|
13.05.2011, 11:51 | #9 |
Участник
|
Коллега подсказал, надо удалять добавленные контролы в close(), перед super().
|
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |