Ansicht
Dokumentation

CL_SALV_SORTS - Alle Sortierungsobjekte

CL_SALV_SORTS - Alle Sortierungsobjekte

TXBHW - Original Tax Base Amount in Local Currency   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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 )