< Vorherige Lektion | Nächste Lektion >

Ergebnismenge sortieren

Sie können Methoden des QueryFieldDef-Objekts verwenden, um die Sortierreihenfolge einer Ergebnismenge anzugeben.
Verwenden Sie die Methoden des QueryFieldDef-Objekts wie folgt, um die Sortierreihenfolge festzulegen:

Beispiel

Im folgenden Beispiel wird nach ID und mit aufsteigender Sortierreihenfolge sortiert.

use CQPerlExt; 
#Rational-ClearQuest-Sitzung starten
$SessionObj = CQSession::Build(); 
$dbsetname = "CQMS.SAMPL.HOME"; 
#Liste der verfügbaren Datenbanken aktualisieren
$databases = $SessionObj->GetAccessibleDatabases("MASTR", "", $dbsetname); 

#Anmeldung an Datenbank
$SessionObj->UserLogon("admin","","SAMPL",$dbsetname); 

#Abfrage erstellen
$querydef = $SessionObj->BuildQuery("defect"); 
$querydef->BuildField("id"); 
$querydef->BuildField("headline"); 
$querydef->BuildField("owner.login_name"); 
$querydef->BuildField("submit_date"); 
# queryfilternode-Objekt erstellen:
# where (Status nicht "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); 


# QueryFieldDef-Objekte der Sammlung abrufen
$queryfielddefs = $querydef->GetQueryFieldDefs(); 
# ID-Feld auswählen und Sortiertyp und Sortierreihenfolge festlegen
$idfield = $queryfielddefs->ItemByName("id"); 
$idfield->SetSortType($CQPerlExt::CQ_SORT_DESC); 
# Bei Verwendung mehrerer Sortierspalten legt die folgende Einstellung fest, welche Spalte Priorität hat:
$idfield->SetSortOrder(1); 
# Feld "submit_date" auswählen und Wochenfunktion definieren
$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); 
< Vorherige Lektion | Nächste Lektion >

Feedback