ALV表格数据双击事件

ALV表格数据双击事件这个功能,财务部门的人需要的REPORT,大多都需要这个功能。

我从《SAP工程师突击》抄下这段代码来,运行调试通过。

效果如下图:




代码如下:


REPORT ZR_EXAMPLE_16.

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             "定义回执程序
      IS_LAYOUT                     = LAYOUT
      I_STRUCTURE_NAME              = 'MARA'
      I_CALLBACK_USER_COMMAND   = 'ALV_USER_COMMAND'   "定义执行事件
      IT_FIELDCAT                       = FIELDCAT[]
    TABLES
      T_OUTTAB                          = LT_MARA.

*---------------------------------------------------------------------*
*       事件触发子程序                         *
*---------------------------------------------------------------------*
FORM ALV_USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM
                         RS_SELFIELD TYPE SLIS_SELFIELD.
  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.




  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值