< Anterior | Siguiente >

Clasificación de un conjunto de resultados

Puede utilizar métodos del objeto QueryFieldDef para especificar el orden de clasificación de un conjunto de resultados.
Para establecer un orden de clasificación, puede utilizar los métodos del objeto QueryFieldDef para establecer:

Ejemplo

En el ejemplo siguiente se clasifica la prioridad en el campo de ID, y el orden de clasificación es ascendente.

use CQPerlExt; 
#Start a Rational ClearQuest session 
$SessionObj = CQSession::Build(); 
$dbsetname = "CQMS.SAMPL.HOME"; 
#Refresh list of accessible databases 
$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname); 

#Log into a database 
$SessionObj->UserLogon("admin","","SAMPL",$dbsetname); 

#Create a Query 
$querydef = $SessionObj->BuildQuery("defect") ; 
$querydef->BuildField("id"); 
$querydef->BuildField("headline"); 
$querydef->BuildField("owner.login_name") ; 
$querydef->BuildField("submit_date") ; 
#Create the queryfilternode object: 
# where (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); 


# Get the collection QueryFieldDef objects 
$queryfielddefs = $querydef->GetQueryFieldDefs(); 
# Select the id field and set the sort type and order 
$idfield = $queryfielddefs->ItemByName("id"); 
$idfield->SetSortType($CQPerlExt::CQ_SORT_DESC); 
# this is for if you have multiple sort columns, which takes precedence: 
$idfield->SetSortOrder(1); 
# Select the submit_date field and set the week function on it 
$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"; 
} 
CQSession::Unbuild($SessionObj); 
< Anterior | Siguiente >

Comentarios