ALV表格数据双击事件

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

posted @ 2017-09-29 16:14  独吊东南枝  阅读(789)  评论(0编辑  收藏  举报