При создании шаблона формы идентификатор связывается с каждым отверстием в шаблоне. Идентификатор позволяет перемещаться по отверстиям в форме с помощью DOM moveToNextHole функция.
При первом выполнении moveToNextHole Функция DOM API копирует в выходной документ весь текст в шаблоне вплоть до первого отверстия. На этом этапе можно начать добавление содержимого в выходной документ с помощью DOM. append функция, тем самым заполняя первое отверстие.
При следующем выполнении moveToNextHole Функция DOM API копирует весь текст между первым и вторым отверстиями в шаблоне в выходной документ. Затем можно заполнить второе отверстие путем добавления содержимого к выходному документу. Таким образом, выходной документ создается путем копирования содержимого из шаблона и заполнения всех его отверстий.
Например, эта функция создает отчет из шаблона Word, имеющего отверстия с именем Title, Author, и Content. Аргументы title, author, и content, считаются векторами символов.
function makerpt(title,author,content,rptname,rpttemplate) import mlreportgen.dom.* rpt = Document(rptname,'docx',rpttemplate); while ~strcmp(rpt.CurrentHoleId,'#end#') switch rpt.CurrentHoleId case 'Title' append(rpt,title); case 'Author' append(rpt,author); case 'Content' append(rpt,content); end moveToNextHole(rpt); end close(rpt);