4D v14.3SORT ARRAY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
SORT ARRAY
|
SORT ARRAY ( ArrayName {; ArrayName2 ; ... ; ArrayNameN}{; > oder <} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
ArrayName | Array |
![]() |
Zu sortierendes Array | |||||
> oder < | Operator |
![]() |
">" Sortieren in aufsteigender Reihenfolge, oder "<". Sortieren in absteigender Reihenfolge, bzw. aufsteigend, wenn nichts angegeben ist |
|||||
Der Befehl SORT ARRAY sortiert eine oder mehrere Arrays in der festgelegten auf- oder absteigenden Sortierreihenfolge.
Hinweis: Arrays vom Typ Zeiger oder Bild lassen sich nicht sortieren. Sie können die Elemente eines zweidimensionalen Array (z.B. a2DArray{$vlThisElem}) sortieren, jedoch nicht das zweidimensionale Array selbst (z.B. a2DArray).
Der letzte Parameter gibt an, ob ArrayName aufsteigend oder absteigend sortiert werden soll. Das Symbol “größer als” (>) sortiert aufsteigend; das Symbol “kleiner als” (<) sortiert absteigend. Ist keine Sortierreihenfolge angegeben, wird das Array aufsteigend sortiert.
Bei mehreren Arrays wird nach der Reihenfolge des ersten Array sortiert, hier wird keine mehrstufige Sortierung ausgeführt. Um synchronisierte Arrays zu sortieren, können Sie den Befehl MULTI SORT ARRAY verwenden.
Dieses Beispiel lädt zwei Arrays und sortiert sie nach Firma:
ALL RECORDS([People])
SELECTION TO ARRAY([People]Name;asNames;[People]Company;asCompanies)
SORT ARRAY(asCompanies;asNames;>)
Da SORT ARRAY jedoch nicht mehrstufig sortiert, sind die Namen innerhalb der Firma in wilkürlicher Reihenfolge. Um auch nach Namen zu sortieren, schreiben Sie:
ALL RECORDS([People])
ORDER BY([People];[People]Company;>;[People]Name;>)
SELECTION TO ARRAY([People]Name;asNames;[People]Company;asCompanies)
Zeigen Sie die Namen aus der Tabelle [People] in einem Palettenfenster an. Durch Anklicken der entsprechenden Schaltflächen können Sie die Namen von A zu Z oder von Z zu A sortieren. Da manche Namen öfter vorkommen können, sollten Sie auch mit einem einmaligen und indizierten Datenfeld [People]ID number arbeiten. Klicken Sie in die Namensliste, finden Sie den Datensatz, der zum angeklickten Namen gehört. Durch ein synchrones ausgeblendetes Array mit den Kenn-Nummern stellen Sie sicher, dass der richtige Datensatz aufgerufen wird:
` Objektmethode Array asNames
Case of
:(Form event=On Load)
ALL RECORDS([People])
SELECTION TO ARRAY([People]Name;asNames;[People]ID number;alIDs)
SORT ARRAY(asNames;alIDs;>)
:(Form event=On Unload)
CLEAR VARIABLE(asNames)
CLEAR VARIABLE(alIDs)
:(Form event=On Clicked)
If(asNames#0)
` Verwende das Array alIDs, um den richtigen Datensatz zu finden
QUERY([People];[People]ID Number=alIDs{asNames})
` Führe etwas aus mit diesem Datensatz
End if
End case
` Objektmethode Schaltfläche bA2Z
` Sortiere Arrays in aufsteigender Reihenfolge und erhalte sie synchron
SORT ARRAY(asNames;alIDs;>)
` Objektmethode Schaltfläche bZ2A
` Sortiere Arrays in absteigender Reihenfolge und erhalte sie synchron
SORT ARRAY(asNames;alIDs;<)
Produkt: 4D
Thema: Arrays
Nummer:
229
Erstellt: < 4D v6
MULTI SORT ARRAY
ORDER BY
SELECTION TO ARRAY
4D Programmiersprache ( 4D v11 SQL Release 6)
4D Programmiersprache ( 4D v12.4)
4D Programmiersprache ( 4D v14 R2)
4D Programmiersprache ( 4D v14 R3)
4D Programmiersprache ( 4D v13.5)
4D Programmiersprache ( 4D v14.3)
4D Programmiersprache ( 4D v14 R4)