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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.09.2020, 14:12   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
AX2012: Разработка. Открыть используемый объект
Всем добрый день!
Нашел у себя в залежах проект по переходу от одного объекта к другому. Например, в стандарте можно перейти от датасорса формы к таблице, но нельзя от поля датасорса к полю таблице.
Таких переходов в системе можно найти много, когда функциональность "Открыть используемый ...." открывает какой-то другой объект. Бывают и неоднозначности, например, от EDT можно перейти к родительскому EDT, а можно и к форме, указанной в свойстве FormHelp.
Для AX2009 для целей Tabax я собрал в кучку различные переходы таким образом, чтобы можно было нажимая одну кнопку проваливаться по цепочке объектов. Например, от контрола на форме - к полю датасорса, дальше к полю таблицы, дальше к EDT и т.д. Для упрощения модификации и интерфейса пришлось пожертвовать множественным выбором и открывать только один вариант (например, для EDT - открывать только родительский EDT и не смотреть на форму из FormHelp).
Ну а потом добавил переходы в рамках изменений в AX2012.
Тут есть еще чего добавлять - добавил в первую очередь те переходы, которыми сам пользовался

В общем, как обычно - цель была за 20% усилий решить 80% задач и не пытаться решать нерешенные 20%, если для этого требовалось бы 80% усилий.

Какие-то переходы нарыл с форума, что-то было от знакомых - в общем - если кто узнает свой код - тому почёт, уважение и большое спасибо.

Для инсталляции нужно пункт меню и проекта добавить в SysContextMenu \ Новое окно.
Код можно было написать более "феншуйно", но ... опять-таки преследовалась цель оптимизации собственного труда.
В итоге накопились следующие переходы:
  • Меню -> Пункт меню (с учетом 3-х типов пунктов меню)
  • Контрол на форме -> поле или display / edit-метод или EDT / Enum или пункт меню. Для группы - группа полей на датасорсе. Сегментированный контрол не поддерживается
  • Пункт меню -> объект АОТа, на который пункт меню может ссылаться
  • Класс -> родительский класс с учетом классов из узла System Documentation
  • Таблица в Map -> сама таблица
  • Поле датасорса на форме или в Query -> поле на таблице
  • Группа полей на датасорсе формы -> группа полей на таблице
  • Поле на таблице -> EDT / Enum
  • EDT -> родительский EDT, либо Enum
  • Таблица -> родительская таблица в наследовании, либо (если ее нет), то пункт меню типа Display из FormRef.
  • Security Key -> родительский ключ. Если указан конфигурационный ключ - то открывается конфигурационный ключ
  • Конфигурационный ключ -> родительский ключ. Если указан код лицензии, то код лицензии
  • Поле в системной таблице -> ее системный тип (из System Documentation). Раньше (3.0, 4.0) работало, сейчас практически не работает (т.е. раньше можно было узнать тип поля из таблицы в System Documentation)
  • Поле в индексе на таблице -> поле на таблице (работает также для поля из полнотекстового индекса)
  • Поле из Query Range / Query Sort -> поле на таблице
  • FormPart, Cue -> пункт меню, на который они ссылаются
  • Ссылка на форму в привилегии -> форма на которую ссылка ссылается
  • Cue в Cue Group -> Cue
  • Сервис в группе сервисов -> сервис
  • Сервис -> класс сервиса
  • Операции сервиса -> метод класса сервиса
  • Ссылка на View из Perspectives -> View
  • Web Menu -> Web Menu Item
  • Web Managed -> Web Control
  • Web Menu Item -> Класс или Job в АОТе
  • Code Permission (ссылка на метод) -> метод класса
  • Policy (XDS) -> Query
  • Ссылка на SSRS отчет в разрешениях -> SSRS-отчет
  • Ссылка на привилегию / Duty -> соответствующая привилегия / Duty
  • Entry point в привилегии -> соответствующий объект АОТа
  • SSRS-отчет -> VS проект отчета
  • WF-элемент в WFType -> соответствующий элемент (Approval / Task / AutomatedTask)
  • WFType, ссылка на LineItemWF -> WFType, на который ссылка
  • WF провайдер -> класс обработчик
  • WF провайдер, ссылка на WF Type -> WFType, на который ссылка
  • Также переход к таблице или View (или к таблице из System Documentation) от свойства Table любого объекта (т.е. если вдруг объект имеет узел Table, то переход от этого узла к самой таблице)
SharedProject_SysOpenNewWindowAOTNode.zip

mazzy обучил пользоваться GitHub-ом )). Поэтому выложил этот проект туда:
https://github.com/sukhanchik/SysOpenNewWindowAOTNode
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mazzy (2), BOAL (2), trud (10), Logger (10), -DocSerzh- (1), mikki_messer (1), imir (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Открыть в новом окне объект из кода miklenew DAX: База знаний и проекты 24 31.01.2023 17:31
i-neti: Разработка и кодревью в Dynamics AX2012 и Azure DevOps Blog bot DAX Blogs 0 04.12.2019 19:11
ax3,ax4,ax2009,ax2012: Есть ли красивый способ передать packable объект между клиентом и сервером? mazzy DAX: Программирование 20 09.06.2019 23:19
AX2012 CU2, разработка Enterprise Portal в Visual Studio 2010 - как убить кэш? offenmeier DAX: Программирование 5 23.04.2012 06:35
Не могу открыть объект в 1с. Tolikv DAX: Программирование 13 17.05.2007 09:41
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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