Инструменты пользователя

Инструменты сайта


axapta:axcopytablefieldlisttoclipboard

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


[[~AxCopyTableFieldListToClipboard]]

Инструмент для разработчиков DynamicsAX 3.0 Позволяет по выбранной таблице сформировать код для создания/изменения записи и скопировать его в буфер обмена для дальнейшей вставки в редактор кода. Домашняя страница - http://www.axaptapedia.com/AxCopyTableFieldListToClipboard

toc

Скриншот

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

Version 1.1

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

Установка

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

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

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

  • Пункт меню AxCopyTableFieldListToClipboard добавить в меню SysContextMenu. Текст «Copy Table FieldList» автоматически будет добавлен в контекстное меню всех АОТ объектов. Для того, чтобы ограничить список допустимых объектов только таблицами, добавьте нижеуказанный код в метод verifyItem класса SysContextMenu. (после case MenuItemType::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);
}
  • При невыполнении ни одного из перечисленных условий откроется список таблиц, из которого вы сможете выбрать ту, обработку которой необходимо провести.

Планируемые улучшения (ToDo)

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

См. Также

Thanks

  • AndyD - ListView setColumnWidth и обработка с использованием winApi
  • /aidsua - подсказал по функции match
axapta/axcopytablefieldlisttoclipboard.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)