El cliente de Rational ClearQuest ofrece una posibilidad de informe eficaz en un entorno de interfaz gráfica de usuario (GUI). La API de Rational ClearQuest también ofrece soporte para informe programático.
A veces, sólo se necesitan los resultados sin formato en lugar de un informe muy formateado. La subrutina siguiente es una aplicación externa:
A continuación de los ejemplos de código de VBScript y Perl se incluyen otros ejemplos de código de Perl que muestran:
Sub RunBasicQuery(session, querydef)
' Los parámetros para esta subrutina son un objeto Session y un
' objeto QueryDef. Se presupone que QueryDef es válido (por ejemplo,
' se ha utilizado BuildField para seleccionar uno o más campos
' que recuperar).
Dim rsltset ' un objeto ResultSet
Dim status ' Long
Dim column ' Long
Dim num_columns ' Long
Dim num_records ' 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
' Nota: los índices del conjunto del resultado se basan en 1..N, no en el
' 0..N-1 habitual
column = 1
Do While column <= num_columns
' ToStr convierte el argumento en una serie
StdOut " " & rsltset.GetColumnLabel(column) & "=" & _
ToStr(rsltset.GetColumnValue(column))
column = column + 1
Loop
StdOut ""
status = rsltset.MoveNext
Loop
End Sub
REM Inicio de Global Script StdOut
sub StdOut(Msg)
msgbox Msg
end sub
REM Fin de Global Script StdOut
sub RunBasicQuery {
my($session)=@_[0];
my($querydef)=@_[1];
# Los parámetros de esta subrutina son un objeto Session
# y un objeto QueryDef. Se presupone que QueryDef
# es válido (por ejemplo, se ha utilizado BuildField para seleccionar
# uno o más campos que recuperar).
my ($rsltset); # Es un objeto ResultSet
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;
# Nota: los índices del conjunto del resultado se basan en 1..N, no en
# 0..N-1 habitual
$column = 1;
while ($column <= $num_columns) {
print " ", $rsltset->GetColumnLabel($column), "=",
$rsltset->GetColumnValue($column);
$column = $column + 1;
}
print "";
$status = $rsltset->MoveNext;
}
}