20.10.2006, 14:28 | #1 |
----------------
|
Программно добавить пункт меню
Подскажите, как программно добавить пункт меню в подменю одного из главных меню, например Администрирование.
Добавить просто пункт меню можно так 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 |
Участник
|
вот так
Код: 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 |
Участник
|
А я только что так убил Аxапту - именно меню `Администрация` - делает крэш, если пытаешся открыть или редактировать в АОТ
|
|
20.10.2006, 15:32 | #4 |
Участник
|
|
|
20.10.2006, 15:37 | #5 |
Участник
|
3.0 SP3
Придется вырывать весь УСР слой кроме того меню... Странно |
|
20.10.2006, 15:42 | #6 |
----------------
|
Вроде, работает. Спасибо.
А как теперь создать свое подменю? |
|
20.10.2006, 15:45 | #7 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Wamr (2). |
20.10.2006, 16:00 | #8 |
Участник
|
Только вот не совсем понимаю - зачем создавать это программно?
Расскажите, если не секрет |
|
20.10.2006, 16:05 | #9 |
----------------
|
Артем. я пробовал - не работает
Иван. Как еще можно перенести пункты главного меню на заранее неизвестную конфигурацию Аксапты? |
|
20.10.2006, 16:36 | #10 |
Участник
|
|
|
20.10.2006, 16:39 | #11 |
Lean Six Sigma
|
Тем, что главное меню - только одно. Импортируешь - перезапишешь.
|
|
20.10.2006, 17:03 | #12 |
Участник
|
Так есть же функция сравнения, чтобы сравнить, а в процессе сравнения можно вставить только то, что нужно. У меня правда при нажатие на стрелочку для внесения изменений, открывается (about:blank#Insert-1) - списываю это на SP1.
|
|
20.10.2006, 17:20 | #13 |
Lean Six Sigma
|
А так можно инсталляшку для модуля сделать. Получается почти коробка - поставил и вроде работает. На новые сервис-паки удобно переходить. Для кого это - реальность
|
|
20.10.2006, 19:03 | #14 |
Участник
|
|
|
23.10.2006, 10:23 | #15 |
Участник
|
Ned, в Аксапта сервис паки также инсталируются - сначала ставится новые DIS,DIP..etc, потом инсталятор предлагает сделать проект изменений АОТ... вот потом то и надо вручную пройти и все проверить... Если ето отделный модуль, конечно меньше гемороя, но все равно, хоть это и менюшка - надо делать это осторожно.. При импорте, перед нажатием ОК можно также сравнить XРО и любой уровень, вплоть до УСР...
Я даже так иногда импортирую из XРО, не нажимая на ОК... xватает только нажать стрелочьки в броузере |
|
23.10.2006, 12:07 | #16 |
Участник
|
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 |
Участник
|
Это я пытался плагинменеджер для аксапты сделать
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 |
Участник
|
фигня какая-то с этими подменю. Получается метод addSubMenu класса Menu вообще не работает?
Если использовать методы addSubMenu, removeSubMenu, которые выложил Максим, то такой код: Код: addSubMenu("Administration","Test"); removeSubMenu("ADministration","Test"); Если создавать подменю вручную и не добавить в него никаких пунктов меню, после сохранение и востановления это подменю уже не видно. В результате программно подменю добавить можно в меню с помощью метода AOTDrop, только если в это подменю заранее добавить все необходимые пункты меню. Но имя у этого подменю все равно почему-то пустое У меня Axapta 3.0 SP3. Максим, а как у тебя эти методы работают? |
|
23.10.2006, 13:18 | #19 |
Участник
|
именно так. заранее создаешь подменю со всеми методами, а оно вставляется
|
|
23.10.2006, 18:18 | #20 |
Участник
|
|
|
Теги |
меню, программно |
|
Похожие темы | ||||
Тема | Ответов | |||
пользовательское меню программно | 17 | |||
Как добавить пункт меню в портале? | 2 | |||
Работа с главным меню в Axapta | 0 |
|