Excel отчет из AX: COM объект

    В предыдущей статье о способах взаимодействия AX и Excel мы рассказали про 3 варианта построения отчетов. Самый известный и широко используемый способ выгрузки данных и разработки отчетов для Microsoft Dynamics AX – использование стандартного класса COMExcelDocument_RU. В данной статье мы расскажем: как можно создать простой Job для построения Excel отчета.
 Начнем знакомство с классом COMExcelDocument_RU, его можно найти в AOT\Classes\COMExcelDocument_RU

COM 

  1. Это класс-потомок абстрактного класса ComOfficeDocument_RU, который отвечает за взаимодействие с приложениями MS Office Application. Соответственно рассматриваемый класс COMExcelDocument_RU реализует возможности взаимодействия AX и Excel.
  2. В классе реализован метод construct(), который выполняется на клиенте и создает новый экземпляр класса.
  3. Для создания нового документа используется метод newFile(), который на вход принимает 3 аргумента (все аргументы необязательны):
    • template – путь к шаблону, включающий его имя и расширение;
    • bVisible – флаг, отвечающий за видимость приложения Excel во время формирования отчета;
    • displayAlerts – флаг, отвечающий за отображение служебных сообщений.
  4. Для вывода данных в определенную ячейку используется метод insertValue(), который на вход принимает:
    • bookmark – адрес ячейки в текстовом формате (Например “А1”);
    • anyVal – значение, которое нужно вывести;
    • workSheet – номер листа рабочей книги, на который нужно вывести значение.
  5. В ходе построения отчетов часто используют переменные-счетчики для подсчета количества строк. Для удобства работы со значениями _bookMark есть специальный стандартный метод формирующий BookMark на основании числового значения строки/столбца – numToNameCell().

Создадим простой Job, который будет выполнять вывод таблицы CustTable в Excel отчет:

static void AX_ExcelTutorial(Args _args)
{
    ComExcelDocument_RU excel;
    CustTable           custTable;
    Bookmark            bookmark;
    Int                 row;
    Int                 column;
    ;

    excel = ComExcelDocument_RU::construct();
 
    //Создаем новый документ и делаем приложение невидимым
    excel.newFile("", false); 

    while select custTable
    {
        row++;
        column = 1;

        //Колонка 1 - Код клиента
        excel.insertValue(ComExcelDocument_RU::numToNameCell(column,row), custTable.AccountNum);
        column++;
 
        //Колонка 2 - Группа клиентов
        excel.insertValue(ComExcelDocument_RU::numToNameCell(column,row), custTable.CustGroup);
        column++;
    }
 
    //Показываем документ на экране
    excel.visible(true);
}

В результате выполнения данного Job-а сформируется отчет, с двумя колонками, которых будет выведен Код клиента и Группа клиентов соответственно

SampleCOM

Данный метод является довольно простым и позволяет разработчикам быстро создавать наглядные отчеты.

0 ответов

  1. Best Writing Service

    Get an expert academic writing assistance! We can write any post on any subject within the tightest deadline.

  2. Best Writing Service

    Get an expert academic writing assistance. We can write any paper or post on any subject within the tightest deadline.