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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.05.2011, 09:20   #1  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Скрытие колонок и FormMenuButtonControl в рантайме
Есть форма с двумя источниками данный (таблица используется одна)
На форме размещен Tab, на закладки которого добавлены сетки с данными из источников.

В рантайме (при старте в методе run) на форму добавляется FormMenuButtonControl, после чего, скрытые колонки второй закладки проявляются (т.е. если в этот запуск кнопки добавляли, то при следующем старте скрытые колонки станут видны).

Если добавлять FormButtonControl, то ничего подобного не происходит.

У страниц Tab источник данных не привязан, хотя это и не влияет.

Последний раз редактировалось uchenik; 13.05.2011 в 09:25.
Старый 13.05.2011, 09:47   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от uchenik Посмотреть сообщение
В рантайме (при старте в методе run) на форму добавляется FormMenuButtonControl, после чего, скрытые колонки второй закладки проявляются
Что значит "скрытые"? В смысле каким способом скрытые? В контекстном меню по колонке команда Скрыть? или в AOT/программно свойство Visible = false?
Старый 13.05.2011, 09:52   #3  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Обычно на формах не добавляются новые контролы в runtime, а, наоборот, скрываются "лишние", и делается это традиционно не в run(), а в init() формы. Фразу "при следующем старте" я вообще не понял. А какая у вас версия Аксапты?
За это сообщение автора поблагодарили: lev (2).
Старый 13.05.2011, 10:03   #4  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
2009RU5

Кнопки добавляются динамически, так надо.

Слетают скрытые поля (через контекстное меню), только при добавлении определенного типа элемента.
Старый 13.05.2011, 10:05   #5  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
функционал на форме выполняется странно...
полностью поддержу gl00mie!
Цитата:
Обычно на формах не добавляются новые контролы в runtime, а, наоборот, скрываются "лишние", и делается это традиционно не в run(), а в init() формы.
поля у Вас отображаются скорее всего так же из кода. значит нужно смотреть какой код у Вас выполняется при добавлении FormMenuButtonControl, видимо он так же должен выполняться при добавлении FormButtonControl.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 13.05.2011, 10:08   #6  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Цитата:
Сообщение от lev Посмотреть сообщение
функционал на форме выполняется странно...
полностью поддержу gl00mie!


поля у Вас отображаются скорее всего так же из кода. значит нужно смотреть какой код у Вас выполняется при добавлении FormMenuButtonControl, видимо он так же должен выполняться при добавлении FormButtonControl.
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  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от uchenik Посмотреть сообщение
2009RU5.Кнопки добавляются динамически, так надо.
Так надо, или вы только так умеете? Откуда взялось убеждение, что "так надо"? Если так рассуждать, то и ответом на ваш, условно говоря, вопрос "почему добавление такого-то контрола влияет на отображение столбцов, а другого - не влияет" тоже может быть "так надо"
Цитата:
Сообщение от uchenik Посмотреть сообщение
этот код не влияет на отображение столбцов:
X++:
formButton = _addTo.addControl(FormControlType::Button, 'RunTimeControl');
formButton.text(actions.Name);
formButton.userDataItem(actions.Id);
formButton.multiSelect(1);
Похоже на изобретение какого-то универсального движка. Так почему, все-такие, не подходит вариант с управлением видимостью кнопок, заранее созданных в дизайне формы?
Старый 13.05.2011, 10:47   #8  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
gl00mie ну правда НАДО.

Вот накидал тестовую формочку, как выяснилось закладки вообще не при чем, важен порядок элементов на форме и наличие MenuButton.

В Init можно убрать добавление MenuButton, будет влиять на результат.
Смена порядка элементов на форме, тоже влияет на результат (для примера надо переместить ButtonGroup на первое место).
Вложения
Тип файла: xpo Form_TESTFORM.xpo (7.8 Кб, 422 просмотров)
Старый 13.05.2011, 11:51   #9  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Коллега подсказал, надо удалять добавленные контролы в close(), перед super().
За это сообщение автора поблагодарили: S.Kuskov (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Копирование колонок Excel decoder DAX: Программирование 12 28.05.2009 10:13
Скрытие поля York DAX: Администрирование 2 26.08.2008 11:19
Grid с фиксацией части колонок при скроллинге. pwp DAX: Программирование 4 21.07.2008 10:37
Вывод в Excel в формате XML и ширина колонок gl00mie DAX: Программирование 1 30.10.2006 10:45
Сохранение настроек GRID (ширина и порядок колонок) liza DAX: Программирование 1 25.07.2003 22:20
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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