ABAP ALV实现双击跳转事件

本文介绍如何在ABAP中使用ALV(grid)并设置点击事件,包括调用ALV函数时配置点击事件的FORM名称及编写点击事件的逻辑处理。

第一步:调用ALV函数的时候,在I_CALLBACK_USER_COMMAND中确定好点击事件的FORM名,比如这里的USER_COMMAND

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_GRID_TITLE             = '订单和物料信息'
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'FRM_STATUS'  "调用GUI状态
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'  "调用屏幕点击事件
      IS_LAYOUT_LVC            = GS_LAYOUT
      IT_FIELDCAT_LVC          = GT_FIELDCAT[]
      I_DEFAULT                = 'X'
      I_SAVE                   = 'A'
    TABLES
      T_OUTTAB                 = GT_TAB[]
    EXCEPTIONS
      PROGRAM_ERROR            = 1
      OTHERS                   = 2.

第二步: 编写USER_COMMAND中的逻辑,注意引入相关参数

FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
                        P_RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE P_UCOMM.
      "点击跳转
    WHEN '&IC1'.
      PERFORM FRM_SAVE.  "保存ALV上的改动到内表
      IF P_RS_SELFIELD-FIELDNAME = 'MATNR' OR P_RS_SELFIELD-FIELDNAME = 'MAKTX'.
        READ TABLE GT_TAB INDEX P_RS_SELFIELD-TABINDEX.
        IF SY-SUBRC = 0.
          PERFORM FRM_GETINFO1 USING GT_TAB-MATNR. "取数
          PERFORM FRM_FIELDCAT1. "定义FIELDCAT
          PERFORM FRM_OUTPUT1.  "调用ALV函数
        ENDIF.
      ELSEIF P_RS_SELFIELD-FIELDNAME = 'AUFNR'."生产订单携带订单号跳转CO03。
          READ TABLE GT_TAB INDEX P_RS_SELFIELD-TABINDEX.
          SET PARAMETER ID: 'ANR' FIELD GT_TAB-AUFNR.
          CALL TRANSACTION 'CO03' AND SKIP FIRST SCREEN.
      ELSE.
        EXIT.
      ENDIF.
    WHEN OTHERS.
  ENDCASE.

ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值