Code: Alles auswählen.
*read old cursor pos
sender->get_scroll_info_via_id( IMPORTING
es_row_no = lv_row_no
es_row_info = lv_row_info
es_col_info = lv_col_info ).
sender->get_current_cell( IMPORTING
es_row_id = lv_row_id2
es_col_id = lv_col_id2
es_row_no = lv_row_no2 ).
sender->refresh_table_display( EXPORTING is_stable = is_stable ).
DATA: lt_cell TYPE TABLE OF lvc_s_ceno.
DATA: ls_cell LIKE LINE OF lt_cell.
ls_cell-col_id = 7.
ls_cell-row_id = ls_row_id.
APPEND ls_cell TO lt_cell.
sender->set_selected_cells_id( EXPORTING it_cells = lt_cell ).
sender->set_scroll_info_via_id( is_row_info = lv_row_info
is_col_info = lv_col_info
is_row_no = lv_row_no ).
lv_row_no2-row_id = ls_row_id.
sender->set_current_cell_via_id( EXPORTING is_row_id = ls_row_id
is_column_id = ls_column_id is_row_no = lv_row_no2 ).
cl_gui_cfw=>flush( ).
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
AlexVienna
In etwa so - aber eben nicht ganz. Wenn z.B. mit <ALT>+<TAB> in ein anderes Fenster ( nicht unbedingt GUI ) gesprungen wird, wird m.W. die Zelle nicht wirklich im Sinne des Grid verlassen. Verlassen wird sie erst dann glaube ich, wenn man via Klick oder Enter tatsächlich explizit den Fokus auf eine andere Zelle des Grid verändert, weil das Grid das dann mitbekommt.a-dead-trousers hat geschrieben: ↑21.06.2021 12:35EVT_MODIFIED triggert beim "Verlassen" der Zelle (Wechsel zu einer anderen z.B. mit TAB oder Mausklick) wenn sich etwas geändert hat.
Geht mir ähnlich. Manchmal mache ich es noch, weil man gut mit Copy & Paste ganze Blöcke eintragen kann über Seitengrenzen hinaus.a-dead-trousers hat geschrieben: ↑21.06.2021 10:21(Ich verwende ALV nicht mehr für Eingaben weil es einfach nicht "sauber" implementiert werden kann und man ständig in irgendwelche Fallstricken läuft)
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
AlexVienna