Всем добрый день!
Нашел у себя в залежах проект по переходу от одного объекта к другому. Например, в стандарте можно перейти от датасорса формы к таблице, но нельзя от поля датасорса к полю таблице.
Таких переходов в системе можно найти много, когда функциональность "Открыть используемый ...." открывает какой-то другой объект. Бывают и неоднозначности, например, от 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