ABAP | ALV | REUSE ALV 내 EVENT 활용

a·2023년 5월 12일

ABAP

목록 보기
2/3

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.

0개의 댓글