AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 20.10.2006, 14:28   #1  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Программно добавить пункт меню
Подскажите, как программно добавить пункт меню в подменю одного из главных меню, например Администрирование.

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

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

Geändert von Wamr (20.10.2006 um 14:30 Uhr)
Alt 20.10.2006, 15:06   #2  
Косых Артём ist offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Registriert seit: 03.09.2004
Ort: Москва
вот так
Code:
    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();

Geändert von Косых Артём (20.10.2006 um 15:10 Uhr)
Alt 20.10.2006, 15:29   #3  
Delfins ist offline
Delfins
Участник
 
320 / 39 (2) +++
Registriert seit: 20.09.2005
Ort: Riga, Latvia
А я только что так убил Аxапту - именно меню `Администрация` - делает крэш, если пытаешся открыть или редактировать в АОТ
Alt 20.10.2006, 15:32   #4  
Косых Артём ist offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Registriert seit: 03.09.2004
Ort: Москва
Zitat:
Zitat von Delfins Beitrag anzeigen
А я только что так убил Аxапту - именно меню `Администрация` - делает крэш, если пытаешся открыть или редактировать в АОТ
Ужас

А какая версия Аксапты? У меня 3.0 SP3 вроде все нормально.
Alt 20.10.2006, 15:37   #5  
Delfins ist offline
Delfins
Участник
 
320 / 39 (2) +++
Registriert seit: 20.09.2005
Ort: Riga, Latvia
3.0 SP3

Придется вырывать весь УСР слой кроме того меню...
Странно
Alt 20.10.2006, 15:42   #6  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Вроде, работает. Спасибо.
А как теперь создать свое подменю?
Alt 20.10.2006, 15:45   #7  
Косых Артём ist offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Registriert seit: 03.09.2004
Ort: Москва
Zitat:
Zitat von Wamr Beitrag anzeigen
А как теперь создать свое подменю?
метод addSubMenu класса Menu
This post has been rated by: Wamr (2).
Alt 20.10.2006, 16:00   #8  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Только вот не совсем понимаю - зачем создавать это программно?
Расскажите, если не секрет
Alt 20.10.2006, 16:05   #9  
Wamr ist offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1.737 / 868 (32) +++++++
Registriert seit: 15.01.2002
Ort: Москва
Blog-Einträge: 7
Артем. я пробовал - не работает

Иван. Как еще можно перенести пункты главного меню на заранее неизвестную конфигурацию Аксапты?
Alt 20.10.2006, 16:36   #10  
Hidden ist offline
Hidden
Участник
 
199 / 15 (1) ++
Registriert seit: 25.03.2004
Ort: Moscow
Zitat:
Zitat von Wamr Beitrag anzeigen
Артем. я пробовал - не работает

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

Я даже так иногда импортирую из XРО, не нажимая на ОК... xватает только нажать стрелочьки в броузере
Alt 23.10.2006, 12:07   #16  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 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();
}
This post has been rated by: Wamr (2), Косых Артём (1).
Alt 23.10.2006, 12:08   #17  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 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());

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

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

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

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

У меня Axapta 3.0 SP3. Максим, а как у тебя эти методы работают?
Alt 23.10.2006, 13:18   #19  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
именно так. заранее создаешь подменю со всеми методами, а оно вставляется
Alt 23.10.2006, 18:18   #20  
Косых Артём ist offline
Косых Артём
Участник
Axapta Retail User
 
123 / 77 (3) ++++
Registriert seit: 03.09.2004
Ort: Москва
Zitat:
Zitat von belugin Beitrag anzeigen
именно так. заранее создаешь подменю со всеми методами, а оно вставляется
Так в твой метод создания подменю тогда надо передавать вторым параметром объект класса Menu, а не строку. Так? Или я чего-то не понимаю
Stichworte
меню, программно

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
пользовательское меню программно 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 17:42 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.