Описание
X++ Hot key framework (HK Framework) - платформа для настройки и использования собственных горячих клавиш в среде Microsoft Dynamics AX. Движок реализован на X++ без использования dll/activeX.Скачать HKFramework 1.0.xpo для DAX 4.0, 2009
Возможность настройки горячих клавиши для:
- редактора X++ (например, расстановка комментариев, открытие объекта в новом окне и т. п.);
- репозитария AOT (например, открытие таблицы в обозревателе по Ctrl+O);
- глобально для приложения (открытие любых форм, запуск классов, джобов и т. п.).
Также, в форме 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:
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 <--
sysSetupFormRun = SysSetupFormRun::construct(args);
return sysSetupFormRun;
}
\Classes\Info\onEventGoingIdle:
//Event fired by kernel when the client goes idle.
//It is not fired during CTRL-Break dialog.
void onEventGoingIdle()
{
this.operationProgressClear();
this.endLengthyOperation(true);
// HK "Hot key framework", evo 30.07.2009 -->
HKManager::startHKManager().run(false);
// HK "Hot key framework", evo 30.07.2009 <--
}
Примечания
1. HK Framework не использует внешние компоненты (DLL, ActiveX). Вследствие этого, он не перекрывает стандартные горячие клавиши. То есть, если назначить какой-то HK, который пересекается со стандартным, то стандартный HK отработает параллельно. Это накладывает ограничение на набор возможных комбинаций клавиш, который вы захотите использовать. Некоторые комбинации клавиш вообще не работают. Например, любая комбинация с клавишей ALT в редакторе X++ не работает (удобно использовать Ctrl). В общем, к процессу назначения новой горячей клавиши нужно подойти творчески.2. Детектирование комбинации клавиш несколько отличается от стандартного перехвата. Здесь важен момент одновременного нажатия клавиш, в то время как в стандарте достаточно быстрой последовательности нажатия. Поэтому для некоторых пользователей чувствительность может показаться недостаточной.
3. После инсталляции необходимо удалить метод \Classes\HKProject\aotStructList. При первом использовании функциональности Aot2project метод пересоздается в соответствии с структурой АОТ вашего приложения.
Скачать HKFramework 1.0.xpo для DAX 4.0, 2009
.jpg)
Good job Evgeny!!
ОтветитьУдалитьSurely, I'll not miss the SysEditorGotoLine form... hehehe
Thanks!