Main Content

レポーターとは

レポーターは、MATLAB® Report Generator™ レポート オブジェクトに追加されると書式設定済みコンテンツを生成する MATLAB オブジェクトです。MATLAB Report Generator には、タイトル ページ、目次、章、節、図、および MATLAB 変数の値など、共通のレポート コンポーネントを生成するためのレポーターが用意されています。これらのレポーターのコンテンツと外観はカスタマイズできます。独自のレポーターを作成することもできます。組み込みレポート API オブジェクトの一覧については、次の MATLAB コマンドを入力します。

help mlreportgen.report

レポーターと DOM オブジェクト

レポーターに加えて、MATLAB Report Generator には、レポートのコンテンツを生成するための別の一連のオブジェクトが用意されています。これらのオブジェクトはドキュメント オブジェクト モデル (DOM) オブジェクトです。HTML、Word、およびその他のドキュメント作成ソフトウェアによって使用されるドキュメントのモデルを実装します。モデルは、テキスト文字列、段落、イメージ、およびテーブルなど、ドキュメント内に共通して見つかるオブジェクトの階層としてドキュメントを定義します。DOM API には、これらの基本的なドキュメント オブジェクトを生成するソフトウェアのオブジェクトが含まれます。DOM オブジェクトの一覧については、次の MATLAB コマンドを入力します。

help mlreportgen.dom

一方、レポーターは、タイトル ページ、目次、章など、大まかなドキュメント構造を作成します。これらは多くのタイプのドキュメントに見られますが、すべてのタイプに見られるわけではありません。レポーターの利点は、単一のレポーターで DOM オブジェクトを多数必要とするコンテンツを作成できることです。ただし、Report Generator プログラムには一般的に DOM とレポーターの両方のオブジェクトが必要です。たとえば、章のレポーターはレポートの章のタイトルとページ レイアウトを生成しますが、そのコンテンツは生成しません。DOM API には、レポーターのコンテンツの作成に使用できるテキスト、段落、テーブル、リスト、イメージ、およびその他のオブジェクトが用意されています。

次の MATLAB プログラムは、レポーターと DOM の両方のオブジェクトを使用した PDF レポートの作成を示しています。このプログラムは、DOM Text オブジェクトを使用して、章にテキストのブロックを追加します。この例に含まれるその他のオブジェクト (ReportTitlePageTableOfContentsChapter) は、すべてレポーター オブジェクトです。

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)

Title page of the report with the title "My Report", the author "Myself", and the date

Table of contents listing one chapter

Chapter one has the title "Sample Text" and the text, "here is sample text using a DOM Text object".

レポーター要素

レポーターには一般的に次の要素が含まれます。

  • 外観、固定コンテンツおよび、レポーターで生成される動的コンテンツのホールを定義するテンプレート ドキュメント。レポーターには通常、一連のテンプレート ファイルが、サポートされる次の出力タイプに対して 1 つ用意されています: Word、PDF、および HTML。各テンプレート ファイルには、そのコンテンツを書式設定するレポーターが使用するテンプレートのライブラリが含まれます。たとえば、レポート API TitlePage レポーターは、TitlePage という名前のテンプレートを使用してタイトル ページを書式設定します。TitlePage テンプレートは、そのテンプレート ファイルのテンプレート ライブラリに保存されます。このテンプレートを変更してタイトル ページを再配置したり、タイトル ページにコンテンツを追加することができます。詳細については、テンプレートを参照してください。

  • レポーターによって生成された動的なコンテンツを指定するプロパティ。これらのプロパティはレポーター テンプレートのホールに対応します。レポーターは、対応するプロパティの値でテンプレート ホールを埋めます。

  • レポーターを作成および操作するために使用するレポーターのプロパティとメソッドを定義する MATLAB クラス。レポーターのクラス名は、接頭辞 mlreportgen.report で始まります。たとえば、タイトル ページ レポーターは mlreportgen.report.TitlePage です。スクリプトまたは関数の先頭にこのステートメントを挿入することによって、MATLAB スクリプトまたは関数の接頭辞を省略できます。

    import mlreportgen.report.*
    同様に、import mlreportgen.dom.* を含めることで DOM クラスの省略名を使用できます。

  • レポーター クラスのインスタンスとしてレポーター オブジェクトを作成するコンストラクター メソッド。コンストラクターの名前はクラスの名前と同じです。

  • レポートによって生成されたコンテンツを含む DOM オブジェクト。このオブジェクトはレポーターの実装と呼ばれます。各レポーターには、実装オブジェクト (一般的に DOM DocumentPart オブジェクト) を作成する getImpl メソッドがあります。

MATLAB プログラムでのレポーターの使用

レポート プログラムでコンテンツを生成するには、次の手順に従います。

これらの手順で説明されているプログラムの例は、タイトル ページのみを含むシンプルなドキュメントを作成します。ただし、この手順はレポート全体を作成するためのタスクを示しています。プログラム全体のリストは手順の説明の後に示されます。

レポート オブジェクトの作成

レポート オブジェクト (mlreportgen.report.Report) を作成して、レポートによって生成されたコンテンツを含めます。レポート オブジェクトは、レポーターによって生成されてレポートに追加されるコンテンツを DOM Document オブジェクトを使用して保持します。このコードはレポート API 名前空間をインポートします。このパッケージでは、コードでクラスの省略名を使用することができます。その後、PDF レポート オブジェクト (rpt) を作成します。

import mlreportgen.report.*
rpt = Report('myReport','pdf');

レポーターのインスタンスの作成

レポーター クラスのインスタンスを作成します。つまり、そのコンストラクターを使用してレポーターをインスタンス化します。コンストラクターは作成するレポーター オブジェクトのプロパティを設定することもできます。たとえば、このコードはタイトル ページ レポーター (tp) を作成して、その TitleAuthor のプロパティを設定します。

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 メソッドは、レポート オブジェクトの実装として機能する DOM Document オブジェクトに実装を追加します。append メソッドを使用して、レポートに DOM オブジェクトを追加することもできます。ただし、レポートに別の DOM Document を追加することはできません。

たとえば、このコードはレポート (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)

Report title page with the title "My Report on My Project", the author "John Smith", and the date

参考

| | |

関連するトピック