Шаблон реализации вывода данных в MS Word в Dynamics AX

Рассмотрим реализацию вывода данных в MS Word на основе класса ComWordDocument_RU в Dynamics AX 2012.Разберемся на примере простого документа, такого как расписка, в котором выводятся номер акта, его дата, сумма и т. п.

Для начала создадим шаблон в MS Word для печати документа:

После того как постоянный текст расписки готов необходимо дать имена «закладкам». Это нужно для того, чтобы понимать, в какую часть документа нужно вывести те или иные данные из Dynamics AX.

Для этого выделяем определенную область документа и нажимаем кнопку Вставка->Ссылки->Закладка. Далее в открывшемся окне прописываем новое имя закладки и нажимаем кнопку Добавить.

Мы добавили несколько закладок в документ.

Теперь необходимо добавить созданный шаблон в AOT\Resources. Назовём новый элемент TutorialNettingAct.

Теперь можно перейти непосредственно к части, которая относится к коду X++.

Ниже представлен листинг джоба, в котором выполняется печать документа.

static void Job_TutorialNettingAct(Args _args)
{
    FileName                    template;
    Com                         applCom;
    ComWordDocument_RU          wordDoc;
    str                         docNum,
                                contragent,
                                amountStr;
    TransDate                   docDate;
    Amount                      amount;
    ;

    template    = AOTResourceTemplateProvider_RU::construct().get(resourceStr(TutorialNettingAct));

    try
    {

        wordDoc = new ComWordDocument_RU();
        wordDoc.newFile(template, true);

        applCom = wordDoc.getApplication();
        applCom.displayAlerts(false);

        wordDoc.insertValue('DocNum',       docNum);
        wordDoc.insertValue('DocDate',      docDate);
        wordDoc.insertValue('Contragent',   contragent);
        wordDoc.insertValue('Amount',       amount);
        wordDoc.insertValue('AmountStr',    amountStr);
    }
    catch
    {
        error('Ошибка при создании документа');
        
        if (wordDoc)
        {
            wordDoc.quitApplication();
            wordDoc.finalize();
            wordDoc = null;
        }
    }

    if (applCom)
    {
        applCom = null;
    }
}

Как мы видим вывод данных в MS Word  по средствам стандартного класса ComWordDocument_RU является простым и эффективным способом.

 

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar