このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
レポーターは、MATLAB®Report Generator™レポート オブジェクトに追加されると書式設定済みコンテンツを生成する MATLAB オブジェクトです。MATLAB Report Generator には、タイトル ページ、目次、章、サブセクション、図、および MATLAB 変数の値など、共通のレポート コンポーネントを生成するためのレポーターが用意されています。これらのレポーターのコンテンツと外観はカスタマイズできます。独自のレポーターを作成することもできます。組み込みレポート API オブジェクトの一覧については、次の MATLAB コマンドを入力します。
help mlreportgen.report
レポーターに加えて、MATLAB Report Generatorには、レポートのコンテンツを生成するための別の一連のオブジェクトが用意されています。これらのオブジェクトはドキュメント オブジェクト モデル (DOM) オブジェクトです。HTML、Word、およびその他のドキュメント作成ソフトウェアによって使用されるドキュメントのモデルを実装します。モデルは、テキスト文字列、段落、イメージ、およびテーブルなど、ドキュメント内に共通して見つかるオブジェクトの階層としてドキュメントを定義します。DOM API には、これらの基本的なドキュメント オブジェクトを生成するソフトウェアのオブジェクトが含まれます。DOM オブジェクトの一覧については、次の MATLAB コマンドを入力します。
help mlreportgen.dom
一方,レポーターは,タイトルページ,目次,章など,大まかなドキュメント構造を作成します。これらは多くのタイプのドキュメントに見られますが、すべてのタイプに見られるわけではありません。レポーターの利点は、単一のレポーターで DOM オブジェクトを多数必要とするコンテンツを作成できることです。ただし、Report Generator プログラムには一般的に DOM とレポーターの両方のオブジェクトが必要です。たとえば、章のレポーターはレポートの章のタイトルとページ レイアウトを生成しますが、そのコンテンツは生成しません。DOM API には、レポーターのコンテンツの作成に使用できるテキスト、段落、テーブル、リスト、イメージ、およびその他のオブジェクトが用意されています。
次の MATLAB プログラムは、レポーターと DOM の両方のオブジェクトを使用した PDF レポートの作成を示しています。このプログラムは、DOMText
オブジェクトを使用して、章にテキストのブロックを追加します。この例に含まれるその他のオブジェクト (Report
、TitlePage
、TableOfContents
、Chapter
) は、すべてレポーター オブジェクトです。
rpt = mlreportgen.report.Report('myreport','pdf'); append(rpt,mlreportgen.report.TitlePage('Title','My Report',... 'Author','Myself')) append(rpt,mlreportgen.report.TableOfContents) ch = mlreportgen.report.Chapter('Title','Sample Text'); append(ch,mlreportgen.dom.Text... ('Here is sample text using a DOM Text object.')) append(rpt,ch) close(rpt) rptview(rpt)
レポーターには一般的に次の要素が含まれます。
外観、固定コンテンツおよび、レポーターで生成される動的コンテンツのホールを定義するテンプレート ドキュメント。レポーターには通常、一連のテンプレート ファイルが、サポートされる次の出力タイプに対して 1 つ用意されています: Word、PDF、および HTML。各テンプレート ファイルには、そのコンテンツを書式設定するレポーターが使用するテンプレートのライブラリが含まれます。たとえば、レポート APITitlePage
レポーターは、TitlePage
という名前のテンプレートを使用してタイトル ページを書式設定します。TitlePage
テンプレートは、そのテンプレート ファイルのテンプレート ライブラリに保存されます。このテンプレートを変更してタイトル ページを再配置したり、タイトル ページにコンテンツを追加することができます。詳細については、テンプレートを参照してください。
レポーターによって生成された動的なコンテンツを指定するプロパティ。これらのプロパティはレポーターテンプレートのホールに対応します。レポーターは、対応するプロパティの値でテンプレート ホールを埋めます。
レポーターを作成および操作するために使用するレポーターのプロパティとメソッドを定義する MATLAB クラス。レポーターのクラス名は、接頭辞mlreportgen.report
で始まります。たとえば、タイトル ページ レポーターはmlreportgen.report.TitlePage
です。スクリプトまたは関数の先頭にこのステートメントを挿入することによって、MATLAB スクリプトまたは関数の接頭辞を省略できます。
import mlreportgen.report.*
import mlreportgen.dom.*
を含めることで DOM クラスの省略名を使用できます。レポーター クラスのインスタンスとしてレポーター オブジェクトを作成するコンストラクター メソッド。コンストラクターの名前はクラスの名前と同じです。
レポートによって生成されたコンテンツを含む DOM オブジェクト。このオブジェクトはレポーターの実装と呼ばれます。各レポーターには、実装オブジェクト (一般的に DOMDocumentPart
オブジェクト) を作成するgetImpl
メソッドがあります。
レポート プログラムでコンテンツを生成するには、次の手順に従います。
これらの手順で説明されているプログラムの例は、タイトル ページのみを含むシンプルなドキュメントを作成します。ただし、この手順はレポート全体を作成するためのタスクを示しています。プログラム全体のリストは手順の説明の後に示されます。
レポート オブジェクト (mlreportgen.report.Report
) を作成して、レポートによって生成されたコンテンツを含めます。レポート オブジェクトは、レポーターによって生成されてレポートに追加されるコンテンツを DOMDocument
オブジェクトを使用して保持します。このコードはレポート API パッケージをインポートします。このパッケージでは、コードでクラスの省略名を使用することができます。その後、PDF レポート オブジェクト (rpt
) を作成します。
import mlreportgen.report.* rpt = Report('myReport','pdf');
レポーター クラスのインスタンスを作成します。つまり、そのコンストラクターを使用してレポーターをインスタンス化します。コンストラクターは作成するレポーター オブジェクトのプロパティを設定することもできます。たとえば、このコードはタイトル ページ レポーター (tp
) を作成して、そのTitle
とAuthor
のプロパティを設定します。
tp = TitlePage('Title','My Report','Author','John Smith');
プログラムがレポーターを作成した後にレポーター プロパティを設定するには、プログラムは MATLAB ドット表記を使用します。たとえば、このコードはTitlePage
レポーター (tp
) のSubtitle
およびPubDate
プロパティを設定します。
tp.Subtitle = 'on My Project'; tp.PubDate = date;
レポーターを使用してコンテンツを生成するには、レポート プログラムではレポート オブジェクトのappend
メソッドを使用して、レポート オブジェクトにレポーターを追加しなければなりません。append
メソッドは、レポーターのgetImpl
メソッドを呼び出すことで機能します。getImpl
メソッドはレポーターの実装を作成します。その後、append
メソッドは、レポート オブジェクトの実装として機能する DOMDocument
オブジェクトに実装を追加します。append
メソッドを使用して、レポートに DOM オブジェクトを追加することもできます。ただし、レポートに別の DOMDocument
を追加することはできません。
たとえば、このコードはレポート (rpt
) にタイトル ページ レポーター (tp
) を追加します。
append(rpt,tp)
レポート プログラムがレポートへのコンテンツの追加を終了したら、レポート オブジェクトのclose
メソッドを使用してレポートを閉じなければなりません。レポートを閉じてレポート オブジェクトのコンストラクターで指定された PDF などのタイプのドキュメント ファイルにレポート コンテンツを書き込みます。
close(rpt)
このコードは、レポート用の完全なプログラムです。これにはタイトル ページのみが含まれます。
import mlreportgen.report.* rpt = Report('myReport','pdf'); tp = TitlePage('Title','My Report',... 'Author','John Smith'); tp.Subtitle = 'on My Project'; tp.PubDate = date; append(rpt,tp) close(rpt) rptview(rpt)
mlreportgen.report.TitlePage
|mlreportgen.report.Report
|mlreportgen.report.TableOfContents
|mlreportgen.dom.Text