È possibile utilizzare i metodi dell'oggetto QueryFieldDef per personalizzare il criterio di ordinamento di una serie di risultati come illustrato dal seguente esempio. Imposta l'ordine di precedenza sul campo id e il criterio di ordinamento è crescente.
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 $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);