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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.02.2013, 13:42   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,342 / 3563 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Штатно, имеются 2 способа.
1. Берем список всех классов (класс Dictionary, методы classCnt, classCnt2Id), перебираем их в цикле и смотрим на свойство extends. Если оно указывает на наш класс - значит это наследник. Если не на наш - значит пропускаем. Соответственно - сделав тут рекурсию - мы получим список наследников и наследников наследников.
Скорость работы п.1 хорошо заметна - когда мы создаем новый Shared Project. Система ищет всех наследников класса ProjectNode и список наследников выводит в качестве пунктов меню. И это еще без наследников наследников. Само собой - речь идет о первой попытке создания Shared Project после входа в АХ. Затем это кешируется.

2. Иерархия объектов (пункт меню из контекстного меню Надстройки из АОТ). Она ориентирована на то, что можно изначально заполнить спецтабличку (xrefTypeHierarchy) из формы построения перекрестных ссылок, а затем уже выбирать оттуда информацию гораздо быстрее, чем с помощью п.1

Я иногда задумываюсь - а не станет ли облегчение программирования в будущем усложнением в другом месте? Т.е. вроде как все знают - добавил наследника - он не активируется, пока его не пропишешь в конструкторе. А тут он взял и сам прицепился. Нетипичное поведение по сравнению с другим кодом. Что усложняет процесс изучения кода.

ЗЫ. Пока писал - уже AndyD ответил. Его вариант - наверное даже лучше, чем мой п.1
__________________
Возможно сделать все. Вопрос времени
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В Стандартной АХ2009 не работает кнопка <Параметры> на диалоге класса унаследованного от RunBaseReport Pustik DAX: Программирование 3 11.05.2011 19:47
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
передача курсора в два класса kitty DAX: Программирование 3 09.08.2006 13:21
Баг в методе класса OLAPCreateSchema Косых Артём DAX: Программирование 2 28.04.2006 12:20
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40

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

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

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