Clasificación de un conjunto del resultado

Puede utilizar métodos del objeto QueryFieldDef para personalizar el orden de clasificación de un conjunto del resultado tal como se muestra en el ejemplo siguiente. En este ejemplo se clasifica la prioridad en el campo de ID, y el orden de clasificación es ascendente.

Perl

use CQPerlExt;

#Iniciar una sesión de Rational ClearQuest

#$AdminSession= CQAdminSession::Build();

$SessionObj = CQSession::Build();



$dbsetname = "CQMS.SAMPL.HOME";

#Renovar lista de bases de datos a las que se puede acceder

$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname);



#Iniciar la sesión en una base de datos

$SessionObj->UserLogon("admin","","SAMPL",$dbsetname);



#Crear una consulta

$querydef = $SessionObj->BuildQuery("defect") ;

$querydef->BuildField("id") ;

$querydef->BuildField("headline") ;

$querydef->BuildField("owner.login_name") ;

$querydef->BuildField("submit_date") ;

#Crear el objeto queryfilternode:

# donde (state not in closed AND (id = 1 OR id = 2))

$where = $querydef->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND);

@states = ("closed");

$where->BuildFilter("state", $CQPerlExt::CQ_COMP_OP_NEQ, \@states);

$subor = $where->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_OR);

@id1 = ("SAMPL00000001");

$subor->BuildFilter("id", $CQPerlExt::CQ_COMP_OP_EQ, \@id1);

@id2 = ("SAMPL00000002");

$subor->BuildFilter("id", $CQPerlExt::CQ_COMP_OP_EQ, \@id2);



# obtener los objetos QueryFieldDef de la recopilación

$queryfielddefs = $querydef->GetQueryFieldDefs();

# Seleccionar el campo de ID y establecer el orden y el tipo de clasificación

$idfield = $queryfielddefs->ItemByName("id");

$idfield->SetSortType($CQPerlExt::CQ_SORT_DESC);

# en caso de que haya varias columnas de clasificación, cuál tiene prioridad:

$idfield->SetSortOrder(1);

# Seleccionar el campo submit_date y establecer la función de semana en el mismo

$datefield = $queryfielddefs->ItemByName("submit_date");

$datefield->SetFunction($CQPerlExt::CQ_DB_WEEK_FUNC);



$resultset = $SessionObj->BuildResultSet($querydef);

$ct = $resultset->ExecuteAndCountRecords();

for ($i = 0; $i < $ct; $i++) {

   $resultset->MoveNext();

   print $resultset->GetColumnValue(1);

   print " ";

   print $resultset->GetColumnValue(2);

   print " ";

   print $resultset->GetColumnValue(3);

   print " ";

   print $resultset->GetColumnValue(4);

   print "\n";

}

CQAdminSession::Unbuild($AdminSession);

CQSession::Unbuild($SessionObj);

            


Comentarios