Main Content

fill

クラス: mlreportgen.dom.Document
名前空間: mlreportgen.dom

ドキュメント ホールを生成コンテンツで埋める

説明

fill(form) は、DOM ベースのフォームのホールを生成コンテンツで埋めます。次のクラスのいずれかから派生させたクラスでこのメソッドを使用します。

メモ

派生クラスでのみこのメソッドを使用します。DOM クラスのインスタンスでこのメソッドを呼び出すと、エラーになります。

このメソッドは、インスタンスのテンプレートにある各ホールの派生クラスで、次のシグネチャをもつメソッドが定義されていることを前提としています。

fillHoleId(d)
HoleId は、ドキュメントのテンプレートで定義されているホールの ID です。d は派生クラスのインスタンスです。fill メソッドは、対応する fillHoleId メソッドを各ホールで呼び出しながら、ドキュメントの最初のホールから最後のホールまで移動します。このようにして、ループ処理なしでホールを埋めるメソッドを定義できます。fill メソッドでは、ホールからホールへと移動してテンプレートを埋めます。

入力引数

すべて展開する

ホールが埋められるフォーム。文字ベクトルとして指定します。

すべて展開する

この例では、Word テンプレートの CustomerName のホールを埋めるレポートを定義する方法を示します。

CustomerName のホールをもつテンプレートを作成します。この例では、CustomerLetter.dotx という Word テンプレートがあることを前提としています。

ファイルに、mlreportgen.dom.Document から派生させたレポート クラスを作成します。MATLAB® ツールストリップから [新規][クラス] を選択し、クラスを定義します。例:

classdef MyReport < mlreportgen.dom.Document
    %MYREPORT defines a customize letter to customers
    %   
    % rpt = MyReport('mydoc','docx','CustomerLetter');
    % rpt.CustomerName = 'Smith';
    % fill(rpt);
    
    properties
        CustomerName;
    end
    
    methods
        function rpt = MyReport(filename,type,template)
          rpt = rpt@mlreportgen.dom.Document(filename,type,template);
        end
        
        function fillCustomerName(rpt)
          append(rpt,rpt.CustomerName);
        end
    end
    
end

レポートを使用します。

rpt = MyReport('mydoc','docx','CustomerLetter');
rpt.CustomerName = 'Mr. Smith';
fill(rpt);

ヒント

派生クラスで、テンプレートの各ホールにコンテンツを挿入するための fill メソッドを定義します。次のシグネチャを使用します。

fillHOLE_ID(docObj);

HOLE_ID は、ドキュメントが使用するテンプレートによって定義されたホールの ID であり、docObj は派生クラスのインスタンスです。fill メソッドは、派生させた Document オブジェクトで呼び出すと、対応する fillHOLE_ID メソッドを各ホールで呼び出しながら、ドキュメントの最初のホールから最後のホールに移動します。この方法により、テンプレートの複数のホールをループ処理するための追加のコードが不要になります。

バージョン履歴

R2014b で導入