Ejecución de una consulta e informe en el conjunto de resultados

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:

VBScript

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 ' 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 

      ' Note: result set indices are based 1..N, not the usual
      '  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 Start of Global Script StdOut
sub StdOut(Msg)
   msgbox Msg
end sub
REM End of Global Script StdOut 

Perl

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

Feedback