Ansicht
Dokumentation
CL_SALV_SORTS - Alle Sortierungsobjekte
TXBHW - Original Tax Base Amount in Local Currency ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Das Sortieren der Ausgabetabelle nach bestimmten Spalten ist eine generische ALV-Funktion, die i.d.R. der Nutzer interaktiv einsetzt, um die Datensätze in der gewünschten Reihenfolge angezeigt zu bekommen. Sie können jedoch auch bereits in der Anwendung Sortierbedingungen definieren. Mit der Klasse CL_SALV_SORTS verwalten Sie die Sortierungsobjekte der Tabelle:
Zu jeder Spalte, nach der Sie die Tabelle sortieren möchten, erzeugen Sie maximal ein Sortierungsobjekt. In jedem Sortierungsobjekt können Sie dann verschiedene Sortierungsbedingungen definieren. Dabei machen Sie i.d.R. die folgenden Angaben:
- Die Spalte, nach der Sie sortieren möchten
Diese Angabe ist in jedem Fall erforderlich.
- Die Sortierrichtung
Sie können die Tabelle nach einer Spalte auf- oder abwärts sortieren
Darüber hinaus können Sie weitere Sortierbedingungen angeben (siehe unten).
Interne vs. externe Sortierung
Die ALV-Ausgabe ist eine Referenz auf die interne
Datentabelle. Technisch gesehen sortieren Sie also eigentlich nicht die ALV-Ausgabe, sondern die interne
Datentabelle und stellen dann diese erneut dar. Dieses Verhalten wird als interne Sortierungbezeichnet.
Sie können beeinflussen, wie die Werte einer Spalte dargestellt werden, indem Sie eine Domäne mit einer Konvertierungsroutine verwenden. Wenn Sie die ALV-Ausgabe nach einer Spalte sortieren, die durch eine Konvertierungsroutine behandelt wird, wird standardmäßig dennoch die interne Sortierung verwendet. Dies kann zu einem unerwünschten Ergebnis führen. Um sicherzustellen, dass die Sortierung nach den behandelten Werten geschieht, und nicht nach der internen Datentabelle, setzen Sie die externe Sortierungein. Dazu tragen Sie die Domäne, die die Konvertierungsroutine enthält, in der Tabelle ASEXDOM ein. Die Sortierung wird nun nach den Werten vorgenommen, die tatsächlich sichtbar sind.
-
Achtung:
In der hierarchisch-sequenziellen Liste dürfen Sie keine Spalte, deren Domäne in der Tabelle ASEXDOM einen Eintrag besitzt, in einer Fremdschlüsselbeziehung verwenden.
Einschränkung
Bei der einfachen, zweidimensionalen Tabelle wird ALV-intern bei der Sortierung der
Zusatz AS TEXT verwendet. Dieser Zusatz bewirkt,
dass textartige Komponenten gemäß dem Locale der aktuellen Textumgebung sortiert werden.
Bei hierarchisch-sequenziellen Listen kann aus technischen Gründen bei der Sortierung dieser
Zusatz nicht verwendet werden. Somit kann die Sortierung bei hierarchisch-sequenziellen Listen z. B. bei der Verwendung von Umlauten zu einem unerwarteten Ergebnis führen.
Voraussetzung
Um die Tabelle nach einer Spalte sortieren zu können, müssen folgende Voraussetzungen erfüllt sein:
- Die Spalte, nach der Sie sortieren möchten, existiert. Wenn die Spalte nicht existiert, erhalten Sie einen Fehler.
- Sie können für jede Spalte nur maximal ein Sortierungsobjekt definieren. Wenn die Spalte bereits ein Sortierungsobjekt enthält, erhalten Sie bei einer erneuten Definition eines Sortierungsobjekts einen Fehler.
- Die Sortiereinstellungen sind zulässig und korrekt.
Methoden
Die Klasse CL_SALV_SORTS enthält folgende Methoden:
CONSTRUCTOR | |
ADD_SORT | Fügt einer Spalte ein Sortierungsobjekt hinzu |
CLEAR | Löscht alle Sortierungsobjekte der ALV-Tabelle |
GET | Liefert alle Sortierungsobjekte der Tabelle |
GET_COMPRESSED_SUBTOTAL | Liefert die Spalte zurück, deren Zeilen für die Zwischenergebnisse ausgeblendet sind |
GET_SORT | Liefert die Sortierung einer bestimmten Spalte |
IS_GROUP_ACTIVE | Prüft, ob die Gruppe aktiv ist |
IS_SORT_DEFINED | Prüft, ob die Tabelle sortiert ist |
REMOVE_SORT | Entfernt die Sortierung von einer bestimmten Spalte |
SET_COMPRESSED_SUBTOTAL | Komprimiert Zwischenergebnisse |
SET_GROUP_ACTIVE | Aktiviert eine Gruppe |
SET_POSITION | Legt die Position der Sortierung fest |
Beziehungen
Beispiel
Beispiel
Das folgende Beispiel kennen Sie bereits aus der Klasse CL_SALV_TABLE. Hier wird die Methode ADD_SORT verwendet, um eine Abwärtssortierung der Spalte Flugdatum(FLDATE) zu definieren:
data: gt_outtab type table of SFLIGHT.
data: gr_table type ref to cl_salv_table.
data: gr_sorts type ref to cl_salv_sorts.
*... Select data
select * from SFLIGHT into corresponding fields of table gt_outtab.
*... Create Instance
call method cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = gr_table
changing
t_table = gt_outtab
.
*... Set Sort
gr_sorts = gr_table->get_sorts( ).
gr_sorts->add_sorts(
columnname = 'FLDATE'
sequence = if_salv_c_sort=>sort_down ).
*... Display table
gr_table->display( ).
Hinweise
Weiterführende Informationen
General Material Data Addresses (Business Address Services)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8296 Date: 20240425 Time: 024757 sap01-206 ( 98 ms )