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;
}
}