Рассмотрим реализацию вывода данных в 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 является простым и эффективным способом.
Все комментарии
Чтобы оставить комментарий, необходимо войти или зарегистрироваться.
Пока нет комментариев. Будьте первым!