目的:双击alv行,进入该行凭证的FB03事务码
"第一部分
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_buffer_active = 'X'
i_save = 'A'
i_callback_program = sy-repid
i_callback_user_command = 'FRM_USER_COMMAND'
i_callback_pf_status_set = 'SET_PF_STATUS'
is_layout = gd_layout
it_fieldcat = gt_fieldcat
TABLES
t_outtab = alv_out
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.
"第二部分
FORM frm_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA:grid TYPE REF TO cl_gui_alv_grid.
DATA stbl TYPE lvc_s_stbl.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = grid.
CALL METHOD grid->check_changed_data.
rs_selfield-refresh = 'X'.
rs_selfield-row_stable = 'X'.
rs_selfield-col_stable = 'X'.
stbl-row = 'X'." 基于行的稳定刷新
stbl-col = 'X'." 基于列稳定刷新
CALL METHOD grid->refresh_table_display
EXPORTING
is_stable = stbl.
CASE r_ucomm.
WHEN '&IC1'. "ADD BY 80007687 20210826
PERFORM frm_deal_fb03 USING rs_selfield.
ENDCASE.
ENDFORM.
"第三部分
FORM frm_deal_fb03 USING rs_selfield TYPE slis_selfield.
READ TABLE alv_out INDEX rs_selfield-tabindex.
IF sy-subrc = 0.
SET PARAMETER ID: 'BLN' FIELD alv_out-belnr. "PARAMETER ID通过F1->technical information->Parameter id可以获得
SET PARAMETER ID: 'BUK' FIELD alv_out-bukrs.
SET PARAMETER ID: 'GJR' FIELD alv_out-gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN ."SKIP FIRST SCREEN 忽略selection screen
ENDIF.
ENDFORM.