Puede utilizar métodos del objeto QueryFieldDef para personalizar el orden de clasificación de un conjunto de resultados 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.
use CQPerlExt;
#Start a Rational ClearQuest session
#$AdminSession= CQAdminSession::Build();
$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
# For VBScript, use the Item method, which takes a numeric index or a name
$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";
}
CQAdminSession::Unbuild($AdminSession);
CQSession::Unbuild($SessionObj);
Set MyQuery = GetSession.BuildQuery("Users")
MyQuery.BuildField("login_name") ' Column 1
MyQuery.BuildField("fullname") ' Column 2
set MyField = MyQuery.QueryFieldDefs.Item("login_name")
MyField.SortType AD_SORT_ASC
MyField.SortOrder 1
set FilterOp = MyQuery.BuildFilterOperator(AD_BOOL_OP_AND)
FilterOp.BuildFilter "Groups.Name", AD_COMP_OP_EQ, "Testers"
set MyResults = GetSession.BuildResultSet(MyQuery)
MyResults.Execute
While MyResults.MoveNext = AD_SUCCESS
Line = Line & MyResults.GetColumnValue(1) & " : " & _
MyResults.GetColumnValue(2) & VBCrlf
wend