Code: Alles auswählen.
*======================================================
* globale Klassendefinition
*======================================================
class lcl_event_receiver definition deferred.
data: g_event_receiver type ref to lcl_event_receiver.
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class lcl_event_receiver definition.
public section.
methods:
handle_data_changed
for event data_changed of cl_gui_alv_grid
importing er_data_changed.
endclass. "lcl_event_receiver DEFINITION
*======================================================
* globale Klassenimplementierung
*======================================================
class lcl_event_receiver implementation.
method handle_data_changed.
data: ls_good type lvc_s_modi,
error_in_data(1) type c,
neu_menge(13) type p decimals 3,
neu_einheit type meins,
neu_matnr type matnr,
neu_charge(10) type c.
error_in_data = space.
break-point.
loop at er_data_changed->mt_good_cells into ls_good.
case ls_good-fieldname.
* CHECK: Ist die Menge mit gültigen Werten gefüllt?
when 'MENGE_3'.
call method er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = neu_menge.
* CHECK: wurde eine gültige Mengeneinheit eingegeben?
when 'EINHEIT_3'.
call method er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = ls_good-fieldname
IMPORTING
e_value = neu_einheit.
endcase.
call method er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'MATERIAL'
IMPORTING
e_value = neu_matnr.
call method er_data_changed->get_cell_value
EXPORTING
i_row_id = ls_good-row_id
i_fieldname = 'CHARGE'
IMPORTING
e_value = neu_charge.
endloop.
endmethod. "handle_data_changed
endclass. "lcl_event_receiver IMPLEMENTATION
Code: Alles auswählen.
CALL METHOD grid_r->set_ready_for_input
EXPORTING
I_READY_FOR_INPUT = 1.
call method grid_r->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
create object g_event_receiver.
set handler g_event_receiver->handle_data_changed for grid_r.
Code: Alles auswählen.
call method grid_r->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.