Il client Rational ClearQuest offre una funzione di creazione di report ottimale in un ambiente GUI (graphical user interface). Inoltre, l'API Rational ClearQuest supporta la creazione programmatica di report.
In alcuni casi bastano i risultati non elaborati piuttosto che un report ben formattato. La seguente routine secondaria è un'applicazione esterna:
Dopo gli esempi dei codici VBScript e Perl, sono riportati ulteriori esempi di codice Perl che mostrano:
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;
}
}