SAP/ALV
[ALV] DATA_CHANGED EVENT
DrkLion
2009. 6. 2. 16:55
DATA_CHANGED EVENT 에서 데이터의 정합성을 판단하고 ADD_PROTOCOL_ENTRY 를 이용해 메세지를 띄울수 있다.
FORM handle_data_changed USING ir_data_changed
TYPE REF TO cl_alv_changed_data_protocol.
DATA : ls_mod_cell TYPE lvc_s_modi ,
lv_value TYPE lvc_value .
SORT ir_data_changed->mt_mod_cells BY row_id .
LOOP AT ir_data_changed->mt_mod_cells
INTO ls_mod_cell
WHERE fieldname = 'SEATSMAX' .
CALL METHOD ir_data_changed->get_cell_value
EXPORTING i_row_id = ls_mod_cell-row_id
i_fieldname = 'CARRID'
IMPORTING e_value = lv_value .
IF lv_value = 'THY' AND ls_mod_cell-value > '500' .
CALL METHOD ir_data_changed->add_protocol_entry
EXPORTING
i_msgid = 'SU'
i_msgno = '000'
i_msgty = 'E'
i_msgv1 = 'This number can not exceed 500 for '
i_msgv2 = lv_value
i_msgv3 = 'The value is et to ''500'''
i_fieldname = ls_mod_cell-fieldname
i_row_id = ls_mod_cell-row_id .
CALL METHOD ir_data_changed->modify_cell
EXPORTING i_row_id = ls_mod_cell-row_id
i_fieldname = ls_mod_cell-fieldname
i_value = '500' .
ENDIF .
ENDLOOP .
ENDFORM " handle data changed
참조 문서 : 2009/03/09 - [SAP R/3/ALV] - ReferenceForALV_Grid