名称

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 对象。


方法


getBaseName

获取该报告所基于的报告的名称。如果不基于任何报告,则将返回与 getName 相同的值。

 返回:标量
基本报告的名称。	


getCustomDisplayOrder

获取界面中特别报告格式应该显示的顺序(从 0 开始)。

 返回:标量
界面中特别报告应该显示的顺序(从 0 开始)。
		


getDescription

获取报告的描述。当用户单击报告时,该描述将显示在 Change 报告界面中。

 返回:标量
报告的描述。	


getExportFormat

获取报告的导出格式,定义报告结果的文件扩展名。

 返回:标量
导出格式或文件扩展名。


getIncremental

获取该报告是否使用标记页数,值为 true 或 false。

 返回:标量
如果报告使用标记页数,则为 true ,否则为 false。


getIncrementSize

获取标记页数报告每页上项目的数量。

 返回:标量
标记页数报告上显示的最大项目数量。	


getMaxString

获取检索数据类型为 TEXT 的属性的最大字符数量。

 返回:标量
属性返回的最大字符数量。	


getMaxQuery

获取该报告允许从数据库返回的最大结果数量。

 返回:标量
返回的最大结果数量。


getName

获取报告的名称,该名称将显示在 Change 报告界面中。

 返回:标量
报告的名称。	


getQueryEntry

获取表示该报告链接的 CCM_QUERY 配置定义的 QueryEntry 对象。

 返回:标量
报告的查询项。	


getReportTemplate

获取当单击报告界面上的报告名称时所装入的模板的名称。在运行报告前,报告模板通常会要求用户提供更多的信息。报告模板示例为“TrendWithBreakdown”。

 返回:标量
报告模板的名称。


getStyle

获取当前仅用于图表和矩阵报告的报告的样式类型。

 返回:标量
报告的样式。	


getSubReports

获取定义该报告 PROBLEM_DEF、TASK_DEF 和 OBJECT_DEF 项的 SubReportEntry 对象的数组。

 返回:数组

子报告项的数组。	


setBaseName

设置该报告所基于的报告的名称。要导入和导出报告,不需要将该方法设置为导出和导入报告以导出所有配置项,从而不需要查找任何基本报告项。

 参数:
标量:基本报告的名称。	
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setBaseName("Column");


setCustomDisplayOrder

设置界面中特别报告格式应该显示的顺序(从 0 开始)。该设置仅适用于单击界面上的“新建”链接时显示的报告格式。

 参数:
标量:报告应显示的编号。
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setCustomDisplayOrder("12");


setDescription

设置最终用户将在 Change 报告界面中看到的报告描述文本。

 参数:
标量:报告的描述。	
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setDescription("HTML");


setExportFormat

设置报告的导出格式,定义报告结果的文件扩展名。例如,“HTML”或“TXT”。

 参数:
标量:导出格式类型。	
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setExportFormat("HTML");


setIncremental

设置该报告是否使用标记页数,值为 true 或 false。

 参数:
标量:如果报告使用标记页数,则为 true,否则为 false。
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setIncremental("true");


setIncrementSize

设置标记页数报告每页上项目的数量。

 参数:
标量:标记页数报告每页显示的最大结果数量。	
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setIncrementSize("20");


setMaxString

设置数据类型为 TEXT 的属性可返回的最大字符数量。如果属性包含的字符数量大于最大数量,则超出的部分将被截断。如果忽略该设置,则报告将使用 pt.cfg 文件中定义的 MAX_STRING。

 参数:
标量:TEXT 类型允许的最大字符数量。
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setMaxString("32000");


setMaxQuery

设置该报告允许查询函数返回的最大结果数量。如果查询查找到的结果比最大数量还多,则将错误返回给用户,告诉他们查找到过多结果。如果忽略该设置,则报告将使用 pt.cfg 文件中定义的 MAX_QUERY 。

 参数:
标量:允许的最大结果数量。
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setMaxQuery("2000");


setName

设置报告的名称,该名称将显示在 Change 报告界面中。报告名称必须是唯一的,否则 csapiimportAReport 将失败。

 参数:
标量:导入报告时报告具有的名称。
 示例:
	

	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setName("Imported Report");


setQueryEntry

设置表示该报告链接的 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);


setReportTemplate

获取当单击报告界面上的报告名称时所装入的模板的名称。在运行报告前,报告模板通常会要求用户提供更多的信息。报告模板示例为“TrendWithBreakdown”。

 参数:
标量:报告模板的名称。	
 示例:
	
	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setReportTemplate("TrendWithBreakdown");


setStyle

设置当前仅用于图表和矩阵报告的报告的样式类型。有效值为 VBarChart、HBarChart、LineChart、PieChart 和 Matrix。

 参数:
标量:报告的样式。	
 示例:
	
	my $reportEntry = $csapi->exportAReport($aUser, "My Report",  $globals->{PROBLEM_TYPE}, $globals->{SHARED_PROFILE});
	$reportEntry->setStyle("VBarChart");


setSubReports

设置定义该报告的 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);


toXml

将 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);