ZPPRQROUT01TOP:
*&---------------------------------------------------------------------* *& 包含 ZPPRQROUT01TOP *&---------------------------------------------------------------------* *---------------------------------------------------------------------* * Tables Declare * *---------------------------------------------------------------------* TABLES : MAPL,TVM1T, MAKT, MARA, PLFLD, PLKO, PLPO, PLPOD. *---------------------------------------------------------------------* * Internal Table Definition * *---------------------------------------------------------------------* DATA: BEGIN OF ITAB OCCURS 0, MATNR LIKE MAPL-MATNR, " 物料号 MAKTX LIKE MAKT-MAKTX, " 物料描述 VBELN LIKE MAPL-VBELN, "2011-05-12 销售订单 POSNR LIKE MAPL-POSNR, "2011-05-12 销售订单行项目 WERKS LIKE MAPL-WERKS, " 工厂 DATUV LIKE MAPL-DATUV, " 有效起始日期 DATUB LIKE PLFLD-DATUB, " 有效截止日期 PLNTY LIKE MAPL-PLNTY, " 任务清单类型 PLNNR LIKE MAPL-PLNNR, " 任务清单组码 PLNAL LIKE MAPL-PLNAL, " 组计数器 PLNKN LIKE PLPO-PLNKN, "节点 ZAEHL LIKE MAPL-ZAEHL, "计数器 VERWE LIKE PLKO-VERWE, " 任务清单使用 STATU LIKE PLKO-STATU, " 状态 BMSCH LIKE PLPO-BMSCH, " 基本数量 MEINH LIKE PLPO-MEINH, " 作业/工序的计量单位 VORNR LIKE PLPO-VORNR, " 操作/活动编号 STEUS LIKE PLPO-STEUS, " 控制码 WERKS_OP LIKE PLPO-WERKS, "工序工厂 ARBPL LIKE PLPOD-ARBPL, " 工作中心 KTSCH LIKE PLPO-KTSCH, "工序代码 LTXA1 LIKE PLPO-LTXA1, " 工序短文本 LGTXT TYPE STRING, "工序长文本 VGW01 LIKE PLPO-VGW01, " 标准值 VGW02 LIKE PLPO-VGW02, " 标准值 VGW03 LIKE PLPO-VGW03, " 标准值 VGW04 LIKE PLPO-VGW04, " 标准值 VGW05 LIKE PLPO-VGW05, " 标准值 VGW06 LIKE PLPO-VGW06, " 标准值 VGE01 LIKE PLPO-VGE01, "标准值计量单位 VGE02 LIKE PLPO-VGE02, "标准值计量单位 VGE03 LIKE PLPO-VGE03, "标准值计量单位 VGE04 LIKE PLPO-VGE04, "标准值计量单位 VGE05 LIKE PLPO-VGE05, "标准值计量单位 VGE06 LIKE PLPO-VGE06, "标准值计量单位 USR00 TYPE USRCHAR20, "原定额 ANZMA LIKE PLPO-ANZMA, "雇员数 SPMUS LIKE PLPO-SPMUS, " 所需分解 SPLIM LIKE PLPO-SPLIM, "分解数 UEMUS LIKE PLPO-UEMUS, " 要求重叠 MINWE LIKE PLPO-MINWE, " 最小发送数量 FRDLB LIKE PLPO-FRDLB, " 指示符:带外协加工的外部处理工序 INFNR LIKE PLPO-INFNR, " 采购信息记录的编号 EKORG LIKE PLPO-EKORG, " 采购组织 MATKL LIKE PLPO-MATKL, " 物料组 EKGRP LIKE PLPO-EKGRP, " 外协加工的采购组 PLIFZ LIKE PLPO-PLIFZ, " 计划的天数内交货 PEINH LIKE PLPO-PEINH, " 价格单位 PREIS LIKE PLPO-PREIS, " 采购信息记录中的净价 SAKTO LIKE PLPO-SAKTO, " 成本要素 WAERS LIKE PLPO-WAERS, " 货币码 KTEXT LIKE PLKO-KTEXT, " 任务清单描述 CKSELKZ LIKE PLPO-CKSELKZ, "成本核算相关 END OF ITAB. ***----- "DATA:ITAB_1 LIKE ITAB OCCURS 0 WITH HEADER LINE. DATA: BEGIN OF ITAB_1 OCCURS 0, MATNR LIKE MAPL-MATNR, " 物料号 MAKTX LIKE MAKT-MAKTX, " 物料描述 "VBELN LIKE MAPL-VBELN, "2011-05-12 销售订单 "POSNR LIKE MAPL-POSNR, "2011-05-12 销售订单行项目 WERKS LIKE MAPL-WERKS, " 工厂 DATUV LIKE MAPL-DATUV, " 有效起始日期 DATUB LIKE PLFLD-DATUB, " 有效截止日期 "PLNTY LIKE MAPL-PLNTY, " 任务清单类型 PLNNR LIKE MAPL-PLNNR, " 任务清单组码 PLNAL LIKE MAPL-PLNAL, " 组计数器 "PLNKN LIKE PLPO-PLNKN, "节点 "ZAEHL LIKE MAPL-ZAEHL, "计数器 VERWE LIKE PLKO-VERWE, " 任务清单使用 STATU LIKE PLKO-STATU, " 状态 "BMSCH LIKE PLPO-BMSCH, " 基本数量 "MEINH LIKE PLPO-MEINH, " 作业/工序的计量单位 "VORNR LIKE PLPO-VORNR, " 操作/活动编号 "STEUS LIKE PLPO-STEUS, " 控制码 "WERKS_OP LIKE PLPO-WERKS, "工序工厂 "ARBPL LIKE PLPOD-ARBPL, " 工作中心 "KTSCH LIKE PLPO-KTSCH, "工序代码 "LTXA1 LIKE PLPO-LTXA1, " 工序短文本 "LGTXT TYPE STRING, "工序长文本 VGW01 LIKE PLPO-VGW01, " 标准值 VGW02 LIKE PLPO-VGW02, " 标准值 VGW04 LIKE PLPO-VGW04, " 标准值 "VGW04 LIKE PLPO-VGW04, " 标准值 "VGW05 LIKE PLPO-VGW05, " 标准值 "VGW06 LIKE PLPO-VGW06, " 标准值 "VGE01 LIKE PLPO-VGE01, "标准值计量单位 "VGE02 LIKE PLPO-VGE02, "标准值计量单位 "VGE03 LIKE PLPO-VGE03, "标准值计量单位 "VGE04 LIKE PLPO-VGE04, "标准值计量单位 "VGE05 LIKE PLPO-VGE05, "标准值计量单位 "VGE06 LIKE PLPO-VGE06, "标准值计量单位 "USR00 TYPE USRCHAR20, "原定额 "SPMUS LIKE PLPO-SPMUS, " 所需分解 "UEMUS LIKE PLPO-UEMUS, " 要求重叠 "MINWE LIKE PLPO-MINWE, " 最小发送数量 "FRDLB LIKE PLPO-FRDLB, " 指示符:带外协加工的外部处理工序 "INFNR LIKE PLPO-INFNR, " 采购信息记录的编号 "EKORG LIKE PLPO-EKORG, " 采购组织 "MATKL LIKE PLPO-MATKL, " 物料组 "EKGRP LIKE PLPO-EKGRP, " 外协加工的采购组 "PLIFZ LIKE PLPO-PLIFZ, " 计划的天数内交货 "PEINH LIKE PLPO-PEINH, " 价格单位 "PREIS LIKE PLPO-PREIS, " 采购信息记录中的净价 "SAKTO LIKE PLPO-SAKTO, " 成本要素 "WAERS LIKE PLPO-WAERS, " 货币码 KTEXT LIKE PLKO-KTEXT, " 任务清单描述 "CKSELKZ LIKE PLPO-CKSELKZ, "成本核算相关 END OF ITAB_1. ***----- DATA: BEGIN OF IT_MAPL OCCURS 0, MATNR LIKE MAPL-MATNR, " 物料号 WERKS LIKE MAPL-WERKS, " 工厂 VBELN LIKE MAPL-VBELN, "2011-05-12 销售订单 POSNR LIKE MAPL-POSNR, "2011-05-12 销售订单行项目 PLNTY LIKE MAPL-PLNTY, " 任务清单类型 PLNNR LIKE MAPL-PLNNR, " 任务清单组码 PLNAL LIKE MAPL-PLNAL, " 组计数器 ZKRIZ LIKE MAPL-ZKRIZ, " 附加条件计数器 ZAEHL LIKE MAPL-ZAEHL, " 内部计数器 DATUV LIKE MAPL-DATUV, " 有效起始日期 LOEKZ LIKE MAPL-LOEKZ, " 删除标识 END OF IT_MAPL. DATA: BEGIN OF IT_PLKO OCCURS 0, PLNTY LIKE PLKO-PLNTY, PLNNR LIKE PLKO-PLNNR, * plnkn LIKE plko-plnkn, PLNAL LIKE PLKO-PLNAL, PLNKN LIKE PLPO-PLNKN, "节点 ZAEHL LIKE PLKO-ZAEHL, DATUV LIKE PLKO-DATUV, TECHV LIKE PLKO-TECHV, AENNR LIKE PLKO-AENNR, LOEKZ LIKE PLKO-LOEKZ, VERWE LIKE PLKO-VERWE, " 任务清单使用 STATU LIKE PLKO-STATU, " 状态 BMSCH LIKE PLPO-BMSCH, " 基本数量 MEINH LIKE PLPO-MEINH, " 计量单位 VORNR LIKE PLPO-VORNR, " 操作/活动编号 STEUS LIKE PLPO-STEUS, " 控制码 KTSCH LIKE PLPO-KTSCH, "工序代码 LTXA1 LIKE PLPO-LTXA1, " 工序短文本 * arbpl LIKE plpo-arbpl, END OF IT_PLKO. *----------------------------------------------------------------------* * ALV Definition * *----------------------------------------------------------------------* TYPE-POOLS: SLIS. DATA: G_REPID TYPE SY-REPID, GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, GT_LAYOUT TYPE SLIS_LAYOUT_ALV, GT_SORTINFO TYPE SLIS_SORTINFO_ALV, GT_LVC_TITLE TYPE LVC_TITLE, GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER, GT_EVENTS TYPE SLIS_T_EVENT, GT_FCAT TYPE LVC_T_FCAT, GT_TABLE TYPE REF TO DATA, GS_SETTINGS TYPE LVC_S_GLAY, F2CODE LIKE SY-UCOMM VALUE '&TEA'. DATA: G_STATUS_FORM TYPE SLIS_FORMNAME VALUE 'PF_STATUS_SET', G_COMMAND_FORM TYPE SLIS_FORMNAME VALUE 'USER_COMMAND'. DATA: EVENTS TYPE SLIS_ALV_EVENT OCCURS 0 WITH HEADER LINE. *---------------------------------------------------------------------* * Gobal Definition * *---------------------------------------------------------------------* DATA G_POS TYPE I. *---------------------------------------------------------------------* * End * *---------------------------------------------------------------------*
ZPPRQROUT01S01:
*&---------------------------------------------------------------------* *& 包括 ZPPRQROUT01S01 *&---------------------------------------------------------------------* *---------------------------------------------------------------------* * Define the selection screen here * *---------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-T01. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. " 物料号 * S_MVGR1 FOR TVM1T-MVGR1. PARAMETERS: S_DATUV LIKE PLKO-DATUV DEFAULT SY-DATUM." 有效日期 SELECT-OPTIONS: S_ARBPL FOR PLPOD-ARBPL. " 工作中心 PARAMETERS : P_PLNTY LIKE MAPL-PLNTY OBLIGATORY DEFAULT 'N', " 任务清单类型 P_WERKS LIKE MARC-WERKS OBLIGATORY " 工厂 DEFAULT '1010'. SELECT-OPTIONS:S_MATKL FOR MARA-MATKL. SELECTION-SCREEN END OF BLOCK BLK1. SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002. PARAMETERS:CB_1 AS CHECKBOX MODIF ID 1 USER-COMMAND C1. * CB_2 AS CHECKBOX, * CB_3 AS CHECKBOX. SELECTION-SCREEN END OF BLOCK BLK2. *************屏幕控制*********** AT SELECTION-SCREEN. "屏幕执行声明 AUTHORITY-CHECK OBJECT 'M_MATE_WRK' * ID 'ACTVT' FIELD '*' ID 'WERKS' FIELD P_WERKS. IF SY-SUBRC <> 0. MESSAGE '您没有分配工厂代码' && P_WERKS && '权限,请检查' TYPE 'E'. ENDIF. AT SELECTION-SCREEN OUTPUT. IF CB_1 = ''. LOOP AT SCREEN. IF SCREEN-GROUP4 = '010' OR SCREEN-GROUP4 = '011' . SCREEN-ACTIVE = 0. ENDIF. MODIFY SCREEN. ENDLOOP. ENDIF.
ZPPRQROUT01F01:
*&---------------------------------------------------------------------* *& 包括 ZPPRQROUT01F01 *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form F_GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_GET_DATA . *- 分配任务清单到物料 数据 SELECT MAPL~MATNR MAPL~WERKS MAPL~PLNTY MAPL~PLNNR MAPL~PLNAL MAPL~ZKRIZ MAPL~ZAEHL MAPL~DATUV MAPL~LOEKZ MAPL~VBELN MAPL~POSNR FROM MAPL INNER JOIN MARA ON MAPL~MATNR = MARA~MATNR INTO CORRESPONDING FIELDS OF TABLE IT_MAPL WHERE MAPL~MATNR IN S_MATNR * AND MARA~MVGR1 IN S_MVGR1 AND MAPL~WERKS EQ P_WERKS AND MAPL~PLNTY EQ P_PLNTY AND MAPL~LOEKZ EQ SPACE AND MARA~MATKL IN S_MATKL. IF IT_MAPL[] IS NOT INITIAL. SELECT PLKO~PLNTY PLKO~PLNNR * plko~plnkn PLKO~PLNAL PLPO~PLNKN "节点 PLKO~ZAEHL PLKO~DATUV PLKO~TECHV PLKO~AENNR PLKO~LOEKZ PLPO~BMSCH PLPO~MEINH PLPO~VORNR PLPO~STEUS PLPO~LTXA1 PLPO~KTSCH INTO CORRESPONDING FIELDS OF TABLE IT_PLKO FROM PLKO JOIN PLAS ON PLKO~PLNTY = PLAS~PLNTY AND PLKO~PLNNR = PLAS~PLNNR AND PLKO~PLNAL = PLAS~PLNAL JOIN PLPO ON PLPO~PLNTY = PLAS~PLNTY AND PLPO~PLNNR = PLAS~PLNNR AND PLPO~PLNKN = PLAS~PLNKN * join plpo on plko~plnty = plpo~plnty * and plko~plnnr = plpo~plnnr ** AND plko~plnal = plpo~vplal * and plko~zaehl = plpo~zaehl JOIN CRHD AS C ON C~OBJID = PLPO~ARBID * and c~objty = 'A' FOR ALL ENTRIES IN IT_MAPL WHERE PLKO~PLNTY = IT_MAPL-PLNTY AND PLKO~PLNNR = IT_MAPL-PLNNR AND PLKO~PLNAL = IT_MAPL-PLNAL AND PLPO~LOEKZ EQ SPACE AND C~ARBPL IN S_ARBPL AND C~OBJTY = 'A' AND PLKO~DATUV <= S_DATUV. ENDIF. SORT IT_PLKO BY PLNTY PLNNR PLNAL. DELETE ADJACENT DUPLICATES FROM IT_PLKO COMPARING PLNTY PLNNR PLNAL. ENDFORM. " F_GET_DATA *&---------------------------------------------------------------------* *& Form F_DEAL_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_DEAL_DATA . DATA: BEGIN OF IT_MAKT OCCURS 0, MATNR LIKE MAKT-MATNR, MAKTX LIKE MAKT-MAKTX, END OF IT_MAKT. DATA : IT_TSK_TAB TYPE TABLE OF CAPP_TSK WITH HEADER LINE, IT_OPR_TAB TYPE TABLE OF CAPP_OPR WITH HEADER LINE. * lt_phase_tab type standard table of capp_opr with header line, * lt_SUBOPR_TAB TYPE STANDARD TABLE OF CAPP_OPR WITH HEADER LINE, * lt_REFERR_TAB TYPE STANDARD TABLE OF CAPP_OPR WITH HEADER LINE, * lt_REFMIS_TAB TYPE STANDARD TABLE OF CAPP_OPR WITH HEADER LINE. DATA: LTD_TLINE TYPE STANDARD TABLE OF TLINE, LTH_TLINE TYPE TLINE, LWK_NAME TYPE THEAD-TDNAME. *- 物料描述 数据 SELECT MAKT~MATNR MAKT~MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT FROM MAKT FOR ALL ENTRIES IN IT_MAPL WHERE MAKT~MATNR EQ IT_MAPL-MATNR AND MAKT~SPRAS EQ SY-LANGU. *- 内表排序 SORT : IT_MAPL BY PLNTY PLNNR PLNAL, IT_MAKT BY MATNR. LOOP AT IT_PLKO. READ TABLE IT_MAPL WITH KEY PLNTY = IT_PLKO-PLNTY PLNNR = IT_PLKO-PLNNR PLNAL = IT_PLKO-PLNAL BINARY SEARCH. IF SY-SUBRC EQ 0. CALL FUNCTION 'CARO_ROUTING_READ' EXPORTING DATE_FROM = '19000101' DATE_TO = '99991231' PLNTY = IT_PLKO-PLNTY PLNNR = IT_PLKO-PLNNR PLNAL = IT_PLKO-PLNAL MATNR = IT_MAPL-MATNR BUFFER_DEL_FLG = 'X' DELETE_ALL_CAL_FLG = 'X' ADAPT_FLG = 'X' IV_CREATE_ADD_CHANGE = ' ' TABLES TSK_TAB = IT_TSK_TAB * SEQ_TAB = OPR_TAB = IT_OPR_TAB * phase_tab = lt_phase_tab * SUBOPR_TAB = lt_SUBOPR_TAB * REL_TAB = * COM_TAB = * REFERR_TAB = lt_REFERR_TAB * REFMIS_TAB = lt_REFMIS_TAB EXCEPTIONS NOT_FOUND = 1 REF_NOT_EXP = 2 NOT_VALID = 3 OTHERS = 4 . IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. SORT IT_TSK_TAB BY ZAEHL DESCENDING. SORT IT_OPR_TAB BY PLNKN ASCENDING ZAEHL DESCENDING. DELETE ADJACENT DUPLICATES FROM IT_OPR_TAB COMPARING PLNNR PLNKN. DELETE ADJACENT DUPLICATES FROM IT_TSK_TAB COMPARING PLNNR. LOOP AT IT_TSK_TAB. MOVE-CORRESPONDING IT_PLKO TO ITAB. MOVE : IT_MAPL-MATNR TO ITAB-MATNR, IT_MAPL-WERKS TO ITAB-WERKS. MOVE-CORRESPONDING IT_TSK_TAB TO ITAB. READ TABLE IT_MAKT WITH KEY MATNR = ITAB-MATNR BINARY SEARCH. IF SY-SUBRC EQ 0. MOVE IT_MAKT-MAKTX TO ITAB-MAKTX. ENDIF. LOOP AT IT_OPR_TAB. *- 取工作中心 * SELECT SINGLE crhd~arbpl INTO itab-arbpl * FROM crhd JOIN * afvc ON afvc~arbid = crhd~objid * WHERE plnnr EQ it_opr_tab-plnnr * AND zaehl EQ it_opr_tab-zaehl. CLEAR ITAB-ARBPL. SELECT SINGLE CRHD~ARBPL INTO ITAB-ARBPL FROM CRHD WHERE CRHD~OBJID EQ IT_OPR_TAB-ARBID. MOVE : IT_OPR_TAB-BMSCH TO ITAB-BMSCH, IT_OPR_TAB-MEINH TO ITAB-MEINH, IT_OPR_TAB-VORNR TO ITAB-VORNR, IT_OPR_TAB-STEUS TO ITAB-STEUS, * it_opr_tab-arbpl TO itab-arbpl, IT_OPR_TAB-VGW01 TO ITAB-VGW01, IT_OPR_TAB-VGW02 TO ITAB-VGW02, IT_OPR_TAB-VGW03 TO ITAB-VGW03, IT_OPR_TAB-VGW04 TO ITAB-VGW04, IT_OPR_TAB-VGW05 TO ITAB-VGW05, IT_OPR_TAB-VGW06 TO ITAB-VGW06, IT_OPR_TAB-VGE01 TO ITAB-VGE01, IT_OPR_TAB-VGE02 TO ITAB-VGE02, IT_OPR_TAB-VGE03 TO ITAB-VGE03, IT_OPR_TAB-VGE04 TO ITAB-VGE04, IT_OPR_TAB-VGE05 TO ITAB-VGE05, IT_OPR_TAB-VGE06 TO ITAB-VGE06, * 原定额 IT_OPR_TAB-USR00 TO ITAB-USR00, IT_OPR_TAB-ANZMA TO ITAB-ANZMA, IT_OPR_TAB-SPMUS TO ITAB-SPMUS, IT_OPR_TAB-SPLIM TO ITAB-SPLIM, IT_OPR_TAB-UEMUS TO ITAB-UEMUS, IT_OPR_TAB-MINWE TO ITAB-MINWE, IT_OPR_TAB-FRDLB TO ITAB-FRDLB, IT_OPR_TAB-INFNR TO ITAB-INFNR, IT_OPR_TAB-EKORG TO ITAB-EKORG, IT_OPR_TAB-MATKL TO ITAB-MATKL, IT_OPR_TAB-EKGRP TO ITAB-EKGRP, IT_OPR_TAB-PLIFZ TO ITAB-PLIFZ, IT_OPR_TAB-PEINH TO ITAB-PEINH, IT_OPR_TAB-PREIS TO ITAB-PREIS, IT_OPR_TAB-SAKTO TO ITAB-SAKTO, IT_OPR_TAB-WAERS TO ITAB-WAERS, IT_OPR_TAB-KTSCH TO ITAB-KTSCH, IT_OPR_TAB-LTXA1 TO ITAB-LTXA1, IT_OPR_TAB-CKSELKZ TO ITAB-CKSELKZ, IT_OPR_TAB-WERKS TO ITAB-WERKS_OP. "工序工厂 IF IT_OPR_TAB-INFNR IS NOT INITIAL. SELECT SINGLE PEINH NETPR WAERS FROM EINE INTO (ITAB-PEINH,ITAB-PREIS,ITAB-WAERS) WHERE INFNR = IT_OPR_TAB-INFNR AND EKORG = IT_OPR_TAB-EKORG AND ESOKZ = IT_OPR_TAB-ESOKZ AND WERKS = IT_OPR_TAB-WERKS. ENDIF. ITAB-VBELN = IT_MAPL-VBELN. ITAB-POSNR = IT_MAPL-POSNR. ********** 工序长文本 CONCATENATE SY-MANDT ITAB-PLNTY ITAB-PLNNR IT_OPR_TAB-PLNKN IT_OPR_TAB-ZAEHL INTO LWK_NAME. "对象名 CLEAR ITAB-LGTXT. CALL FUNCTION 'READ_TEXT' EXPORTING CLIENT = SY-MANDT ID = 'PLPO' LANGUAGE = '1' NAME = LWK_NAME OBJECT = 'ROUTING' * ARCHIVE_HANDLE = 0 * LOCAL_CAT = ' ' * IMPORTING * HEADER = TABLES LINES = LTD_TLINE EXCEPTIONS ID = 1 LANGUAGE = 2 NAME = 3 NOT_FOUND = 4 OBJECT = 5 REFERENCE_CHECK = 6 WRONG_ACCESS_TO_ARCHIVE = 7 OTHERS = 8. IF SY-SUBRC = 0. LOOP AT LTD_TLINE INTO LTH_TLINE FROM 2. CONCATENATE ITAB-LGTXT LTH_TLINE-TDLINE INTO ITAB-LGTXT. ENDLOOP. ENDIF. APPEND ITAB. CLEAR IT_OPR_TAB. ENDLOOP. CLEAR : ITAB, IT_TSK_TAB. ENDLOOP. ENDIF. ENDIF. ENDLOOP. *- 释放不再使用内表 FREE : IT_MAKT, IT_MAPL, IT_PLKO. ENDFORM. " F_DEAL_DATA *&---------------------------------------------------------------------* *& Form F_FIELDCAT_BUILD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_FIELDCAT_BUILD . *- ALV格式输出设置 GT_LAYOUT-ZEBRA = 'X'. * gt_layout-box_fieldname = 'SELKZ'. GT_LAYOUT-DETAIL_POPUP = 'X'. GT_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. GT_LAYOUT-CELL_MERGE = 'X'. GT_LAYOUT-DETAIL_INITIAL_LINES = 'X'. IF CB_1 = 'X'. PERFORM F_INPUT_FIELDCAT USING: 'MATNR' '物料号' 'X' 18, 'MAKTX' '物料描述' '' 40, "'VBELN' '销售订单' '', "'POSNR' '行项目' '', 'WERKS' '工厂' '' 4, 'DATUV' '有效起始日期' SPACE 10, 'DATUB' '有效截止日期' SPACE 10, "'PLNTY' '任务清单类型' SPACE, 'PLNNR' '任务清单组码' SPACE 8, 'PLNAL' '组计数器' SPACE 2, 'KTEXT' '任务清单描述' SPACE 40, 'VERWE' '任务清单使用' SPACE 3, 'STATU' '状态' SPACE 3, "'BMSCH' '基本数量' SPACE, "'MEINH' '作业/工序的计量单位' SPACE, " 'VORNR' '工序号' SPACE, " 'STEUS' '控制码' SPACE, " 'WERKS_OP' '工序工厂' SPACE, " 'ARBPL' '工作中心' SPACE, " 'KTSCH' '工序代码' SPACE, " 'LTXA1' '工序短文本' SPACE, " 'LGTXT' '长文本' SPACE, 'VGW01' '准备工时' SPACE 12, "'VGE01' '人工工时单位' SPACE, 'VGW02' '人工工时' SPACE 12, "'VGE02' '机器工时单位' SPACE, 'VGW04' '机器工时' SPACE 12. "'VGE03' '检验工时单位' SPACE. "'VGW04' '物料消耗' SPACE, "'VGE04' '物料消耗单位' SPACE. "'VGW05' '动力' SPACE, "'VGE05' '动力单位' SPACE, "'VGW06' '其他' SPACE, "'VGE06' '其他单位' SPACE. " 'USR00' '原定额' SPACE, " 'SPMUS' '所需分解' SPACE, " 'UEMUS' '要求重叠' SPACE, " 'MINWE' '最小发送数量' SPACE, " 'CKSELKZ' '成本核算相关' SPACE, " 'FRDLB' '指示符:带外协加工的外部处理工序' SPACE, " 'INFNR' '采购信息记录' SPACE, " 'EKORG' '采购组织' SPACE, " 'MATKL' '物料组' SPACE, " 'EKGRP' '采购组' SPACE, " 'PEINH' '价格单位' SPACE, " 'PREIS' '净价' SPACE, " 'SAKTO' '成本要素' SPACE, " 'WAERS' '货币码' SPACE. ELSE. PERFORM F_INPUT_FIELDCAT USING: 'MATNR' '物料号' 'X' 18, 'MAKTX' '物料描述' '' 40, * 'VBELN' '销售订单' '', * 'POSNR' '行项目' '', 'WERKS' '工厂' '' 4, 'DATUV' '有效起始日期' SPACE 10, 'DATUB' '有效截止日期' SPACE 10, 'PLNTY' '任务清单类型' SPACE 1, 'PLNNR' '任务清单组码' SPACE 8, 'PLNAL' '组计数器' SPACE 2, 'KTEXT' '任务清单描述' SPACE 40, 'VERWE' '任务清单使用' SPACE 3, 'STATU' '状态' SPACE 3, 'BMSCH' '基本数量' SPACE 15, 'MEINH' '作业/工序的计量单位' SPACE 3, 'VORNR' '工序号' SPACE 4, 'STEUS' '控制码' SPACE 4, 'WERKS_OP' '工序工厂' SPACE 4, 'ARBPL' '工作中心' SPACE 8, 'KTSCH' '工序代码' SPACE 7, 'LTXA1' '工序短文本' SPACE 40, 'LGTXT' '长文本' SPACE 200, 'VGW01' '准备工时' SPACE 12, 'VGE01' '准备工时单位' SPACE 3, 'VGW02' '人工工时' SPACE 12, 'VGE02' '人工工时单位' SPACE 3, 'VGW03' '间接人工' SPACE 12, 'VGE03' '间接人工单位' SPACE 3, 'VGW04' '机器工时' SPACE 12, 'VGE04' '机器工时进单位' SPACE 3, 'VGW05' '动力' SPACE 12, 'VGE05' '动力单位' SPACE 3, 'VGW06' '物料消耗' SPACE 12, 'VGE06' '物料消耗单位' SPACE 3, * 'USR00' '原定额' SPACE, 'ANZMA' '雇员数' SPACE 7, 'SPMUS' '所需分解' SPACE 1, 'SPLIM' '分解数' SPACE 3, 'UEMUS' '要求重叠' SPACE 1, 'MINWE' '最小发送数量' SPACE 15, 'CKSELKZ' '成本核算相关' SPACE 1, 'FRDLB' '指示符:带外协加工的外部处理工序' SPACE 1, 'INFNR' '采购信息记录' SPACE 10, 'EKORG' '采购组织' SPACE 4, 'MATKL' '物料组' SPACE 9, 'EKGRP' '采购组' SPACE 3, 'PEINH' '价格单位' SPACE 5, 'PREIS' '净价' SPACE 13, 'SAKTO' '成本要素' SPACE 10, 'WAERS' '货币码' SPACE 5. ENDIF. ENDFORM. " F_FIELDCAT_BUILD *&---------------------------------------------------------------------* *& Form F_EVENTCAT_BUILD *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_EVENTCAT_BUILD . ENDFORM. " F_EVENTCAT_BUILD *&---------------------------------------------------------------------* *& Form F_ALV_DISPLAY *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_ALV_DISPLAY . SORT ITAB BY MATNR WERKS PLNTY PLNNR PLNAL VORNR. *- alv函数输出数据 IF CB_1 = ''. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID * i_callback_pf_status_set = g_status_form * i_callback_user_command = 'USER_COMMAND' "g_command_form IS_LAYOUT = GT_LAYOUT IT_FIELDCAT = GT_FIELDCAT[] * it_events = events[] I_SAVE = 'A' TABLES T_OUTTAB = ITAB[] EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ELSE. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID * i_callback_pf_status_set = g_status_form * i_callback_user_command = 'USER_COMMAND' "g_command_form IS_LAYOUT = GT_LAYOUT IT_FIELDCAT = GT_FIELDCAT[] * it_events = events[] I_SAVE = 'A' TABLES T_OUTTAB = ITAB_1[] EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDIF. ENDFORM. " F_ALV_DISPLAY *&---------------------------------------------------------------------* *& Form F_INPUT_FIELDCAT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM F_INPUT_FIELDCAT USING VALUE(P_FIELD) VALUE(P_NAME) VALUE(P_KEY) VALUE(P_LEN). DATA: ST_FIELDCAT TYPE SLIS_FIELDCAT_ALV. ST_FIELDCAT-COL_POS = G_POS. ST_FIELDCAT-TABNAME = 'itab'. ST_FIELDCAT-FIELDNAME = P_FIELD. ST_FIELDCAT-SELTEXT_L = P_NAME. ST_FIELDCAT-outputlen = P_LEN. CASE P_FIELD. WHEN 'WERKS' OR 'WERKS_OP' OR 'USR00'. WHEN OTHERS. ST_FIELDCAT-NO_ZERO = 'X'. ENDCASE. ST_FIELDCAT-KEY = P_KEY. APPEND ST_FIELDCAT TO GT_FIELDCAT. CLEAR ST_FIELDCAT. G_POS = G_POS + 1. ENDFORM. "F_INPUT_FIELDCAT *&---------------------------------------------------------------------* *& Form F_DOSUM_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM F_DOSUM_DATA . CLEAR:ITAB_1,ITAB_1[]. "是否删除前加工 * IF CB_2 = 'X'. * DELETE ITAB WHERE KTSCH = '201001' OR KTSCH = '201006'. * DELETE ITAB WHERE PLNAL = '02'. * ENDIF. *-----2012.11.27过滤天线栽线工序 如勾选则过滤 204001工序码 * IF CB_3 = 'X'. * DELETE ITAB WHERE KTSCH = '204001' . * DELETE ITAB WHERE PLNAL = '02'. * ENDIF. SORT ITAB BY MATNR. LOOP AT ITAB. MOVE-CORRESPONDING ITAB TO ITAB_1. COLLECT ITAB_1. CLEAR ITAB. ENDLOOP. ENDFORM. " F_DOSUM_DATA
ZPPR004:
REPORT ZPPR004. *&---------------------------------------------------------------------* *& Report ZPPR_QROUT01 *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* *&--------------------------------------------------------------------* * Include *&--------------------------------------------------------------------* include ZPPRQROUT01TOP. include ZPPRQROUT01S01. include ZPPRQROUT01F01. *&---------------------------------------------------------------------* * 2012.11.27增加报表开发需求信息维护按钮功能 *&---------------------------------------------------------------------* "包含程序 *include ZABAP01. "初始化事件 *INITIALIZATION. "工具栏添加信息标识图标 * PERFORM SUB_INIT. "计算使用次数 * PERFORM SUB_USENO. "屏幕检查事件 *AT SELECTION-SCREEN. * CASE SSCRFIELDS-UCOMM. * WHEN 'FC01'. *调用3000屏幕 * CALL SCREEN 3000 STARTING AT 20 30 . * WHEN OTHERS. * ENDCASE. * G_POS = 1. **---------------------------------------------------------------------* ** Initialization * **---------------------------------------------------------------------* *INITIALIZATION. * G_POS = 1. *---------------------------------------------------------------------* * start of selection * *---------------------------------------------------------------------* START-OF-SELECTION. PERFORM F_GET_DATA. PERFORM F_DEAL_DATA. ***----- IF CB_1 = 'X'. PERFORM F_DOSUM_DATA. ENDIF. ***----- PERFORM F_FIELDCAT_BUILD. PERFORM F_EVENTCAT_BUILD. PERFORM F_ALV_DISPLAY. END-OF-SELECTION. *Text elements *---------------------------------------------------------- * 002 显示方式 * T01 请选择运行条件 *Selection texts *---------------------------------------------------------- * CB_1 工时汇总显示 * CB_2 过滤前加工 * CB_3 过滤天线栽线 * P_PLNTY 工艺类型 * P_WERKS 工厂 * S_ARBPL 工作中心 * S_DATUV 生效日期 * S_MATNR 物料编码 * S_MVGR1 物料组1 *Messages *---------------------------------------------------------- * * Message class: Hard coded * 您无权限更改开发信息,只有ABAP工程师可修改!
^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
浙公网安备 33010602011771号