30.04.2008, 13:16 | #1 |
Участник
|
пользовательское меню программно
можно ли программно открыть пользовательское меню?
UtilElements UtilElements; select firstonly UtilElements where UtilElements.recordType == UtilElementType::UserMenu ; класс Menu = new Menu(UtilElements.name); и Menu.AOTrun(); не проходят - меню нет в дереве можно ли узнать что делается в коде по Файл - открыть - меню пользователя |
|
30.04.2008, 13:21 | #2 |
Axapta
|
X++: void clicked() { UserInfo userInfo; Menu menu; ; select firstonly startupMenu from userInfo where userInfo.id == curUserId(); if (userInfo.startupMenu) { menu = new Menu(userInfo.startupMenu); menu.AOTrun(); } } |
|
30.04.2008, 13:23 | #3 |
Участник
|
Как то возился с меню пользователя и пришёл к выводу что они хранятся на локале.
Может ошибся. Вообще помойму какая-то не доделанная фишка эти меню пользователя. |
|
30.04.2008, 13:33 | #4 |
Участник
|
А startupMenu это где?
Это в 4-ке что ли появилось? |
|
30.04.2008, 13:36 | #5 |
Участник
|
А понял.
Уже на экране вижу одно, мозг интерпретирует по своему. |
|
30.04.2008, 13:37 | #6 |
Axapta
|
|
|
30.04.2008, 13:48 | #7 |
Участник
|
так
void clicked(){ UserInfo userInfo; Menu menu;; select firstonly startupMenu from userInfo where userInfo.id == curUserId(); if (userInfo.startupMenu) { menu = new Menu(userInfo.startupMenu); menu.AOTrun(); }}не работает |
|
30.04.2008, 13:50 | #8 |
Участник
|
Раз уж тему завели.
Не кто не копался. С процедурой Файл->Создать->Меню пользователя. Где результаты этой работы сохраняются. |
|
30.04.2008, 13:51 | #9 |
Участник
|
нужно открыть меню пользователя, которого нет в дереве меню...
|
|
30.04.2008, 13:52 | #10 |
Участник
|
сохраняет в UtilElements ...и т.д. и т.п
|
|
|
За это сообщение автора поблагодарили: miklenew (2). |
30.04.2008, 14:04 | #11 |
Участник
|
Спасибо.
А может ещё известно место, где храняться объекты которые мы накинули на это меню. |
|
30.04.2008, 14:13 | #12 |
Участник
|
люди, скажите все-таки, можно как открыть пользовательское меню программно?
|
|
30.04.2008, 14:28 | #13 |
Участник
|
Если вот так написать.
X++: static void Job9(Args _args) { Menu menu; ; menu = new Menu("Admin_ttt"); menu.AOTnewWindow(); } Но при попытке открыть тоже сразу закрывается. Так же как и при программной попытке это сделать. |
|
05.05.2008, 08:18 | #14 |
Участник
|
так, конечно, не пойдет... Что же делать с этим меню-то, блин...
|
|
05.05.2008, 10:04 | #15 |
Участник
|
А если подсунуть нужное меню в качестве стартового и вызвать стандартный запуск начального меню. Что-нибудь типа:
userInfo.startupMenu = 'Суперменю'; userInfo.write(); infolog.runStartupMenu(); Последний раз редактировалось Raven Melancholic; 05.05.2008 в 10:21. |
|
05.05.2008, 12:05 | #16 |
Участник
|
если после этого еще опять менять стартовое меню - то пойдет.
только не совсем красиво... |
|
05.05.2008, 12:14 | #17 |
Участник
|
Согласен, некрасиво, но если другого способа не получается найти? Запихнуть в метод класса Global весь процесс подмены, запуска, восстановления старого значения и забыть по то что внутри метода не все красиво.
|
|
05.05.2008, 12:32 | #18 |
Участник
|
Даже write() не надо :
X++: menuNameUsr_CT = "MyMenu"; select firstonly userInfo where userInfo.id == curuserid(); menuNameUsrUP = userInfo.startupMenu; userInfo.startupMenu = menuNameUsr_CT; infolog.getUserSetup().setUserSetup(userinfo); infolog.runStartupMenu(); userInfo.startupMenu = menuNameUsrUP; infolog.getUserSetup().setUserSetup(userinfo); |
|