REUSE_ALV_GRID_DISPLAY 펑션 내 it_events 활용방법
i_callback_hotspot 이 아닌 event 테이블을 활용하여 핫스팟을 생성해본다.
EVENT 만들기
FORM event_reg .
REFRESH gt_event[].
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
et_events = gt_event[].
LOOP AT gt_event.
IF gt_event-name = 'USER_COMMAND'.
gt_event-form = 'HOTSPOT_F'.
MODIFY gt_event.
ENDIF.
ENDLOOP.
ENDFORM.
이벤트에 해당되는 Perform 문 생성
FORM hotspot_f USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
CASE p_ucomm.
WHEN '&IC1'. "click
IF p_selfield-fieldname = 'BELNR'.
READ TABLE itab INDEX p_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID 'BLN' FIELD itab-belnr.
SET PARAMETER ID 'BUK' FIELD itab-bukrs.
SET PARAMETER ID 'GJR' FIELD itab-gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM.
1) Exporting 값에 i_callback_program 을 반드시 입력
미입력시 덤프 발생
(해당 펑션의 기능 중 event 테이블의 내용을 하나씩 불러오는 작업에서 콜백 프로그램이 반드시 필요)
DATA : gt_event TYPE slis_t_event WITH HEADER LINE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = gs_layo_f
it_fieldcat = gt_catalogue_f[]
it_excluding = gt_exclude_f[]
it_events = gt_event[]
it_sort = gt_sort_f[]
TABLES
t_outtab = itab[]
EXCEPTIONS
program_error = 1
OTHERS = 2.