高级自定义 > 业务逻辑自定义 > 自定义 MPMLink > 配置导出报告委派 > 过程
  
过程
假设您想要添加与部门数据相关的信息以及报告中的对等项状况。可通过创建委派并扩展 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\xconfsmpmlink.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"/>
selector 值应与 MPMLinkReportTypeRB.rbInfo 文件中给定的类型相匹配。如果要为不同的对象类型生成报告,则 requestor 条目应包含该类型的内部名称。
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 类,如下所示: