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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.02.2008, 18:01   #21  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
Ок. Извиняюсь.
Но все же делал бы как AndyD написал.

Сделал все как у вас. 1 в 1.
Работает - МИ отображается когда надо.
Когда не надо - не отображается.

Все откомпилировалось на ура.

ЗЫ А всетаки я был прав в 2м посте со своим вопросом)
Ну значит Аксаптушка привередничает. З.Ы Прав, да не совсем, метод-то я и сам написал. Вопрос-то как-раз заключался в том, где же реализуются 3 абстрактных метода. То, что если имеем дело с AOT, то ядро запускает не SysContextMenu, а SysContextMenuAOT cтало для меня откровением. Отдельное спасибо, что проверили код, теперь я хотя бы знаю, что боки не с моей стороны)
__________________
Axapta has seduced me deadly!
Старый 29.02.2008, 18:03   #22  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
Меню в Action?
Сюда MI добавили \Menus\sysContextMenu ?
Разумеется) Иначе имел бы полное право считать себя законченым критином)
Проблема вся в зловещей тройке абстрактных методов.
__________________
Axapta has seduced me deadly!
Старый 29.02.2008, 18:12   #23  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Цитата:
Сообщение от AndyD Посмотреть сообщение
Вы в двух/трехзвенке работаете?
Попробойте почистить кэш AOT ([Ваш профиль]\Local Settings\Application Data\ файлы aoc)
Почистил. "Успех" оказался следующим: ошибка опять поменялась с такой ф-ции не существует: selectionCount() на насовместимость типов переменной и возвращемого значения ф-ции, напомню: и там, и там int Мистега. Наверное, надо Аксапту сносить. З.Ы в двухзвенке.
__________________
Axapta has seduced me deadly!
Старый 29.02.2008, 18:22   #24  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Вопрос-то как-раз заключался в том, где же реализуются 3 абстрактных метода.
Я же уже ответил.
Еще разик:
X++:
\Classes\SysContextMenuAOT\first
\Classes\SysContextMenuAOT\new
\Classes\SysContextMenuAOT\next
У меня работает. Что сделал:
1. Добавил пункт меню \Menu Items\Action\Generator
2. Добавил его в \Menus\sysContextMenu\My MI
3. Дописал метод \Classes\SysContextMenu\verifyItem:

X++:
    TreeNode currentNode;
    boolean  typeMatch;
    int      SelectionIndex;
    int      currentNodeType;
..............................................

       case MenuItemType::Action:
            switch (menuItemName)
            {
//MY BLOCK
                case menuItemActionStr(Generator):

                    currentNode=firstNode;
                    typeMatch=true;
                    for(SelectionIndex=0;SelectionIndex<this.selectionCount();SelectionIndex++)
                    {
                        currentNodeType=currentNode.applObjectType();
                        typeMatch=(
                        currentNodeType==UtilElementType::Table          ||
                        currentNodeType==UtilElementType::TableField     ||
                        currentNodeType==UtilElementType::PrivateProject ||
                        currentNodeType==UtilElementType::SharedProject);
                        if(!typeMatch)return typeMatch;
                        currentNode=this.next();
                    }
                    return typeMatch;

                //MY BLOCK
Откомпилировал. Работает.
Попробуйте повторить с нуля. Может что не так во время экспериментов случилось.

ЗЫ На ax4 тестил.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 29.02.2008, 18:26   #25  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вместо
X++:
currentNode=firstNode;
надо использовать
X++:
currentNode=this.first();
Можно на runtime error нарваться, если не проверять currentNode перед использованием, или не все узлы просмотреть, если проверять.
Смотрите реализацию метода new()
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 29.02.2008 в 18:29. Причина: очепятка
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по созданию отчета asd1274 DAX: Программирование 6 05.12.2008 21:44
Вопрос по возвратам soad DAX: Функционал 2 24.07.2008 13:04
SysContextMenu issue HorrR DAX: Программирование 3 22.02.2008 14:10
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
расчеты с персоналом. НДФЛ. вопрос чайника shumelka DAX: Функционал 2 25.03.2004 11:36

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

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

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