ABAP OO

Bei der Ausgabe einer ALV Tabelle ist die Spaltenbreite oftmals sehr ungünstig (zu breit oder zu schmal), so dass die Daten beispielsweise abgeschnitten werden. Die Spaltenbreite kann per Code auf ein optimales Maß gebracht werden. Dabei werden die Spalten so breit dargestellt, dass der längste vorhandene Wert einer Spalte optimal dargestellt wird (vergleichbar mit einem Doppelklilck zwischen zwei Spalten in Excel).

In diesem Beispiel wird das Anpassen der Spaltenbreite in der Methode SET_COLUMN_OPTIMIZE der Klasse Z_TEST_VIEW implementiert.

... weiterlesen

Um alle oder die Standard ALV Funktionen zu aktivieren (Filter, Sortieren, Export etc.), kann folgender Code Abschnitt verwendet werden.

In dem Beispiel wird das Aktivieren der ALV Funktionen von der Methode SET_ALL_FUNCTIONS der Klasse Z_TEST_VIEW übernommen

Deklaration

 CLASS z_test_view DEFINITION.
   PUBLIC SECTION.

    methods set_all_functions
        IMPORTING icl_alv type ref to cl_salv_table
                  iv_default_only type boolean. 

 ENDCLASS.

Implementation

CLASS z_test_view IMPLEMENTATION.
*&--------------------------------------------------------------------*
*        ALV Funktionen aktivieren
*---------------------------------------------------------------------*
  METHOD set_all_functions.
    DATA: lcl_alv_functions TYPE REF TO cl_salv_functions_list. 

    IF icl_alv IS NOT INITIAL.
      lcl_alv_functions = icl_alv->get_functions( ). 

      IF iv_default_only = abap_true.
        lcl_alv_functions->set_default( abap_true ). 
      ELSE.
        lcl_alv_functions->set_all( abap_true ).
      ENDIF.
    ENDIF.
  ENDMETHOD. 
ENDCLASS.

Aufruf

 DATA: gcl_alv TYPE REF TO cl_salv_table,    " Objektreferenz für ALV Grid
       gcl_view type ref to z_test_view,     " Objektreferenz auf View Objekt 

...

   create OBJECT gcl_view. 

...

   " erzeugen des ALV Objekts
   cl_salv_table=>factory(
      IMPORTING
        r_salv_table = gcl_alv       " Referenz auf ALV Grid
       CHANGING
         t_table = gcl_model->gt_flights ).  " Tabelle mit Daten für Ausgabe 
...

   " Aktivieren der Funktionen
   gcl_view>set_all_functions( icl_alv = gcl_alv
                                iv_default_only = abap_true ). 
   " Ausgabe der Tabelle
   gcl_alv->display( ).

Ergebnis

ALV ohne Funktionen
ALV ohne Funktionen
ALV mit Standard Funktionen
ALV mit Standard Funktionen
ALV mit allen Funktionen
ALV mit allen Funktionen

Dies ist der erste Beitrag zu einer neuen Beitragsreihe mit einer Sammlung diverser Methoden und Lösungen zu der neuen ALV Grid Klasse CL_SALV_TABLE. Überweigend werden die Themen der Ausgabegestaltung angesprochen, aber auch das Verarbeiten von Events. Die gezeigten Beispiele werden als Methoden definiert mit dem Ziel, schnell zu implementierende Kopiervorlagen zu bieten.
... weiterlesen