ich möchte für zwei verschiedene ALV-Objekte dieselbe Event-Receiver-Klasse verwenden.
Um innerhalb der Events dann zu wissen, aus welchem Objekt ich gerade komme, habe ich folgendes gebastelt:
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
- *----------------------------------------------------------------------*
- * CLASS lcl_event_receiver DEFINITION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- PUBLIC SECTION.
- user_command_tab1
- FOR EVENT user_command OF cl_gui_alv_grid
- IMPORTING e_ucomm,
- user_command_tab2
- FOR EVENT user_command OF cl_gui_alv_grid
- IMPORTING e_ucomm.
- *----------------------------------------------------------------------*
- * CLASS lcl_event_receiver IMPLEMENTATION
- *----------------------------------------------------------------------*
- *
- *----------------------------------------------------------------------*
- METHOD user_command_tab1.
- METHOD user_command_tab2.
- go_split TYPE REF TO cl_gui_easy_splitter_container,
- go_grid1 TYPE REF TO cl_gui_alv_grid,
- go_grid2 TYPE REF TO cl_gui_alv_grid,
- go_event TYPE REF TO lcl_event_receiver.
- CREATE OBJECT go_event.
- SET HANDLER go_event->user_command_tab1 FOR go_grid1.
- SET HANDLER go_event->user_command_tab2 FOR go_grid2.
- *&---------------------------------------------------------------------*
- *& Form event_user_command
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- uv_ucomm TYPE syucomm.
- CASE uv_tab.
- CASE uv_ucomm.
- * to do
- CASE uv_ucomm.
- * to do
- GeSHi ©
Die Frage ist, geht das noch ein bisschen eleganter? Auf die Art und Weise muss ich jeden Event-Handler doppelt definieren und implementieren.
Gibt es vielleicht eine direkte Möglichkeit rauszubekommen, aus welcher Instanz das Event aufgerufen wurde?
Vielen Dank und Gruß
Benji