Geschützte Methoden nutzen

Wenn Sie auf eine SAP-Klasse referenzieren, dann haben Sie nur die Möglichkeit „Öffentliche“ Methoden zu verwenden. „Geschützte“ Methoden können nicht benutzt werden. Manchmal wäre aber das sehr wünschenswert. Wir verraten Ihnen, wie Sie diese Methode trotzdem verwenden können.

Welche Methoden als „geschützt“ (protected) und welche als „öffentlich“ (public) deklariert wurden, liegt natürlich am Programmierer, der die Klasse entworfen hat. Wenn dieser entschieden hat, dass eine Methode „geschützt“ ist, dann soll sie nicht von aussen benutzt werden.

In einigen Fällen wäre das aber sehr sinnvoll…

Im folgenden Beispiel verwenden wir die Klasse CL_GUI_ALV_GRID. Es werden standardmäßig die Spalten der Schlüsselfelder fixiert.

Wenn man diese Fixierung anders gestalten wollte, könnte man die Methode SET_FIXED_ROWS verwenden. Diese ist allerdings als „protected“ deklariert.

Mit „Vererbung“ umgehen Sie die Einschränkung:

CLASS my_grid DEFINITION INHERITING FROM cl_gui_alv_grid.
  PUBLIC SECTION.
    METHODS set_fixed_rows_public
        IMPORTING rows TYPE i.
ENDCLASS.

CLASS my_grid IMPLEMENTATION.
  METHOD set_fixed_rows_public.
    CALL METHOD me->set_fixed_rows
      EXPORTING
        rows   =  rows
      EXCEPTIONS
        error  = 1
        OTHERS = 2.
  ENDMETHOD.
ENDCLASS.

Nun müssen Sie noch auf Ihre Klasse verweisen anstelle der Standard-Klasse:

*DATA      cl_grid      TYPE REF TO cl_gui_alv_grid.     
DATA       cl_grid      TYPE REF TO my_grid.

Ab nun können Sie die Methode SET_FIXED_ROWS_PUBLIC verwenden, um die Spaltenfixierung zu beeinflussen:

CALL METHOD cl_grid->set_fixed_rows_public 
     EXPORTING rows = 5.

Vielen Dank an Black Adept!!

Enno Wulff
follow me
Letzte Artikel von Enno Wulff (Alle anzeigen)