Когда вы создаете шаблон формы, вы сопоставляете ID с каждым отверстием в шаблоне. ID позволяет вам перемещаться по отверстиям в форме, с помощью moveToNextHole DOM функция.
В первый раз вы выполняете moveToNextHole функция, ДОМ АПИ копирует в выходной документ весь текст в шаблоне до первого отверстия. На данном этапе можно начать добавлять содержимое в выходной документ с помощью append ДОМА функция, таким образом, заполняя первое отверстие.
В следующий раз вы выполняете moveToNextHole функция, ДОМ АПИ копирует весь текст между первым и вторым отверстием в шаблоне к выходному документу. Можно затем заполнить второе отверстие путем добавления содержимого к выходному документу. Таким образом вы генерируете выходной документ путем копирования содержимого с шаблона и заполнения всех его отверстий.
Например, эта функция генерирует отчет из шаблона 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);