ABAP报表调用标准事务代码-双击物料调转至MM03 等跳转功能
* &---------------------------------------------------------------------*
* & 3 ALV 三个双击事件。
* &---------------------------------------------------------------------*
FORM FRM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
DATA:LS_OPT TYPE CTU_PARAMS.
DATA LT_MESSAGE TYPE TABLE OF BDCMSGCOLL.
DATA ZCX_SY_AUTHORIZATION_ERROR TYPE REF TO CX_SY_AUTHORIZATION_ERROR.
DATA:LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA: LT_OUT LIKE LINE OF GT_OUT.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = LR_GRID.
CALL METHOD LR_GRID->CHECK_CHANGED_DATA.
READ TABLE GT_OUT INTO LT_OUT INDEX RS_SELFIELD-TABINDEX.
CASE R_UCOMM.
WHEN '&IC1'."双击事件 此处通过设断点调试寻找r_ucomm值,填写到此处
CASE RS_SELFIELD-FIELDNAME.
WHEN 'MATNR'.
IF SY-SUBRC = 0.
SET PARAMETER ID 'MAT' FIELD LT_OUT-MATNR.
CALL TRANSACTION 'MM03' ."AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'PRUEFLOSS'.
IF SY-SUBRC = 0.
SET PARAMETER ID 'QLS' FIELD LT_OUT-PRUEFLOSS.
CALL TRANSACTION 'QA03' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'PRUEFLOS'.
IF SY-SUBRC = 0.
SET PARAMETER ID 'QLS' FIELD LT_OUT-PRUEFLOS.
CALL TRANSACTION 'QA03' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'CHARG'.
IF SY-SUBRC = 0.
SET PARAMETER ID 'CHA' FIELD LT_OUT-CHARG.
SET PARAMETER ID 'MAT' FIELD LT_OUT-MATNR.
SET PARAMETER ID 'WRK' FIELD LT_OUT-WERKS.
CALL TRANSACTION 'MSC3N'." AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'EBELN'.
IF SY-SUBRC = 0.
LS_OPT-DISMODE = 'E'.
LS_OPT-DEFSIZE = 'X'.
PERFORM FRM_DBC_DYNPRO USING 'SAPLMEGUI' '0014'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE' '=MECHOB'.
PERFORM FRM_DBC_DYNPRO USING 'SAPLMEGUI' '0002'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE' '=MEOK'.
PERFORM FRM_BDC_FIELD USING 'MEPO_SELECT-EBELN' LT_OUT-EBELN.
PERFORM FRM_BDC_FIELD USING 'MEPO_SELECT-BSTYP_F' 'X'.
TRY .
CALL TRANSACTION 'ME23N' WITH AUTHORITY-CHECK
USING GT_BDCDATA
OPTIONS FROM LS_OPT
MESSAGES INTO LT_MESSAGE.
CATCH CX_SY_AUTHORIZATION_ERROR INTO ZCX_SY_AUTHORIZATION_ERROR.
CALL METHOD ZCX_SY_AUTHORIZATION_ERROR->IF_MESSAGE~GET_TEXT
RECEIVING
RESULT = DATA(LV_TEXT).
MESSAGE LV_TEXT TYPE 'E'.
ENDTRY.
ENDIF.