База знаний ERP: Axapta/AxCopyTableFieldListToClipboard ...
Поиск:
Поиск по Ax сайтам
Наблюдать | Версия для печати | Вход:   Пароль:  

Раздел: Средства Расширения Среды


AxCopyTableFieldListToClipboard


Инструмент для разработчиков Dynamics AX? 3.0
Позволяет по выбранной таблице сформировать код для создания/изменения записи и скопировать его в буфер обмена для дальнейшей вставки в редактор кода.
Домашняя страница – AxCopyTableFieldListToClipboard



Оглавление документа

Скриншот

http://www.axaptapedia.com/images/2/23/AxCopyTableFieldListToClipboardDlg.PNG

Описание возможностей инструмента

Version 1.1

  • Добавить объявление переменной перед кодом заполнения полей. После объявления будет добавлена точка с запятой. Этот код нужно будет перенести к остальным объявлениям, если изменения вставляются всередину метода.
  • Добавить вызов метода clear() перед кодом заполнения полей. Этот метод необходим, к примеру, при циклической обработке набора записей.
  • Возможно указать название переменной, отличное от названия таблицы. О недопустимые значениях имени переменной информация выводится значком справа от поля для ввода.
  • Возможно выбрать поля, которые необходимо копировать в буфер. На данный момент есть 2 пред. настройки – Все поля, Ни одного поля. (очистка списка, то есть).
  • Вставить вызов метода insert() или update() после строк присвоения значений полям таблицы.
  • В верхней части диалога отображается Preview того, как на самом деле будет выглядеть код в редакторе.

Установка

Просто импортируйте проект (ссылка выше).

Интеграция в Axapta

В систему инструмент можно встроить несколькими способами:


  • Пункт меню Ax Copy Table Field List To Clipboard добавить в меню SysContextMenu?. Текст «Copy Table Field List?" автоматически будет добавлен в контекстное меню всех АОТ объектов. Для того, чтобы ограничить список допустимых объектов только таблицами, добавьте нижеуказанный код в метод verifyItem класса SysContextMenu?. (после case Menu Item Type?::Action:)

//--> AxCopyTableFieldListToClipboard_ikash date=2007-02-11 txt='Show in menu only for tables'
case menuItemActionStr(AxCopyTableFieldListToClipboard):
    if (this.selectionCount() != 1 || firstNode.AOTIsOld())
        return 0;
 
    if (!docNode && firstNode.sysNodeType() == 204)
        return 1;
 
    return 0;
//<-- AxCopyTableFieldListToClipboard_ikash

  • Добавить пункт меню в меню GlobalToolsMenu? или DevelopmentTools?. Далее выбираем таблицу в АОТ и выбираем в меню соответствующий пункт.
  • Добавляем картинку (одну из двух) из архива в папку для плагинов к Tabax. Автоматически появится возможность запуска из панели инструментов Tabax. (прежде необходимо выбрать таблицу в АОТ)
  • Можно выбрать название таблицы непосредственно в редакторе и запустить скрипт из EditorScripts. Для того, чтобы это стало возможным, добавьте новый метод в Класс\EditorScripts и скопируйте в него нижеприведенный код.

void AOT_Copy_TableFieldList(Editor e)
{
    Args    args = new Args();
    ;
 
    args.parmObject(e);
 
    new MenuFunction(menuItemActionStr(AxCopyTableFieldListToClipboard), MenuItemType::Action).run(args);
}

  • При невыполнении ни одного из перечисленных условий откроется список таблиц, из которого вы сможете выбрать ту, обработку которой необходимо провести.

Планируемые улучшения (To Do?)

  • Добавить дополнительные опции быстрого выбора списка полей (Auto Report?, Auto Lookup?, Только обязательные поля, т.д.)
  • Добавить полную поддержку редактора – при выборе переменной в коде отыскивать ее определение (как это делает AxGoToDeclaration?) и производить уже ее обработку.
  • Добавить возможность вставки строки кода
    if(tableVariable.validateWrite())

См. Также

Thanks

  • /Andy D?ListView? setColumnWidth и обработка с использованием winApi?
  • /aidsua – подсказал по функции match


 
Комментариев нет. [Показать комментарии/форму]
Время работы: 0.565 s
Использовано памяти: 0.330 Mb