4D v16.3

SORT ARRAY

Home

 
4D v16.3
SORT ARRAY

SORT ARRAY 


 

SORT ARRAY ( ArrayName {; ArrayName2 ; ... ; ArrayNameN}{; > oder <} ) 
Parameter Typ   Beschreibung
ArrayName  Array in Zu sortierendes Array
> oder <  Operator in ">" 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;<)



Siehe auch 

Find in sorted array
MULTI SORT ARRAY
ORDER BY
SELECTION TO ARRAY

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays
Nummer: 229

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: < 4D v6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)