ABAP-ALV报表中双击某个单号跳转到对应界面

例如:我的ALV报表中有SO&STO单号,怎么实现双击跳转至VA03&ME23N界面

一、我的DISPLAY用的是FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’,如下:我的USER_COMMAND事件在这个函数对应的是 I_CALLBACK_USER_COMMAND

FORM DISPLAY .
  PERFORM FCAT_BUILDER.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM       = SY-REPID
      I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'   " 自訂icon圖示
      IS_LAYOUT_LVC            = W_LAYOUT
      IT_FIELDCAT_LVC          = T_FCAT
      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'
      IS_VARIANT               = GS_VARIANT
    TABLES
      T_OUTTAB                 = GT_DATA.
ENDFORM.

二、双击事件对应的ABAP段如下:

FORM USER_COMMAND USING R_UCOMM     LIKE SY-UCOMM    " ①
                        RS_SELFIELD TYPE SLIS_SELFIELD." ②

  CASE R_UCOMM.       " 触发的功能码
    WHEN '&IC1'.             " ③
      READ TABLE GT_DATA ASSIGNING <FS> INDEX RS_SELFIELD-TABINDEX." ④
      PERFORM COMMAND_ACTION USING RS_SELFIELD-FIELDNAME.
    WHEN '&SEND'.
      PERFORM RELNEW CHANGING RS_SELFIELD-REFRESH. " 取得选项勾選的資料
      PERFORM EXE_ACTION. 
  ENDCASE.

ENDFORM.  "USER_COMMAND
FORM COMMAND_ACTION  USING FIELDNAME.

  TRANSLATE FIELDNAME TO UPPER CASE.       "将栏位名称转换为大写 
  CASE FIELDNAME.
    WHEN 'VBELN'."如果是雙擊VBELN的欄位就跳到VA03的程式
      SET PARAMETER ID: 'AUN' FIELD <FS>-VBELN.       "⑤
      IF SY-SUBRC = 0.
        CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. "跳过第一个屏幕到VA03屏幕
      ENDIF.
    WHEN 'EBELN'."如果是雙擊VBELN的欄位就跳到VA03的程式
      IF <FS>-EBELN IS NOT INITIAL.
        SET PARAMETER ID: 'BES' FIELD <FS>-EBELN.
        IF SY-SUBRC = 0.
          CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
        ENDIF.
      ENDIF.

  ENDCASE.
ENDFORM.

①syst这个structure中有ucomm字段,它是触发PAI的功能代码,SY-UCOMM属于系统字度段,通常我们定义ok_code为sy-ucomm类型,用来记录屏幕操作的功能代码
②SLIS_SELFIELD 全局类型通用列表构建块,看看它是什么鬼样子
在这里插入图片描述
看sy-tabix
③怎么看功能码呢?如下GUI状态中红色选框都是,&IC1就是这里来的。
在这里插入图片描述
④读取内表中你鼠标或者选择行的数据

⑤设置参数INF的值为’AUN’ ,‘AUN’ 怎么查呢?此处我是要跳转到VA03的界面
VA03 光标放于订单框中,F1,看技术信息,参数ID为AUN.
跳转到ME23N同理。
在这里插入图片描述

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值