双击行项目进入不同的TCODE 例子

主要用USERCOMMAND来实现。

1.选择界面定义需要传输的参数ID:

SELECT-OPTIONS:s_banfn FOR eban-banfn memory id BAN , "采购申请号
               s_matnr FOR marc-matnr memory id MAT, "物料号码                  后增加
这个ID后面的就是传输的字段了,后面会用到的。

2.调用ALV的时候增加 usercommand事件:

 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = w_repid
      i_callback_user_command = 'USER_COMMAND'
      is_layout               = i_layout
      it_fieldcat             = i_fieldcat_alv[]
      it_events               = i_events[]
      i_save                  = 'A'
    TABLES
      t_outtab                = inner_tab.

3.usercommand事件:

FORM user_command USING i_ucomm LIKE sy-ucomm
                        is_selfield TYPE slis_selfield. CASE i_ucomm.
    WHEN '&DATA_SAVE'.
      PERFORM save_detail.
   WHEN '&IC1'. " Pick
   case is_selfield-fieldname.
   when 'BANFN'.        "如果双击采购申请,则进入ME52N
READ TABLE inner_tab INDEX is_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'BAN' FIELD inner_tab-banfn.
CALL TRANSACTION 'ME52N' AND SKIP FIRST SCREEN.
ENDIF.
 WHEN 'MATNR'.          "如果双击物料号码,则进入MD04
 READ TABLE inner_tab INDEX is_selfield-tabindex.
IF sy-subrc EQ 0.
SET PARAMETER ID 'MAT' FIELD inner_tab-matnr.
SET PARAMETER ID 'WRK' FIELD inner_tab-werks.
CALL TRANSACTION 'MD04' AND SKIP FIRST SCREEN.
ENDIF.
    ENDCASE.

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值