Hello,
What I am trying to say is like below: ..
*&---------------------------------------------------------------------*
*& Report ZABHI_TST_DBLE_CLICK
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zabhi_tst_dble_click.
TABLES: vbap.
TYPES: BEGIN OF ty_vbap,
vbeln TYPE vbeln_va,
posnr TYPE posnr_va,
matnr TYPE matnr,
zmeng TYPE dzmeng,
END OF ty_vbap.
DATA: gt_vbap TYPE STANDARD TABLE OF ty_vbap,
gs_vbap TYPE vbap,
gt_fcat TYPE slis_t_fieldcat_alv,
ls_status TYPE slis_formname.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_vbeln FOR vbap-vbeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
PERFORM f_sub_get_data.
END-OF-SELECTION.
PERFORM f_prepare_fcat .
PERFORM f_sub_display_alv.
*&---------------------------------------------------------------------*
*& Form F_SUB_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_VBAP text
*----------------------------------------------------------------------*
FORM f_sub_get_data .
SELECT vbeln
posnr
matnr
zmeng
FROM vbap
INTO TABLE gt_vbap
WHERE vbeln IN s_vbeln.
IF sy-subrc = 0.
SORT gt_vbap BY vbeln posnr.
ENDIF.
ENDFORM. " F_SUB_GET_DATA
*&---------------------------------------------------------------------*
*& Form F_PREPARE_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GT_FCAT text
*----------------------------------------------------------------------*
FORM f_prepare_fcat .
DATA: ls_fcat TYPE slis_fieldcat_alv.
REFRESH gt_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'VBELN'.
ls_fcat-ref_tabname = 'VBAP'.
ls_fcat-ref_fieldname = 'VBELN'.
APPEND ls_fcat TO gt_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'POSNR'.
ls_fcat-ref_tabname = 'VBAP'.
ls_fcat-ref_fieldname = 'POSNR'.
APPEND ls_fcat TO gt_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'MATNR'.
ls_fcat-ref_tabname = 'VBAP'.
ls_fcat-ref_fieldname = 'MATNR'.
APPEND ls_fcat TO gt_fcat.
CLEAR ls_fcat.
ls_fcat-fieldname = 'ZMENG'.
ls_fcat-ref_tabname = 'VBAP'.
ls_fcat-ref_fieldname = 'ZMENG'.
APPEND ls_fcat TO gt_fcat.
ENDFORM. " F_PREPARE_FCAT
*&---------------------------------------------------------------------*
*& Form F_SUB_DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_sub_display_alv .
DATA: lv_progname TYPE syrepid VALUE sy-repid,
ls_layout TYPE slis_layout_alv,
ls_event TYPE slis_alv_event,
lt_event TYPE slis_t_event.
CLEAR ls_event.
ls_event-name = slis_ev_top_of_list.
ls_event-form = slis_ev_top_of_list.
APPEND ls_event TO lt_event.
CLEAR ls_event.
ls_event-name = slis_ev_user_command.
ls_event-form = slis_ev_user_command.
APPEND ls_event TO lt_event.
CLEAR ls_layout.
ls_layout-zebra = 'X'.
ls_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = lv_progname
it_fieldcat = gt_fcat
is_layout = ls_layout
i_callback_pf_status_set = ls_status
i_callback_user_command = 'USER_COMMAND'
* i_save = 'X'
it_events = lt_event
* i_grid_title = w_title
TABLES
t_outtab = gt_vbap
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. " F_SUB_DISPLAY_ALV
*&---------------------------------------------------------------------*
*& Form top_of_list
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_list .
* Header log data population
DATA: lt_header TYPE slis_t_listheader,
ls_header TYPE slis_listheader.
REFRESH: lt_header.
CLEAR ls_header.
ls_header-typ = 'H'.
ls_header-info = 'ALV DOUBLE CLICK REPORT'.
APPEND ls_header TO lt_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = lt_header.
ENDFORM. "top_of_list
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
FIELD-SYMBOLS: <lfs_fcat> TYPE slis_fieldcat_alv.
CASE r_ucomm.
WHEN '&IC1'. "if you don't set any status and using the standard one
LOOP AT gt_fcat ASSIGNING <lfs_fcat>.
<lfs_fcat>-edit = 'X'.
ENDLOOP.
PERFORM f_sub_display_alv.
WHEN '&F03' . "if you don;t set any status
" do process this event
ENDCASE.
ENDFORM. "user_command
Thanks & Regards,
Abhijit