Rational ClearQuest 클라이언트는 그래픽 사용자 인터페이스(GUI) 환경에서 강력한 보고서 작성 기능을 제공합니다. Rational® ClearQuest® API도 프로그램적 보고 기능을 지원합니다.
경우에 따라서는 잘 형식화된 보고서가 아니라 원리 결과만 필요할 수 있습니다. 다음 서브루틴은 외부 애플리케이션입니다.
VBScript 및 Perl 코드 예제 뒤에는 다음을 설명하는 추가적인 Perl 코드 예제가 있습니다.
Sub RunBasicQuery(session, querydef) ' The parameters to this subroutine are a Session object and a ' QueryDef object. It is assumed that the QueryDef is valid (for ' example, BuildField has been used to select one or more fields ' to retrieve). Dim rsltset ' a ResultSet object Dim status ' a Long Dim column ' a Long Dim num_columns ' a Long Dim num_records ' a Long Set rsltset = session.BuildResultSet(querydef) rsltset.Execute StdOut "primary entity def for query == " & _ rsltset.LookupPrimaryEntityDefName num_columns = rsltset.GetNumberOfColumns num_records = 0 status = rsltset.MoveNext Do While status = AD_SUCCESS num_records = num_records + 1 StdOut "Record #" & num_records ' Note: result set indices are based 1..N, not the usual ' 0..N-1 column = 1 Do While column <= num_columns ' ToStr converts the argument to a string StdOut " " & rsltset.GetColumnLabel(column) & "=" & _ ToStr(rsltset.GetColumnValue(column)) column = column + 1 Loop StdOut "" status = rsltset.MoveNext Loop End Sub REM Start of Global Script StdOut sub StdOut(Msg) msgbox Msg end sub REM End of Global Script StdOut
sub RunBasicQuery { my($session)=@_[0]; my($querydef)=@_[1]; # The parameters to this subroutine are a Session object # and a QueryDef object. It is assumed that the QueryDef # is valid (for example, BuildField has been used to select # one or more fields to retrieve). my ($rsltset); # This is a ResultSet object my ($status); my ($column); my ($num_columns); my ($num_records); $rsltset = $session->BuildResultSet(querydef); $rsltset->Execute; print "primary entity def for query == ", $rsltset->LookupPrimaryEntityDefName; $num_columns = $rsltset->GetNumberOfColumns; $num_records = 0; $status = $rsltset->MoveNext; while ($status == $CQPerlExt::CQ_SUCCESS) { $num_records = $num_records + 1; print "Record #", $num_records; # Note: result set indices are based 1..N, not the usual # 0..N-1 $column = 1; while ($column <= $num_columns) { print " ", $rsltset->GetColumnLabel($column), "=", $rsltset->GetColumnValue($column); $column = $column + 1; } print ""; $status = $rsltset->MoveNext; } }