Interactive ALV report with ALV Events in SAP ABAP
Interactive ALV report using SAP ABAP programming with ALV events and user command.
REPORT ZALV6 . DATA: IT_EKKO LIKE EKKO OCCURS 1 WITH HEADER LINE. DATA: IT_EKPO LIKE EKPO OCCURS 1 WITH HEADER LINE. TYPE-POOLS: SLIS. DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV. DATA: IT_EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE. SELECT-OPTIONS: S_EBELN FOR IT_EKKO-EBELN. START-OF-SELECTION. PERFORM GET_DATA. PERFORM BUILD_LAYOUT. PERFORM BUILD_EVENTS. END-OF-SELECTION. PERFORM SHOW_BASIC_GRID. *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM GET_DATA . SELECT * FROM EKKO INTO TABLE IT_EKKO WHERE EBELN IN S_EBELN. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form SHOW_BASIC_GRID *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM SHOW_BASIC_GRID . CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'EKKO' I_GRID_TITLE = 'Purchase Order Header' I_CALLBACK_PROGRAM = 'ZALV6' IS_LAYOUT = WA_LAYOUT IT_EVENTS = IT_EVENTS[] TABLES T_OUTTAB = IT_EKKO EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. " SHOW_BASIC_GRID *&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_LAYOUT . WA_LAYOUT-KEY_HOTSPOT = 'X'. ENDFORM. " BUILD_LAYOUT *&---------------------------------------------------------------------* *& Form BUILD_EVENTS *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM BUILD_EVENTS . CALL FUNCTION 'REUSE_ALV_EVENTS_GET' IMPORTING ET_EVENTS = IT_EVENTS[] EXCEPTIONS LIST_TYPE_WRONG = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. READ TABLE IT_EVENTS WITH KEY NAME = 'USER_COMMAND'. IF SY-SUBRC = 0. IT_EVENTS-FORM = 'SHOW_SEC_GRID'. MODIFY IT_EVENTS INDEX SY-TABIX. ENDIF. ENDIF. ENDFORM. " BUILD_EVENTS *&---------------------------------------------------------------------* *& Form SHOW_SEC_GRID *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM SHOW_SEC_GRID USING P_UCOMM LIKE SY-UCOMM P_SEL TYPE SLIS_SELFIELD. CASE P_UCOMM. WHEN '&IC1'. REFRESH IT_EKPO. SELECT * FROM EKPO INTO TABLE IT_EKPO WHERE EBELN = P_SEL-VALUE. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_STRUCTURE_NAME = 'EKPO' I_GRID_TITLE = 'Purchase order Items' TABLES T_OUTTAB = IT_EKPO[] EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDCASE. ENDFORM. " SHOW_SEC_GRID