Hi Experts,
I have created an editable ALV grid using OOPS showing multiple rows & columns.
I need to input some fields (say Quant, Material desc, price..etc) & capture the values of the editable fields into my program for further use processing.
For eg: i need to use it in an itab to for calc, post a BAPI..etc
How can i do this?
My sample code for based on event is as below . Pls tell me if i am right or wrong.
CLASS LCL_EVENT_HANDLER DEFINITION.
PUBLIC SECTION .
METHODS:
refresh_changed_data for event data_changed of cl_gui_alv_grid importing
er_data_changed
e_ucomm.
ENDCLASS
CLASS LCL_EVENT_HANDLER IMPLEMENTATION.
METHOD refresh_changed_data.
types :BEGIN OF ty_line,
menge TYPE bstmng,
netpr TYPE iprei,
kbetr TYPE i,
END OF ty_line.
DATA : ls_modified TYPE lvc_s_modi,
ls_stable TYPE lvc_s_stbl,
ls_line TYPE ty_line,
lv_field(10) type c,
gt_outtab type standard table of ty_line.
READ TABLE er_data_changed->mt_mod_cells INTO ls_modified INDEX 1.
loop at er_data_changed->mt_mod_cells into ls_modified.
clear wa_outdisp.
READ TABLE gt_outdisp INTO wa_outdisp INDEX ls_modified-row_id.
CHECK sy-subrc EQ 0.
lv_field = ls_modified-fieldname.
if lv_field = 'MENGE'.
wa_outdisp-menge = ls_modified-value.
elseif lv_field = 'NETPR'.
wa_outdisp-netpr = ls_modified-value.
elseif lv_field = 'KBETR'.
wa_outdisp-kbetr = ls_modified-value.
elseif lv_field = 'KMEIN'.
wa_outdisp-kmein = ls_modified-value.
endif.
MODIFY gt_outdisp FROM wa_outdisp INDEX ls_modified-row_id.
ls_stable-row = 'X'.
ls_stable-col = 'X'.
grid->refresh_table_display( exporting is_stable = ls_stable ).
endloop.
ENDMETHOD. "refresh_changed_data
ENDCLASS.
ENDCLASS.
Thanks
Dany