将用户需要的一系列操作合并到一个TECODE,使用SUBMIT跳转,代码简单,但是对用户非常方便
*&---------------------------------------------------------------------*
*& Report ZLQT_JUMP
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZRPP039.TABLES: sscrfields,stxftxt,AFPO,AUFK,ZTPP024. "定义工作区
DATA GV_AUFNR TYPE AFRU-AUFNR .
DATA : GV_WERKS TYPE AFPO-DWERK .PARAMETERS P_DWERK TYPE WERKS_D MODIF ID WRK DEFAULT '2110' .
PARAMETERS P_UNAME TYPE SY-UNAME DEFAULT SY-UNAME .
SELECT-OPTIONS S_UNAME FOR AUFK-ERNAM NO-DISPLAY .
SELECT-OPTIONS: S_AUFNR FOR AFPO-AUFNR MODIF ID ANR.
PARAMETERS S_ZTYPE TYPE ZTPP024-ZSLIP_TYPE NO-DISPLAY.
SELECTION-SCREEN: FUNCTION KEY 1, "激活按钮FUNCTION KEY 2,FUNCTION KEY 3,FUNCTION KEY 4,FUNCTION KEY 5 .INITIALIZATION.sscrfields-functxt_01 = '@O6@ ZPP006壓批 ' . "设置按钮sscrfields-functxt_02 = '@5Y@ ZCO02A核發 ' .sscrfields-functxt_03 = '@0X@ ZPP006A工單列印' .sscrfields-functxt_04 = '@XP@ ZPP012發料 ' .sscrfields-functxt_05 = '@0X@ ZPP012A發料列印' .CLEAR :GV_AUFNR,S_AUFNR[],S_AUFNR .
* GET PARAMETER ID 'ANR' FIELD GV_AUFNR .
* S_AUFNR-SIGN = 'I' .
* S_AUFNR-OPTION = 'EQ' .
* S_AUFNR-LOW = GV_AUFNR .
* APPEND S_AUFNR .
AT SELECTION-SCREEN.CLEAR S_UNAME[] .S_UNAME-SIGN = 'I' .S_UNAME-OPTION = 'EQ' .S_UNAME-LOW = P_UNAME .APPEND S_UNAME .CASE sscrfields-ucomm. "处理按钮命令WHEN 'FC01'.IF S_AUFNR-LOW IS NOT INITIAL.SET PARAMETER ID 'ANR' FIELD S_AUFNR-LOW .ENDIF.CALL TRANSACTION 'ZPP006' AND SKIP FIRST SCREEN.WHEN 'FC02'.IF S_AUFNR-LOW IS NOT INITIAL.SET PARAMETER ID 'ANR' FIELD S_AUFNR-LOW .ENDIF.CALL TRANSACTION 'ZCO02A' AND SKIP FIRST SCREEN.WHEN 'FC03'.
* SET PARAMETER ID 'ANR' FIELD S_AUFNR-LOW .
* S_AUFNR-SIGN = 'I' .
* S_AUFNR-OPTION = 'EQ' .
* S_AUFNR-LOW = S_AUFNR-LOW .
* APPEND S_AUFNR .SUBMIT ZRPP009 USING SELECTION-SCREEN '1000'WITH P_WERKS = P_DWERKWITH P_UNAME-LOW = P_UNAMEWITH S_AUFNR IN S_AUFNRAND RETURN .WHEN 'FC04'.
* SET PARAMETER ID 'ANR' FIELD S_AUFNR-LOW .
* S_AUFNR-SIGN = 'I' .
* S_AUFNR-OPTION = 'EQ' .
* S_AUFNR-LOW = S_AUFNR-LOW .CLEAR : S_UNAME[] .SUBMIT ZBPP012_A01 USING SELECTION-SCREEN '1000'WITH PCWERKS = P_DWERKWITH PCMAKER = P_UNAMEWITH SCUNAME IN S_UNAMEWITH SCAUFNR IN S_AUFNRAND RETURN .WHEN'FC05' .
* S_AUFNR-SIGN = 'I' .
* S_AUFNR-OPTION = 'EQ' .
* S_AUFNR-LOW = S_AUFNR-LOW .
* APPEND S_AUFNR .IF P_UNAME IS NOT INITIAL.S_UNAME-SIGN = 'I' .S_UNAME-OPTION = 'EQ' .S_UNAME-LOW = P_UNAME .APPEND S_UNAME .ENDIF.SUBMIT ZBPP012A USING SELECTION-SCREEN '1000'WITH SCUNAME IN S_UNAMEWITH PCZTYPE = 'A'WITH SCAUFNR IN S_AUFNRVIA SELECTION-SCREENAND RETURN .CLEAR:S_UNAME,S_UNAME[].ENDCASE.START-OF-SELECTION.SET PARAMETER ID 'WRK' FIELD P_DWERK .CALL TRANSACTION 'CO01' .GET PARAMETER ID 'ANR' FIELD GV_AUFNR .IF GV_AUFNR IS NOT INITIAL.CLEAR : S_AUFNR ,S_AUFNR[] .S_AUFNR-LOW = GV_AUFNR .S_AUFNR-SIGN = 'I' .S_AUFNR-OPTION = 'EQ' .APPEND S_AUFNR .
* CALL TRANSACTION 'CO01' .SUBMIT ZRPP039 USING SELECTION-SCREEN '1000'WITH P_DWERK = P_DWERKWITH P_UNAME = P_UNAMEWITH S_AUFNR IN S_AUFNRVIA SELECTION-SCREEN. "VIA SELECTION-SCREEN 表示显示被调用的屏幕ENDIF.
* LEAVE TO TRANSACTION 'ZPP039' .