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!!
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024