TABLES:mara.
TYPE-POOLS:slis.
SELECT-OPTIONS:matnr FOR mara-matnr OBLIGATORY.
DATA:lt_mara TYPE TABLE OF mara WITH HEADER LINE,
fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
layout TYPE slis_layout_alv,
w_repid LIKE sy-repid.
START-OF-SELECTION.
SELECT * FROM mara INTO TABLE lt_mara
WHERE matnr IN matnr.
w_repid = sy-repid.
*定义热键显示字段,使双击事件有效
fieldcat-ref_tabname = 'LT_MARA'.
fieldcat-fieldname = 'MATNR'.
fieldcat-hotspot = 'X'.
APPEND fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid "定义回执程序
i_callback_user_command = 'ALV_USER_COMMAND' "定义执行事件
is_layout = layout
it_fieldcat = fieldcat[]
i_structure_name = 'MARA'
TABLES
t_outtab = lt_mara.
*&---------------------------------------------------------------------*
*& Form alv_user_command
*&---------------------------------------------------------------------*
* text 事件触发子程序
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM alv_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
*获取当前双击ALV行数,获取数据调用事务代码
CASE r_ucomm.
WHEN '&IC1'.
*获取当前ALV所在行数据
READ TABLE lt_mara INDEX rs_selfield-tabindex.
SET PARAMETER ID 'MAT' FIELD lt_mara-matnr.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "alv_user_command
转载于:https://www.cnblogs.com/zxiu/p/7611532.html