Main Content

レポート フォームの穴埋め

フォーム テンプレートを作成するときに、テンプレートの ID と各ホールを関連付けます。この ID により、DOM の関数 moveToNextHole を使用して、フォーム内のホールを移動できます。

関数 moveToNextHole を最初に実行するとき、DOM API はテンプレート内にある最初のホールまでのすべてのテキストを出力ドキュメントにコピーします。この時点で、DOM の関数 append を使用して、出力ドキュメントへのコンテンツの追加を開始できます。それにより、最初のホールが埋まります。

関数 moveToNextHole を次に実行すると、DOM API はテンプレート内の最初のホールと 2 番目のホールの間にあるすべてのテキストを出力ドキュメントにコピーします。その後、コンテンツを出力ドキュメントに追加して、2 番目のホールを埋めることができます。このように、テンプレートからコンテンツをコピーしてすべてのホールを埋めることで、出力ドキュメントを生成します。

たとえば、次の関数は、TitleAuthor および Content という名前のホールがある Word テンプレートからレポートを生成します。引数 titleauthor および 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);

参考

関数

関連する例

詳細