воскресенье, 13 декабря 2009 г.

Горячие клавиши - это просто (HK Framework)

Описание

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:

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

воскресенье, 5 апреля 2009 г.

FormDigger 1.1


Что нового

  • Копирование пути к полю формы с возможностью настройки собственного формата и языка (Пример: Форма 'Номенклатура' -> Закладка 'Количество' -> Группа 'Запасы' -> Поле 'Единица измерения')
  • Новый удобный дизайн
  • Вывод информации о наименовании формы, источниках данных полей и самой формы
  • Поддержка кнопок формы: искать, нажимать :)
  • Возможность быстрого перехода к полю таблицы, дисплэй/эдит методу, таблицы источника данных
  • Встроенная справка

Скачать FormDigger 1.1 для DAX 4.0 (~14Kb)
Скачать FormDigger 1.1 для DAX 3.0 (~14Kb)

понедельник, 16 февраля 2009 г.

Где же это поле? (FormDigger 1.0 beta)

Часто поиск полей на форме может отнять уйму времени.
Сколько времени вы тратите на поиск поля, изучая новый функционал?
Сколько времени вы тратите на поиск поля в TableBrowser при разработке?
Сколько времени вы тратите на то, чтобы найти, где на форме отображается поле таблицы?
FormDigger создан для удобного и быстрого поиска полей на форме.

Как этим пользоваться?

Для вызова FormDigger нажимаем "Alt+~".
FormDigger содержит список всех полей формы, для которой был вызван.
Невидимые поля имеют иконку с красным замком , display- и edit-поля имеют иконку с желтым замком .
В поле "Keyword" («Ключевое слово») вводим ключевое слово для фильтра/поиска. Если флаг "Find by field"(«По полю») не установлен, поиск/фильтрация выполняется по наименованию поля (его пользовательской метке), если установлен – по имени поля таблицы.
Фильтр FormDigger работает по правилу "like", перевыбирая список при каждом его изменении (Suggestion list). Например, вводим в поле "Keyword" слово "Дата" (поиск по наименованию). В списке останутся только те поля, наименования которых содержат слово «Дата». Отфильтровав список по ключевому слову, можно перемещаться по нему (клавиши «вверх», «вниз»). Перемещаясь по списку полей, одновременно выполняется позиционирование на соответствующее поле формы; поле при этом визуально обводится красной рамкой. Попробуйте – очень удобно!

Возможности FormDigger

  • поиск полей на любой форме с авто позиционированием и визуальным выделением (красная рамка) искомого поля;
  • доступ к свойствам поля и копирование в буфер обмена (из контекстного меню);
  • доступ к стандартному контекстному меню разработчика (из контекстного меню);
  • быстрый доступ к редактированию формы в AOT (по кнопке );
  • быстрый снимок формы (snapshot) (по кнопке ).


Поддержка версий Microsoft Dynamics AX

  • Microsoft Dynamics AX 4.0;
  • Microsoft Dynamics AX 3.0;
  • в ближайшее время планируется доработка для Microsoft Dynamics AX 2009.
Скачать FormDigger 1.0 для DAX 4.0 (~8Kb)
Скачать FormDigger 1.0 для DAX 3.0 (~8Kb)

Разное

1. При разработке Form digger были использованы стандартные средства системы без использования внешних компонентов (dll).
2. Простая установка.
3. Это первая, пробная версия программы. Замечания и предложения приветствуются.

пятница, 30 января 2009 г.

Ссылки на главное меню: как получить?


English version of this topic

При написании пользовательской или технической документации, часто приходится приводить пути главного меню для запуска форм, отчетов, периодических операций и т.д., например: "Расчеты с клиентами" -> "Настройка" -> "Комиссия" -> "Группы клиентов для комиссии".
При этом вручную набирать такой путь весьма трудоемко. Данная модификация позволит автоматизировать этот процесс. Установив ее, Вы сможете получать пути главного меню нажатием одной кнопки. При этом существует возможность задать язык и формат, на котором и по которому сформируется строчка, например:
  • [Accounts receivable] -> [Setup] -> [Commission] -> [Customer groups for commission]
  • 'Debitoren' >> 'Einstellungen' >> 'Provision' >> 'Kundengruppen für Provision'.

Как это работает

1. Позиционируемся на нужный нам пункт меню, вызываем контекстное меню (правая кнопка мыши). Удерживая кнопку "Ctrl", выбираем пункт «Добавить в избранное», - открывается диалоговая форма с настройками (если кнопку «Ctrl» не удерживать, то получим стандартное поведение системы – добавление пункта меню в избранное).



2. В появившемся диалоговом окне устанавливаем нужные нам параметры:


Рисунок объясняет параметры диалога. Строку меню также можно получить на нужном языке (параметр "Language").

После нажатия «ОК» появляется сообщение со сформированной строкой из пути к выбранному пункту меню. Одновременно с сообщением строка копируется в буфер обмена (clipboard), после чего её можно вставить в любое место вне аксапты по Ctrl+V или из контекстного меню.

3. Настроив один раз параметры, можно пропускать появление диалоговой формы. Действия аналогичны пункту 1, но вместо кнопки "Ctrl" удерживаем "Shift". В этом случае сформируется строка, используя ранее настроенные параметры.

4. Модификация также может работать и из AOT по контекстному меню, доступному разработчику (нужно создать menuItem и добавить его в SysContextMenu)

Ограничения

Данная модификация может работать с версиями системы, начиная от DAX 4.0, причем, только если используется новый, не классический (как в 2.5, 3.0) тип меню.

English version of this topic

Скачать DAX 4.0 project(~5Kb)
Скачать DAX 2009 project(~5Kb)

четверг, 29 января 2009 г.

Intro

Всем привет!

Данный блог будет содержать модификации, обеспечивающие разработчикам и пользователям более комфортные условия работы в системе Microsoft Dynamics AX.
Все модификации, представленные в блоге, являются моей собственной разработкой (если не указано соавторство). Модификации распространяются бесплатно, но со ссылкой на автора.

Причины появления блога:

1. Поделиться с общественностью.
2. Держать разработки всегда в on-line.

Буду рад, если кто-нибудь найдет здесь для себя что-нибудь полезное.

Обращайте также внимание, для какой версии приложения написаны модификации.

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