Tutoial de arranque
http://www.watto.org/program/abap/download/Z_ALV_TEMPLATE.abap
http://sgstocks.tripod.com/alvgrid_control.htm
http://www.watto.org/program/abap/download/Z_ALV_TEMPLATE.abap
http://www.sapalv.net/2009/08/sap-alv-tutorial-8-handling-data-change/
1. F01
CREATE OBJECT go_event_receiver.
SET HANDLER go_event_receiver->handle_data_changed FOR go_alv.
CALL METHOD go_alv->register_edit_event
EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
2.
CLASS gcl_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS:
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object,
handle_user_command FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm,
handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS.
3.
method handle_data_changed.
data: lv_changed type lvc_s_modi,
lc_rpta type c,
lwa_aspirante type gty_aspirante_alv.
loop at er_data_changed->mt_good_cells into lv_changed
where fieldname = 'APPAT' or fieldname = 'APMAT'
or fieldname = 'NOMBR'.
case lv_changed-fieldname.
when 'APPT'.
read table gtd_aspirante_alv into lwa_aspirante index lv_changed-row_id.
perform validar_nombres using lwa_aspirante-nombr
lv_changed-value
lwa_aspirante-apmat
'T'
changing lc_rpta.
check lc_rpta = 'T'.
when 'APMAT'.
when 'NOMBR'.
endcase.
* READ TABLE i_alv_data INTO v_alv_data INDEX lv_changed-row_id.
if sy-subrc = 0.
* MOVE lv_changed-value TO v_alv_data-cust_name.
* MODIFY i_alv_data FROM v_alv_data INDEX lv_changed-row_id.
endif.
endloop.
Endmethod.
Mostrar error
CALL METHOD er_data_changed->add_protocol_entry
EXPORTING
i_msgid = 'SU'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = 'Ya existe un registro con los nombres'
i_msgv2 = ' y apellidos ingresados.'
i_fieldname = lv_changed-fieldname
i_row_id = lv_changed-row_id .
eyyyy... un blog sapero!!!!
ReplyDelete