Ereignisse

Bemerkungen zu Ereignissen im ColumnTree
Bevor die Ereignisse für den ColumnTree registriert werden, sollte die Methode GET_REGISTERED_EVENTS aufgerufen werden.
Setzt man nämlich „einfach“ das Event „Item_Double_Click“, dann wird evtl. auf einmal die Ordnerstruktur nicht mehr angezeigt! Durch das explizite Setzen mittels SET_REGISTERED_EVENTS wird das Event „EXPAND_NO_CHILDREN“ gelöscht…
Eine Registrierung sollte also so z.B. aussehen:
*** data definition
DATA lt_events TYPE cntl_simple_events.
DATA ls_event TYPE cntl_simple_event.
*** Get already registered events
CALL METHOD gr_tree->get_registered_events
IMPORTING
events = lt_events.
*** define the events which will be passed to the backend
ls_event-eventid = cl_gui_column_tree=>eventid_link_click.
APPEND ls_event TO lt_events.
ls_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
APPEND ls_event TO lt_events.
*** set events
CALL METHOD gr_tree->set_registered_events
EXPORTING
events = lt_events.
*** set Handler
SET HANDLER lcl_treereceiver=>handle_link_click FOR gr_tree.
SET HANDLER lcl_treereceiver=>handle_item_double_click FOR gr_tree.
Doppelte Events sind nicht schlimm, solange APPL_EVENT identisch ist, also das Kennzeichen das steuert, ob Events einen Funktionscode auslösen.
Besser wäre es sicherlich, vorher zu prüfen, ob das Ereignis bereits registriert ist.
- ALV-Grid Tabelle direkt ändern - 3. März 2023
- Subscreen-Bereiche anzeigen - 23. Februar 2023
- Komplexe Datenobjekte editieren - 23. Januar 2023