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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.10.2006, 14:28   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Программно добавить пункт меню
Подскажите, как программно добавить пункт меню в подменю одного из главных меню, например Администрирование.

Добавить просто пункт меню можно так
X++:
    Menu            m = New Menu(menustr(Administration));
    MenuFunction    mf = new MenuFunction(menuitemdisplaystr(MyMenuItem), MenuItemType::Display);
    ;

    m.addMenuitem(mf);
    m.AOTcompile();
    m.AOTsave();

Последний раз редактировалось Wamr; 20.10.2006 в 14:30.
Старый 20.10.2006, 15:06   #2  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
вот так
Код:
    Menu          m = New Menu(menustr(Administration));
    MenuFunction  mf = new MenuFunction(menuitemdisplaystr(MyMenuItem), MenuItemType::Display);
    Menu          m2;
    ;

    m2 = m.AOTfindChild("Запросы");
    m2.addMenuitem(mf);

    m.AOTcompile();
    m.AOTsave();

Последний раз редактировалось Косых Артём; 20.10.2006 в 15:10.
Старый 20.10.2006, 15:29   #3  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
А я только что так убил Аxапту - именно меню `Администрация` - делает крэш, если пытаешся открыть или редактировать в АОТ
Старый 20.10.2006, 15:32   #4  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от Delfins Посмотреть сообщение
А я только что так убил Аxапту - именно меню `Администрация` - делает крэш, если пытаешся открыть или редактировать в АОТ
Ужас

А какая версия Аксапты? У меня 3.0 SP3 вроде все нормально.
Старый 20.10.2006, 15:37   #5  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
3.0 SP3

Придется вырывать весь УСР слой кроме того меню...
Странно
Старый 20.10.2006, 15:42   #6  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Вроде, работает. Спасибо.
А как теперь создать свое подменю?
Старый 20.10.2006, 15:45   #7  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от Wamr Посмотреть сообщение
А как теперь создать свое подменю?
метод addSubMenu класса Menu
За это сообщение автора поблагодарили: Wamr (2).
Старый 20.10.2006, 16:00   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Только вот не совсем понимаю - зачем создавать это программно?
Расскажите, если не секрет
Старый 20.10.2006, 16:05   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Артем. я пробовал - не работает

Иван. Как еще можно перенести пункты главного меню на заранее неизвестную конфигурацию Аксапты?
Старый 20.10.2006, 16:36   #10  
Hidden is offline
Hidden
Участник
 
199 / 15 (1) ++
Регистрация: 25.03.2004
Адрес: Moscow
Цитата:
Сообщение от Wamr Посмотреть сообщение
Артем. я пробовал - не работает

Иван. Как еще можно перенести пункты главного меню на заранее неизвестную конфигурацию Аксапты?
А чем стандартный Экспорт - Импорт не подходит?
Старый 20.10.2006, 16:39   #11  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Тем, что главное меню - только одно. Импортируешь - перезапишешь.
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 20.10.2006, 17:03   #12  
Hidden is offline
Hidden
Участник
 
199 / 15 (1) ++
Регистрация: 25.03.2004
Адрес: Moscow
Цитата:
Сообщение от Ned Посмотреть сообщение
Тем, что главное меню - только одно. Импортируешь - перезапишешь.
Так есть же функция сравнения, чтобы сравнить, а в процессе сравнения можно вставить только то, что нужно. У меня правда при нажатие на стрелочку для внесения изменений, открывается (about:blank#Insert-1) - списываю это на SP1.
Старый 20.10.2006, 17:20   #13  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
А так можно инсталляшку для модуля сделать. Получается почти коробка - поставил и вроде работает. На новые сервис-паки удобно переходить. Для кого это - реальность
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 20.10.2006, 19:03   #14  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от Wamr Посмотреть сообщение
Артем. я пробовал - не работает
А сохраняли объект меню "Администрирование", то есть верхнего уровня??? сохранять надо именно его. Сейчас Аксапты под рукой нету, завтра-послезавтра посмотрю (а может кто и раньше поможет).
Старый 23.10.2006, 10:23   #15  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Ned, в Аксапта сервис паки также инсталируются - сначала ставится новые DIS,DIP..etc, потом инсталятор предлагает сделать проект изменений АОТ... вот потом то и надо вручную пройти и все проверить... Если ето отделный модуль, конечно меньше гемороя, но все равно, хоть это и менюшка - надо делать это осторожно.. При импорте, перед нажатием ОК можно также сравнить XРО и любой уровень, вплоть до УСР...

Я даже так иногда импортирую из XРО, не нажимая на ОК... xватает только нажать стрелочьки в броузере
Старый 23.10.2006, 12:07   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
X++:
static void addSubMenu(str _menu, str _subMenu)
{
    Menu sysContextMenu=new Menu(_menu);
    Menu subMenu=new Menu(_subMenu);
    ;
    sysContextMenu.AOTDrop(subMenu);
    sysContextMenu.AOTsave();
    sysContextMenu.AOTrestore();
    sysContextMenu.AOTrefresh();
}
За это сообщение автора поблагодарили: Wamr (2), Косых Артём (1).
Старый 23.10.2006, 12:08   #17  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Это я пытался плагинменеджер для аксапты сделать
X++:
static void removeSubMenu(str _menu, str _subMenu)
{
    Menu sysContextMenu=new Menu(_menu);
    Menu myMenu=new Menu(_subMenu);
    TreeNode node;
    ;
    node=sysContextMenu.AOTfindChild(myMenu.label());
    if(node)
    {
        node.AOTdelete();
        sysContextMenu.AOTsave();
    }
    else
        warning("Submenu not found: "+myMenu.label());

}
Старый 23.10.2006, 12:40   #18  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
фигня какая-то с этими подменю. Получается метод addSubMenu класса Menu вообще не работает?

Если использовать методы addSubMenu, removeSubMenu, которые выложил Максим, то такой код:
Код:
    addSubMenu("Administration","Test");

    removeSubMenu("ADministration","Test");
Выдает предпреждение "Submenu not found."

Если создавать подменю вручную и не добавить в него никаких пунктов меню, после сохранение и востановления это подменю уже не видно. В результате программно подменю добавить можно в меню с помощью метода AOTDrop, только если в это подменю заранее добавить все необходимые пункты меню. Но имя у этого подменю все равно почему-то пустое

У меня Axapta 3.0 SP3. Максим, а как у тебя эти методы работают?
Старый 23.10.2006, 13:18   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
именно так. заранее создаешь подменю со всеми методами, а оно вставляется
Старый 23.10.2006, 18:18   #20  
Косых Артём is offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Регистрация: 03.09.2004
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
именно так. заранее создаешь подменю со всеми методами, а оно вставляется
Так в твой метод создания подменю тогда надо передавать вторым параметром объект класса Menu, а не строку. Так? Или я чего-то не понимаю
Теги
меню, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
пользовательское меню программно PPL DAX: База знаний и проекты 17 05.05.2008 12:32
Как добавить пункт меню в портале? Pawlik DAX: Программирование 2 27.01.2006 15:35
Работа с главным меню в Axapta Alexey DAX: Программирование 0 04.01.2002 23:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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