Show TOC

SortierenLocate this document in the navigation structure

Verwendung

Sie können die Reihenfolge der Datensätze nach bestimmten Regeln ändern, indem Sie die ALV-Ausgabe sortieren. Dabei geben Sie an, welche Felder die Werte enthalten, die alphabetisch bzw. numerisch sortiert werden, und die somit die Reihenfolge aller Zeilen bestimmen.

Zur Sortierung können Sie folgende Einstellungen vornehmen:

  • Sortierungseinstellungen (auch Sortierbedingung genannt) eines Feldes erzeugen, holen und löschen

  • Sortierrichtung und Sortierreihenfolge festlegen

  • Gleiche Werte zusammenfassen

  • Sortieren eines Feldes verbieten

  • Sortieren durch Klick auf den Spaltentitel ermöglichen

  • Sortieren eines Feldes nach den Werten eines anderen

  • Registerkarte zum Sortieren ein- und ausblenden

Abbildung 1: Überblick über die Einstellungen zur Sortierung

Sortierbedingung eines Feldes erzeugen, holen und löschen

Die Sortierung ist eine Eigenschaft eines Feldes in der ALV-Ausgabe (siehe Felder). Um die Sortierbedingung eines Feldes zu erzeugen, zu holen oder zu löschen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zum Erzeugen, Holen und Löschen der Sortierbedingung

Funktion

Methode

Sortierbedingung holen

GET_SORT_RULE

Sortierbedingung erzeugen

CREATE_SORT_RULE

Sortierbedingung löschen

DELETE_SORT_RULE

Die Sortierbedingung eines Feldes ist repräsentiert durch ein Objekt der Klasse CL_SALV_WD_SORT_RULE.

Hinweis

Wenn Sie Ihrer ALV-Ausgabe eine neue Datentabelle mit neuer Struktur zuweisen, werden die Sortierbedingungen aller Felder automatisch gelöscht.

Sortierrichtung und Sortierreihenfolge festlegen

Sie können zu jeder einzelnen Sortierbedingung festlegen, ob Sie die Werte des Feldes aufsteigend (z. B. a, b, c) oder absteigend (z. B. c, b, a) sortieren möchten: Sie legen die Sortierrichtung fest.

Wenn Sie die ALV-Ausgabe nach mehreren Feldern sortieren, ändert sich das Ergebnis, je nachdem, in welcher Reihenfolge die Felder nacheinander sortiert werden. Bitte geben Sie die Position immer explizit an, wenn Sie eine bestimmte Reihenfolge in der Sortierung erwarten. Dazu weisen Sie dem Feld (bzw. seiner Sortierbedingung) eine Positionsnummer in der Sortierreihenfolge zu.

Um Sortierrichtung oder Sortierreihenfolge einer Sortierbedingung zu ändern, verwenden Sie Methoden der Klasse CL_SALV_WD_SORT_RULE.

Methoden zu Sortierrichtung und Sortierreihenfolge

Funktion

Methode

Sortierrichtung festlegen

SET_SORT_ORDER

Sortierrichtung holen

GET_SORT_ORDER

Position des Feldes innerhalb der Sortierreihenfolge festlegen

SET_SORT_POSITION

Position des Feldes innerhalb der Sortierreihenfolge holen

GET_SORT_POSITION

Darüber hinaus können Sie für ein Feld festlegen, in welcher Sortierrichtung seine Werte bevorzugt sortiert werden, wenn der Benutzer die dazugehörige Spalte sortiert.

Um die bevorzugte Sortierrichtung eines Feldes festzulegen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zur bevorzugten Sortierrichtung

Funktion

Methode

Bevorzugte Sortierrichtung festlegen

SET_INITIAL_SORT_ORDER

Bevorzugte Sortierrichtung holen

GET_INITIAL_SORT_ORDER

Gleiche Werte zusammenfassen

Standardmäßig werden in einer sortierten ALV-Ausgabe im sortierten Feld gleiche Werte zu einem zusammengefasst: Die Werte sind gruppiert. Sie können festlegen, dass in jeder Zeile ein Wert steht, auch wenn sich dieser Wert nicht ändert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zum Gruppieren von sortierten Werten

Funktion

Methode

Werte gruppieren/ Gruppierung aufheben

SET_GROUPING_ALLOWED

Prüfen, ob Werte gruppiert sind

IS_GROUPING_ALLOWED

Sortieren eines Feldes verbieten

Sie können für ein Feld gezielt das Sortieren verbieten. Dies hat folgende Auswirkungen:

  • Im Dialogfenster Einstellungen wird auf der Registerkarte Sortierung die entsprechende Spalte nicht mehr angeboten

  • Wenn Sie das Sortieren von Spalten durch Klick auf den Spaltentitel zulassen (siehe unten), ist diese Funktion für die entsprechende Spalte nicht verfügbar, die Pfeilikonen sind ausgeblendet.

  • Wenn Sie in Ihrer Anwendung für dieses Feld eine Sortierbedingung definiert haben, hat diese Einstellung in der ALV-Ausgabe keine Auswirkung.

Um das Sortieren eines Feldes zu verbieten, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_SORT (implementierende Klasse CL_SALV_WD_FIELD).

Methoden zum Verbieten von Sortierungen

Funktion

Methode

Sortieren verbieten

SET_SORT_ALLOWED

Prüfen, ob Sortieren erlaubt ist

IS_SORT_ALLOWED

Sortieren durch Klick auf den Spaltentitel ermöglichen

Sie können in den Spaltentiteln der ALV-Ausgabe kleine Pfeilikonen anzeigen, über die der Benutzer ganz einfach die Spalte aufsteigend oder absteigend sortieren kann.

Darüber hinaus können Sie zusätzlich festlegen, ob der Benutzer nur nach jeweils einer Spalte sortieren kann, oder ob er unter Zuhilfenahme der STRG-Taste mehrere Spalten sortiert.

Um das Sortieren durch Klick auf den Spaltentitel zu ermöglichen, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_STD_FUNCTIONS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).

Methoden zum Sortieren durch Klick auf Spaltentitel

Funktion

Methode

Pfeilikonen in den Spaltentiteln einblenden

SET_SORT_HEADERCLICK_ALLOWED

Prüfen, ob Pfeilikonen in den Spaltentiteln eingeblendet sind

IS_SORT_HEADERCLICK_ALLOWED

Um zusätzlich dem Benutzer zu ermöglichen, mehrere Spalten durch Klick auf den Spaltentitel zu sortieren, verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_TABLE_SETTINGS (implementierende Klasse CL_SALV_WD_CONFIG_TABLE).

Methoden zum Sortieren mehrerer Spalten durch Klick auf Spaltentitel

Funktion

Methode

Sortieren mehrerer Spalten ermöglichen

SET_MULTI_COLUMN_SORT

Prüfen, ob Sortierung nach mehreren Spalten möglich ist

GET_MULTI_COLUMN_SORT

Sortieren eines Feldes nach den Werten eines anderen

Sie können ein Feld angeben, nach dem das aktuelle Feld sortiert wird, wenn das Feld selbst nicht das gewünschte Ergebnis liefert. Dazu verwenden Sie Methoden der Interface-Klasse IF_SALV_WD_COLUMN_SERVICE_REF (implementierende Klasse CL_SALV_WD_COLUMN).

Methoden zum Sortieren nach den Werten eines anderen Feldes

Funktion

Methode

Feldnamen des anderen Feldes festlegen

SET_SORT_FIELDNAME

Feldnamen des anderen Feldes holen

GET_SORT_FIELDNAME