Источник:
http://earlionakru.blogspot.com/2009...framework.html
==============
Описание
X++ Hot key framework (HK Framework) - платформа для настройки и использования собственных горячих клавиш в среде Microsoft Dynamics AX. Движок реализован на X++ без использования dll/activeX.
Скачать HKFramework 1.0.xpo для DAX 4.0, 2009
Возможность настройки горячих клавиши для:
- редактора X++ (например, расстановка комментариев, открытие объекта в новом окне и т. п.);
- репозитария AOT (например, открытие таблицы в обозревателе по Ctrl+O);
- глобально для приложения (открытие любых форм, запуск классов, джобов и т. п.).
HK Framework уже включает в себя набор преднастроенных горячих клавиш и связанных с ними функций. Для добавления своей собственной функции, необходимо добавить статический метод в класс HKAOT или HKEditor - в зависимости от области ее действия - в AOT или редакторе X++, и в форме настройки HKSetup назначить этому методу желаемую комбинацию клавиш. При срабатывании установленной комбинации клавиш этому методу передастся управление. Пример методов смотрите в уже реализованных функциях.
Также, в форме HKSetup можно назначать горячие клавиши для запуска любой существующей формы/класса/джоба.
Список инструментов в данной версии HK Framework
1.
Aot2project (ALT+F3) - менеджер управления AOT проектом; включает функции:
- добавление элементов в проект из репозитария АОТ и редактора X++ (Ctrl+K);
- расстановка комментариев в редакторе X++ (Ctrl+1, Ctrl+2, Ctrl+3 - открывающий, обычный, закрывающий комментарии, соответственно), формат комментариев можно настраивать (по принципу "strFmt("%1 %2 %3")");
- создание соответствующей группы/подгруппы проекта (например, Data_Dictionary/Tables/Classes/...).
2.
AotJump (AOT, Ctrl+J) - функция для быстрого «скольжения» по элементам АОТ, в направлении от базового элемента к родителю, например, от класса-наследника к классу-родителю, от датасорса формы к таблице, от менюайтема к открывающемуся объекту. Скольжение осуществляется по следующим цепочкам (уже не помню всех цепочек, если чего-то не хватает, можно добавить свои):
- класс -> класс-родитель -> класс-родитель -> ... -> базовый класс;
- table field -> EDT -> EDT-родитель -> EDT-родитель -> ... -> базовый EDT -> [enum];
- menuItemButton -> menuItem -> класс/форма/отчет (зависит от типа menuItem);
- menu -> menuItem;
- formDataSource -> table/view.
3.
CheckBestPractice (AOT, Ctrl+B) - функция проверки выделенных элементов АОТ на соответствие рекомендациям BestPractice.
4.
Copy2clipboard (AOT, Ctrl+C) - функция копирования имен выделенных элементов АОТ в буфер обмена. Поддерживается мультивыделение. Очень полезно при наборе имен объектов в редакторе.
5.
TableBrowser (AOT, Ctrl+O) - функция открывает таблицу в обозревателе таблиц из АОТ.
6.
OpenTableBrowser (X++ Editor, Ctrl+«Ноль») - функция открывает таблицу в обозревателе, на которой установлен курсор в редакторе X++.
7.
OpenNewWindow (X++ Editor, Ctrl+O) - плагин открывает элемент АОТ в новом окне из редактора X++. Поддерживается распознавание по типу.
Инсталляция
Данная версия тестировалась на DAX 4.0, 2009. Для 3.0 не хватило времени допилить. Если кто-то нуждается в версии для 3.0 - с удовольствием подскажу что и где подправить.
Инсталляция очень проста - две простых модификации стандартных методов.
\Classes\ClassFactory\formRunClassOnClient:
<div style="border: 1px solid gray; background: rgb(250, 253, 255) none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; padding-left: 10px;font-family:'Courier New';">
client static FormRun formRunClassOnClient
(Args args
)
{
SysSetupFormRun sysSetupFormRun;
;
// HK "Hot key framework", evo 30.07.2009 -->
if (args
&& args.
name() == formstr(SysEditorGotoLine
))
{
return HKManager
::editorCatchObject(args
);
}
// HK "Hot key framework", evo 30.07.2009
HKManager
::startHKManager().
run(false);
<span style="color: rgb(0, 127, 0);">// HK "Hot key framework", evo 30.07.2009