Code: Alles auswählen.
*&---------------------------------------------------------------------*
* Layout zum ALV definieren
*----------------------------------------------------------------------*
form prepare_layout changing ps_layout type lvc_s_layo.
ps_layout-sel_mode = 'A'. "Spalten- und Zeilenselektion
endform. " prepare_layout
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
data:
go_grid type ref to cl_gui_alv_grid,
i_irows type lvc_t_row, "Tabelle mit Indizes selektierter Zeilen
wa_irows like line of i_irows,
l_lines type i.
case r_ucomm.
when '&GO'. "<--- Funktion die selektierte Zeilen verarbeitet
" selektierte Zeilen ermitteln
"Werte aus dem ALV lesen
call function 'GET_GLOBALS_FROM_SLVC_FULLSCR'
importing
e_grid = go_grid.
"Indizes der selektierten Zeilen lesen
call method go_grid->get_selected_rows
importing
et_index_rows = i_irows.
describe table i_irows lines l_lines.
if l_lines = 0.
call function 'POPUP_TO_DISPLAY_TEXT'
exporting
textline1 = 'bitte mindestens eine Zeile wählen'.
exit.
endif.
"ausgewählte Zeilen Verarbeiten
loop at i_irows into wa_irows.
read table gt_stpo into wa_stpo index wa_irows-index.
endloop.
...
endcase.
Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Basler84
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Basler84
Code: Alles auswählen.
case r_ucomm.
when '&GO'. "<--- Funktion die selektierte Zeilen verarbeitet
" selektierte Zeilen ermittelndas ist korrekt. Die Voraussetzung dafür ist, dass die Routine USER_COMMAND dem ALV als Zuständige für die Verarbeitung bekannt ist. Dies erreichst du bei dem ALV-Aufruf:Basler84 hat geschrieben:Also wenn ich das richtig verstehe ist ja das form USER_COMMAND der Auslöser für die Verarbeitung, Wenn ich jetzt mit meiner Funktion 'REUSE_ALV_GRID_DISPLAY_LVC' meine Liste ausgeben lasse wird über User_Command auf meine weiteren Eingaben reagiert oder? Im Prinzip kann ich dieses Beispiel dann für jede Liste verwenden?
Code: Alles auswählen.
* ALV Listausgabe mit Verarbeitung der Benutzereingaben
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND' "<----------------
it_fieldcat_lvc = gt_fieldcat
i_save = 'A'
i_grid_title = g_alvtitle
is_variant = variante
TABLES
t_outtab = gt_itab.
Folgende Benutzer bedankten sich beim Autor Alexander D. für den Beitrag:
Basler84