I expect that my own function can be executed when I double click any column in a line of ALV grid. But unfortunately, nothing happened when line of ALV grid was double clicked. Please help me solve this problem.
Part of source code:
FORM fill_events TABLES t_events TYPE slis_t_event.
t_events-name = slis_ev_top_of_page. "'TOP_OF_PAGE'
t_events-form = slis_ev_top_of_page.
APPEND t_events.
t_events-name = slis_ev_user_command. "'USER_COMMAND'
t_events-form = slis_ev_user_command.
APPEND t_events.
ENDFORM.
FORM go_to_payrq_page_overview USING it_payrq_display TYPE type_copc_t_payrq_display.
"COPY FROM RFPRQSHW
DATA s_layout TYPE slis_layout_alv.
DATA t_fieldcat TYPE slis_t_fieldcat_alv.
DATA t_events TYPE slis_t_event.
DATA pgm LIKE sy-repid.
pgm = sy-repid.
s_layout-zebra = 'X'.
PERFORM fill_fieldcat CHANGING t_fieldcat.
PERFORM fill_events TABLES t_events.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = pgm
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
* i_structure_name = 'PAYRQSHW'
* i_grid_settings = s_grid_settings "only for GRID-FM
is_layout = s_layout
it_fieldcat = t_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* it_sort = t_sort
* IT_FILTER =
* IS_SEL_HIDE =
*me i_default = 'X'
* is_variant = l_variant
it_events = t_events
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_payrq_display
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE ucomm.
WHEN '&IC1' OR '&ETA'.
MESSAGE 'sd' TYPE 'S'.
* IF rs_selfield-tabname NE ''
* AND rs_selfield-tabindex GT 0.
* READ TABLE lt_bdj_item INTO ls_bdj_item INDEX rs_selfield-tabindex.
* IF NOT ls_bdj_item-belnr IS INITIAL.
* SET PARAMETER ID: 'BLN' FIELD ls_bdj_item-belnr,
* 'BUK' FIELD ls_bdj_item-bukrs,
* 'GJR' FIELD ls_bdj_item-gjahr.
* CALL TRANSACTION 'FB03' WITH AUTHORITY-CHECK AND SKIP FIRST SCREEN.
* ENDIF.
* ENDIF.
WHEN 'PRNT'.
WHEN 'BACK'.
* LEAVE to SCREEN 0.
ENDCASE.
ENDFORM.
FORM fill_fieldcat CHANGING t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: l_colpos TYPE i,
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
* i_internal_tabname = 'T_PAYRQ'
i_structure_name = 'COPC_S_PAYRQ_DISPLAY'
i_client_never_display = 'X'
CHANGING
ct_fieldcat = lt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT lt_fieldcat INTO ls_fieldcat.
IF ls_fieldcat-fieldname NE 'KEYNO' AND
ls_fieldcat-fieldname NE 'BUKRS' AND
ls_fieldcat-fieldname NE 'BELNR' AND
ls_fieldcat-fieldname NE 'GJAHR' AND
ls_fieldcat-fieldname NE 'PACUR' AND
ls_fieldcat-fieldname NE 'PAMTF' AND
ls_fieldcat-fieldname NE 'KOART' AND
ls_fieldcat-fieldname NE 'PARNO' AND
ls_fieldcat-fieldname NE 'PAYEE' AND
ls_fieldcat-fieldname NE 'PAYGR' AND
ls_fieldcat-fieldname NE 'AUGBL' AND
ls_fieldcat-fieldname NE 'MNDID'.
ls_fieldcat-no_out = 'X'.
ENDIF.
APPEND ls_fieldcat TO t_fieldcat.
ENDLOOP.
ENDFORM.