Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SORT-VARIABLE Listenvariable sortieren

&pagelevel(4)&pagelevel

Anwendungsgebiet: PROCEDURE

Kommandobeschreibung

Das Kommando SORT-VARIABLE sortiert die Elemente einer Listenvariablen nach ihrem Inhalt in aufsteigender oder absteigender Reihenfolge. Es können nur Listenvariablen sortiert werden, deren Elemente einfache Variablen gleichen Typs (STRING, INTEGER, BOOLEAN oder ANY) sind.

Format

SORT-VARIABLE

VARIABLE-NAME = list-poss(2000): <composed-name 1..255>

,SORTING-ORDER = *ASCENDING / *DESCENDING

Operandenbeschreibung

VARIABLE-NAME = list-poss(2000): <composed-name 1..255>
Bezeichnet die zu sortierende Variable. Bei Angabe in Listenform können mehrere Variablennamen angegeben werden.

SORTING-ORDER = *ASCENDING / *DESCENDING
Bestimmt die Sortierreihenfolge.

SORTING-ORDER = *ASCENDING
Sortiert die Elemente in die Reihenfolge niedrigster bis zum höchster Wert. Abhängig vom Typ der zu vergleichenden Elemente wird der Größenvergleich wie folgt durchgeführt:

  • Elemente vom Typ STRING
    Bei einer Liste mit Elementen vom Typ STRING werden die Elemente aufsteigend nach Größe der String-Werte sortiert. Verglichen wird pro Byte der Wert der Hexadezimal-Codierung (siehe auch „String-Vergleich“ (Vergleichsoperatoren )). Durch diese Art des Vergleiches können auch X-Literale sortiert werden.

    Es gilt:

    • Von zwei Strings, die mit den selben Werten beginnen, aber unterschiedliche Länge haben, besitzt der kürzere String den kleineren Wert.

    • Ein leerer String besitzt immer den kleinstmöglichen Wert.

    Beispiel:

    Bei den Strings BC, ABC und BCD ergibt sich folgende Größenrelation:

    ABC < BC und ABC < BCD und BC < BCD

    Die aufsteigende Sortierung ergibt die Reihenfolge ABC, BC und BCD.

  • Elemente vom Typ INTEGER
    Bei einer Liste mit Elementen vom Typ INTEGER werden die Elemente aufsteigend nach Größe der Integer-Werte sortiert (numerischer Vergleich).

  • Elemente vom Typ BOOLEAN
    Bei einer Liste mit Elementen vom Typ BOOLEAN werden die Elemente aufsteigend nach Größe der Boolean-Werte sortiert. Es gilt: der Wert „FALSE“ kleiner als „TRUE“.

  • Elemente vom Typ ANY
    Bei einer Liste mit Elementen vom Typ ANY werden die Element aufsteigend gemäß dem Typ des aktuellen Wertes sortiert (aufsteigende Reihenfolge von String-, Integer- oder Boolean-Werte, wie oben beschrieben).
    Falls die Elemente der Liste Werte unterschiedlichen Typs besitzen, kann die Liste nicht sortiert werden.

SORTING-ORDER = *DESCENDING
Sortiert die Elemente in die Reihenfolge höchster bis zum niedrigster Wert. Die Art des Größenvergleichs ist abhängig vom Typ der zu vergleichenden Elemente (siehe SORTING-ORDER=*ASCENDING).

Kommando-Returncode

Während der Sortierung von Listen ist es möglich, dass ein Teil des Kommandos abgearbeitet und ausgeführt wurde, bevor ein Fehler auftrat. In diesem Fall ist das Resultat des Kommandos nicht garantiert.

(SC2)SC1MaincodeBedeutung

0CMD0001Ohne Fehler
10SDP2000Warnung; einige Elemente konnten nicht sortiert werden

64SDP2001Keines der Elemente konnte sortiert werden

Beispiel

/DECLARE-VARIABLE LANGUAGE-LIST (TYPE = *STRING), -
/           MULTIPLE-ELEMENTS = *LIST
/ LANGUAGE-LIST = 'GERMAN', WRITE-MODE=*EXTEND
/ LANGUAGE-LIST = 'ENGLISH', WRITE-MODE=*EXTEND
/ LANGUAGE-LIST = 'FRENCH', WRITE-MODE=*EXTEND
/ LANGUAGE-LIST = 'ITALIAN', WRITE-MODE=*EXTEND
/ LANGUAGE-LIST = 'GREEK', WRITE-MODE=*EXTEND
/
/SORT-VARIABLE VARIABLE-NAME=LANGUAGE-LIST, SORTING-ORDER=*ASCENDING
/SHOW-VARIABLE VARIABLE-NAME=LANGUAGE-LIST
LANGUAGE-LIST(*LIST) = ENGLISH
LANGUAGE-LIST(*LIST) = FRENCH
LANGUAGE-LIST(*LIST) = GERMAN
LANGUAGE-LIST(*LIST) = GREEK
LANGUAGE-LIST(*LIST) = ITALIAN