手順
部門データに関連する情報を対応ステータスとともにレポートに追加するとします。委任を作成し、EquivalenceReportDelegate を拡張することで、これを行うことができます。
WTPart 以外のオブジェクトタイプのレポートをエクスポートする場合、MPMLReportDelegate を拡張し、実装を提供します。
1. enumCustomize ユーティリティを実行し、$WT_HOME/codebase/com/ptc/windchill/mpml/client/reports にある MPMLinkReportTypeRB.rbInfo ファイルを開きます。
2. PFDINFO などの新規レポートのタイプを作成します。
3. CustomReportDelegate などの新規委任を作成します。
4. WT_HOME/codebase/com/ptc/windchill/mpml/xconfs にある mpmlink.service.properties.xconf ファイルに委任に関する情報を追加します。
指定されているサービスの下に次のエントリを追加します。
<Service context="default" name="com.ptc.windchill.mpml.reports.MPMLReportDelegate">
<Option cardinality="singleton" requestor="wt.part.WTPart" selector="PFDINFO" serviceClass="com.ptc.windchill.mpml.reports.CustomReportDelegate"/>
セレクタの値は、MPMLinkReportTypeRB.rbInfo ファイルで指定されているタイプと一致していなければなりません。別のオブジェクトタイプのレポートを生成する場合、リクエスタのエントリにそのタイプの内部名が含まれていなければなりません。
5. CustomReportDelegate で以下のメソッドをオーバーライドします。
◦ protected List<String> getHeaders() throws WTException;
レポートに必要なヘッダーを返すロジックを指定します。getRowToWrite オーバーライドすることによってコラムを追加できます。
◦ protected abstract RowData getRoot(Persistable seed, ReportParams params) throws WTException;
このメソッドを拡張して、ルートノードのデータを rowData に追加します。
◦ protected abstract List<RowData> getChildren(List<RowData> parents, ReportParams params) throws WTException;
子ノードのデータを取得するメソッドです。このメソッドは、構造全体のデータを収集するために再帰的に呼び出されます。このメソッドを拡張して、子ノードのデータを rowData に追加できます。
◦ protected abstract List<String> getRowToWrite(RowData rowData, ReportParams params) throws WTException;
レポートにエクスポートする値のリストを返すロジックを指定します。ここでカスタムコラムの値を追加できます。ただし、レポート内のコラムに従って値の順序を維持しなければなりません。
◦ protected abstract void validateAndPopulateParams(ReportParams params) throws WTException;
指定されているルートが委任でサポートされているかどうかを検証します。ここで独自の検証を追加できます。
以下のメソッドはオプションです。これらのメソッドをオーバーライドしない場合、既成の実装が使用されます。
◦ protected boolean isValidForReport(NavigationUnit navUnit);
独自の基準に従って、レポートに追加されないように、特定のナビゲーション単位をスキップします。デフォルトでは、このメソッドは true を返します。ここで独自の実装を提供します。
◦ protected String getFilePrefix();
レポートファイルのプレフィックスを返します。デフォルトのプレフィックスは MPMLinkReport です。ここで独自の実装を追加できます。
◦ protected ExportListWriter getExporter() throws ExportException;
必要なレポートのタイプのエクスポータを返します。ここで独自の実装を追加できます。たとえば、CSV レポートの場合は ExportFileType.CSV.toString() を使用します。
◦ protected List<TypeIdentifier> getReportForTypes() throws WTException;
レポートを取得するオブジェクトタイプのリストを返します。
上の手順を実行した後、CustomReportDelegate クラスは次のように表示されます。