ChangeSynergy::ReportEntry
ChangeSynergy::ReportEntry 类是从服务器导入或导出报告时所使用的一部分类集合。所有 ReportEntry 对象都包含一个 QueryEntry 对象,以及一个或多个 SubReportEntry 对象。这些对象组成一个标准的 Change 报告配置项。该类表示如下所示的“列”报告的 CCM_REPORT 项。
[CCM_REPORT] [NAME]Column[/NAME] [QUERY]All CRs[/QUERY] [PROBLEM_DEF]column_cr[/PROBLEM_DEF] [EXPORT_FORMAT]HTML[/EXPORT_FORMAT] [INCREMENTAL]true[/INCREMENTAL] [INCREMENT_SIZE]20[/INCREMENT_SIZE] [IMAGE_PATH]columnFormat.png[/IMAGE_PATH] [CUSTOM_DISPLAY_ORDER]0[/CUSTOM_DISPLAY_ORDER] [DESCRIPTION] Custom report format that allows you to select a list of problem attributes. Problem number and status are linked to other forms. [/DESCRIPTION] [/CCM_REPORT]
虽然手动创建所有这三种类是可能的,但是最好仅导出报告进行修改,然后再导入,或将其导出到文件中进行修改,然后再导入。虽然这三种类的所有设置都可以更改,但是许多设置不应该进行更改,除非您非常确定此操作。更改这些项与更改预定义系统报告的配置文件设置一样。
示例:
eval { $csapi->setUpConnection("http", "machine", 8600);
my $aUser = $csapi->Login("u00001", "u00001", "User", "\\\\machine\\ccmdb\\cm_database");
#Construct a new Globals object. my $globals = new ChangeSynergy::Globals(); #Export a CR report named 'Column' from the sysetm configuration my $reportEntry = $csapi->exportAReport($aUser, "Column", $globals->{PROBLEM_TYPE}, $globals->{SYSTEM_CONFIG}); print "\nreportEntry->getName : " . $reportEntry->getName(); print "\nreportEntry->getBaseName : " . $reportEntry->getBaseName(); print "\nreportEntry->getReportTemplate: " . $reportEntry->getReportTemplate(); print "\nreportEntry->getExportFormat : " . $reportEntry->getExportFormat(); print "\nreportEntry->getMaxQuery : " . $reportEntry->getMaxQuery(); print "\nreportEntry->getMaxString : " . $reportEntry->getMaxString(); print "\nreportEntry->getDescription : " . $reportEntry->getDescription(); print "\nreportEntry->getIncrementSize : " . $reportEntry->getIncrementSize(); print "\nreportEntry->getIncremental : " . $reportEntry->getIncremental(); print "\nreportEntry->getStyle : " . $reportEntry->getStyle(); print "\nreportEntry->getCustomDisOrder: " . $reportEntry->getCustomDisplayOrder(); print "\nreportEntry->getImagePath : " . $reportEntry->getImagePath(); };
if ($@) { print $@; }
标量 |
getBaseName() 获取该报告所基于的报告的名称。如果不基于任何报告,则将返回与 getName 相同的值。 |
标量 |
getCustomDisplayOrder() 获取界面中特别报告格式应该显示的顺序(从 0 开始)。 |
标量 |
getDescription() 获取报告的描述。 |
标量 |
getExportFormat() 获取报告的导出格式,定义报告结果的文件扩展名。 |
标量 |
getIncremental() 获取该报告是否使用标记页数,值为 true 或 false。 |
标量 |
getIncrementSize() 获取标记页数报告每页上项目的数量。 |
标量 |
getMaxString() 获取检索数据类型为 TEXT 的属性的最大字符数量。 |
标量 |
getMaxQuery() 获取该报告允许从数据库返回的最大结果数量。 |
标量 |
getName() 获取报告的名称,在上面的配置示例中,这是 NAME 标记中的数据。用户将在报告界面上看到这个名称。 |
标量 |
getQueryEntry() 获取表示该报告链接的 CCM_QUERY 配置定义的 L<QueryEntry> 对象, |
标量 |
getReportTemplate() 获取当单击报告界面上的报告名称时所装入的模板的名称。 |
标量 |
getStyle() 获取当前仅用于图表和矩阵报告的报告的样式类型。 |
数组 |
getSubReports() 获取定义该报告 PROBLEM_DEF、TASK_DEF 和 OBJECT_DEF 项的 L<SubReportEntry> 对象的数组。 |
空 |
setBaseName(scalar baseName) 设置该报告所基于的报告的名称。要导入和导出报告,不需要将该方法设置为导出和导入报告以导出所有配置项,从而不需要查找任何基本报告项。 |
空 |
setCustomDisplayOrder(scalar baseName) 设置界面中特别报告格式应该显示的顺序(从 0 开始)。 |
空 |
setDescription(scalar description) 设置此报告的描述,该描述是当最终用户选择此报告时应该在报告界面中看到的文本。 |
空 |
setExportFormat(scalar exportFormat) 设置报告的导出格式,定义报告结果的文件扩展名。例如,“HTML”或“TXT”。 |
空 |
setIncremental(scalar incremental) 设置该报告是否使用标记页数,值为 true 或 false。 |
空 |
setIncrementSize(scalar incrementSize) 设置标记页数报告每页上项目的数量。 |
空 |
setMaxString(scalar maxString) 设置检索数据类型为 TEXT 的属性的最大字符数量。 |
空 |
setMaxQuery(scalar maxQuery) 设置该报告允许查询函数返回的最大结果数量。 |
空 |
setName(scalar reportName) 设置报告的名称,在上面的配置示例中,这是 NAME 标记中的数据。 用户将在报告界面上看到这个名称。 |
空 |
setQueryEntry(scalar queryEntry) 设置表示该报告链接的 CCM_QUERY 配置定义的 L<QueryEntry> 对象。 |
空 |
setReportTemplate(scalar reportTemplate) 设置当单击报告界面上的报告名称时所装入的模板的名称。报告模板示例为“TrendWithBreakdown”。 |
空 |
setStyle(scalar style) 设置当前仅用于图表和矩阵报告的报告的样式类型。 |
空 |
setSubReports(array subreports) 设置定义该报告 PROBLEM_DEF、TASK_DEF 和 OBJECT_DEF 项的 L<SubReportEntry> 对象的数组。 |
空 |
toXml(scalar xmlData) 将 ReportEntry、QueryEntry 及所有 SubReportEntry 转换为 XML 字符串,以便保存到文件系统并重新装入以重构 ReportEntry 对象。 |
获取该报告所基于的报告的名称。如果不基于任何报告,则将返回与 getName 相同的值。
返回:标量 基本报告的名称。
获取界面中特别报告格式应该显示的顺序(从 0 开始)。
返回:标量 界面中特别报告应该显示的顺序(从 0 开始)。
获取报告的描述。当用户单击报告时,该描述将显示在 Change 报告界面中。
返回:标量 报告的描述。
获取报告的导出格式,定义报告结果的文件扩展名。
返回:标量 导出格式或文件扩展名。
获取该报告是否使用标记页数,值为 true 或 false。
返回:标量 如果报告使用标记页数,则为 true ,否则为 false。
获取标记页数报告每页上项目的数量。
返回:标量 标记页数报告上显示的最大项目数量。
获取检索数据类型为 TEXT 的属性的最大字符数量。
返回:标量 属性返回的最大字符数量。
获取该报告允许从数据库返回的最大结果数量。
返回:标量 返回的最大结果数量。
获取报告的名称,该名称将显示在 Change 报告界面中。
返回:标量 报告的名称。
获取表示该报告链接的 CCM_QUERY 配置定义的 QueryEntry 对象。
返回:标量 报告的查询项。
获取当单击报告界面上的报告名称时所装入的模板的名称。在运行报告前,报告模板通常会要求用户提供更多的信息。报告模板示例为“TrendWithBreakdown”。
返回:标量 报告模板的名称。
获取当前仅用于图表和矩阵报告的报告的样式类型。
返回:标量 报告的样式。
获取定义该报告 PROBLEM_DEF、TASK_DEF 和 OBJECT_DEF 项的 SubReportEntry 对象的数组。
返回:数组 子报告项的数组。
设置该报告所基于的报告的名称。要导入和导出报告,不需要将该方法设置为导出和导入报告以导出所有配置项,从而不需要查找任何基本报告项。
参数: 标量:基本报告的名称。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setBaseName("Column");
设置界面中特别报告格式应该显示的顺序(从 0 开始)。该设置仅适用于单击界面上的“新建”链接时显示的报告格式。
参数: 标量:报告应显示的编号。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setCustomDisplayOrder("12");
设置最终用户将在 Change 报告界面中看到的报告描述文本。
参数: 标量:报告的描述。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setDescription("HTML");
设置报告的导出格式,定义报告结果的文件扩展名。例如,“HTML”或“TXT”。
参数: 标量:导出格式类型。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setExportFormat("HTML");
设置该报告是否使用标记页数,值为 true 或 false。
参数: 标量:如果报告使用标记页数,则为 true,否则为 false。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setIncremental("true");
设置标记页数报告每页上项目的数量。
参数: 标量:标记页数报告每页显示的最大结果数量。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setIncrementSize("20");
设置数据类型为 TEXT 的属性可返回的最大字符数量。如果属性包含的字符数量大于最大数量,则超出的部分将被截断。如果忽略该设置,则报告将使用 pt.cfg 文件中定义的 MAX_STRING。
参数: 标量:TEXT 类型允许的最大字符数量。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setMaxString("32000");
设置该报告允许查询函数返回的最大结果数量。如果查询查找到的结果比最大数量还多,则将错误返回给用户,告诉他们查找到过多结果。如果忽略该设置,则报告将使用 pt.cfg 文件中定义的 MAX_QUERY 。
参数: 标量:允许的最大结果数量。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setMaxQuery("2000");
设置报告的名称,该名称将显示在 Change 报告界面中。报告名称必须是唯一的,否则 csapiimportAReport 将失败。
参数: 标量:导入报告时报告具有的名称。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setName("Imported Report");
设置表示该报告链接的 CCM_QUERY 配置定义的 QueryEntry 对象。报告必须包含一个查询项,因为查询项包含将用于运行报告的查询字符串。
参数: 标量:包含该报告查询信息的查询项。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); my $queryEntry = new ChangeSynergy::QueryEntry(); $queryEntry->setName("query"); $queryEntry->setQueryString("()cvtype='problem')"); $reportEntry->setQueryEntry($queryEntry);
获取当单击报告界面上的报告名称时所装入的模板的名称。在运行报告前,报告模板通常会要求用户提供更多的信息。报告模板示例为“TrendWithBreakdown”。
参数: 标量:报告模板的名称。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setReportTemplate("TrendWithBreakdown");
设置当前仅用于图表和矩阵报告的报告的样式类型。有效值为 VBarChart、HBarChart、LineChart、PieChart 和 Matrix。
参数: 标量:报告的样式。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); $reportEntry->setStyle("VBarChart");
设置定义该报告的 PROBLEM_DEF、TASK_DEF 和 OBJECT_DEF 项的 SubReportEntry 对象的数组。所有报告必须至少包含一个子报告项。
参数: 数组:子报告项的列表。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); my @subReports = (); push @subReports, new ChangeSynergy::SubReportEntry(CCM_PROBLEM, CCM_TASK or CCM_OBJECT entry); $reportEntry->setSubReports(\@subreports);
将 ReportEntry、QueryEntry 及所有 SubReportEntry 转换为 XML 字符串,以便保存到文件系统并重新装入以重构 ReportEntry 对象。
返回:数组 表示对象的 XML 数据。
示例: my $reportEntry = $csapi->exportAReport($aUser, "My Report", $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE}); my $file = $reportEntry->getName() . ".xml"; open(OUTPUT, ">$file"); print(OUTPUT $reportEntry->toXml()); close(OUTPUT);