You are on page 1of 3

TYPE-POOLS: slis. DATA: x_fieldcat TYPE slis_fieldcat_alv, it_fieldcat TYPE slis_t_fieldcat_alv.

data: BEGIN OF itab OCCURS 0, vbeln LIKE vbak-vbeln, posnr LIKE vbap-posnr, kwmeng LIKE vbap-kwmeng, END OF itab. SELECT vbeln posnr kwmeng FROM vbap UP TO 20 ROWS INTO TABLE itab.

x_fieldcat-fieldname = 'VBELN'. x_fieldcat-seltext_l = 'VBELN'. x_fieldcat-hotspot = 'X'. x_fieldcat-tabname = 'ITAB'. x_fieldcat-col_pos = 1. APPEND x_fieldcat TO it_fieldcat. CLEAR x_fieldcat. x_fieldcat-fieldname = 'POSNR'. x_fieldcat-seltext_l = 'POSNR'. x_fieldcat-tabname = 'ITAB'. x_fieldcat-col_pos = 2. APPEND x_fieldcat TO it_fieldcat. CLEAR x_fieldcat. x_fieldcat-fieldname = 'KWMENG'. x_fieldcat-tabname = 'ITAB'. x_fieldcat-col_pos = 3. x_fieldcat-input = 'X'. x_fieldcat-edit = 'X'. APPEND x_fieldcat TO it_fieldcat. CLEAR x_fieldcat. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid

i_callback_pf_status_set = 'STATUS' i_callback_user_command = 'USER_COMMAND' it_fieldcat = it_fieldcat

TABLES t_outtab EXCEPTIONS program_error OTHERS = itab = 1 = 2.

IF sy-subrc NE 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. *&---------------------------------------------------------------------* *& Form STATUS *&---------------------------------------------------------------------* * PF-STATUS *----------------------------------------------------------------------* FORM status USING p_extab TYPE slis_t_extab. "Set the Button using the staus "Copy the Standard status from the program SAPLKKBL status " STANDARD using SE41, and use that here. "Pf status SET PF-STATUS 'STATUS' EXCLUDING p_extab. ENDFORM. " STATUS *&---------------------------------------------------------------------* *& Form USER_COMMAND *&---------------------------------------------------------------------* * USER_COMMAND *----------------------------------------------------------------------* FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. DATA: gd_repid LIKE sy-repid, ref_grid TYPE REF TO cl_gui_alv_grid. IF ref_grid IS INITIAL. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = ref_grid. ENDIF. IF NOT ref_grid IS INITIAL. CALL METHOD ref_grid->check_changed_data . ENDIF. CASE r_ucomm. WHEN 'SAVE'. "Here you will get the data(along with modified rows/data) "Filter the modified rows and update to DB using BAPI/BDC "Accordingly

ENDCASE. rs_selfield-refresh = 'X'.

ENDFORM. "USER_COMMAND

You might also like