pumps report泵的相关信息订单
来源:互联网 发布:淘宝访客数据 编辑:程序博客网 时间:2024/05/16 02:11
通过屏幕录入销售订单,销售订单创建日期,发货单,实际发货日期,来实现输出泵的相关信息,泵判断的标准是:MVKE-MTPOS = ‘ZPOR’,此处是方法一:先全部取出所有物料的屏幕信息,然后delete lt_display where mtpos ne 'ZPOR',后续博客更新改进提升效率的方法。
*&---------------------------------------------------------------------**& Report pumps report*&---------------------------------------------------------------------**&PROGRAM NAME : <ZSDRP204>*---------------------------------------------------------------------** VERSION: V1.0* DATE CREATED : 2016/08/02* CREATED BY : DingQunjing* TRANSPORT REQUEST: XXXXXXX* DESCRIPTION : pumps report* request raised by: XXXXXXREPORT zsdrp204.********************************* INNITIALIZATION********************************TABLES : vbap,vbak,mara,mast,mapl,aufm,likp,lips,afvc,afvv.TYPES : BEGIN OF ltype_vbak, vbeln TYPE vbak-vbeln, erdat TYPE vbak-erdat, END OF ltype_vbak.TYPES : BEGIN OF ltype_vbap, vbeln TYPE vbap-vbeln, posnr TYPE vbap-posnr, matnr TYPE vbap-matnr, edatu TYPE vbep-edatu, END OF ltype_vbap.TYPES : BEGIN OF ltype_mara, matnr TYPE mara-matnr, normt TYPE mara-normt, END OF ltype_mara.TYPES : BEGIN OF ltype_aufm, bldat TYPE aufm-bldat, matnr TYPE aufm-matnr, kdauf TYPE aufm-kdauf, kdpos TYPE aufm-kdpos, END OF ltype_aufm.TYPES : BEGIN OF ltype_vbfa, vbelv TYPE vbfa-vbelv, posnv TYPE vbfa-posnv, vbeln TYPE vbfa-vbeln, posnn TYPE vbfa-posnn, END OF ltype_vbfa.TYPES : BEGIN OF ltype_lips, vbeln TYPE lips-vbeln, posnr TYPE lips-posnr, lfimg TYPE lips-lfimg, END OF ltype_lips.TYPES : BEGIN OF ltype_mast, matnr TYPE mast-matnr, andat TYPE mast-andat, END OF ltype_mast.TYPES : BEGIN OF ltype_mapl, matnr TYPE mapl-matnr, andat TYPE mapl-andat, END OF ltype_mapl.TYPES : BEGIN OF ltype_mvke, matnr TYPE mvke-matnr, mtpos TYPE mvke-mtpos, END OF ltype_mvke.TYPES : BEGIN OF ltype_likp, vbeln TYPE likp-vbeln, wadat_ist TYPE likp-wadat_ist, END OF ltype_likp.TYPES : BEGIN OF ltype_afko, aufnr TYPE afko-aufnr, gstrp TYPE afko-gstrp, gltrp TYPE afko-gltrp, kdauf TYPE afpo-kdauf, kdpos TYPE afpo-kdpos, aufpl TYPE afko-aufpl, END OF ltype_afko.TYPES : BEGIN OF ltype_afvv, aufpl TYPE afvv-aufpl, iedd TYPE afvv-iedd, aplzl TYPE afvv-aplzl, END OF ltype_afvv.DATA : lt_vbak TYPE TABLE OF ltype_vbak, ls_vbak LIKE LINE OF lt_vbak.DATA : lt_vbap TYPE TABLE OF ltype_vbap, ls_vbap LIKE LINE OF lt_vbap.DATA : lt_mara TYPE TABLE OF ltype_mara, ls_mara LIKE LINE OF lt_mara.DATA : lt_aufm TYPE TABLE OF ltype_aufm, ls_aufm LIKE LINE OF lt_aufm.DATA : lt_aufm2 TYPE TABLE OF ltype_aufm, ls_aufm2 LIKE LINE OF lt_aufm2.DATA : lt_vbfa TYPE TABLE OF ltype_vbfa, ls_vbfa LIKE LINE OF lt_vbfa.DATA : lt_lips TYPE TABLE OF ltype_lips, ls_lips LIKE LINE OF lt_lips.DATA : lt_mast TYPE TABLE OF ltype_mast, ls_mast LIKE LINE OF lt_mast.DATA : lt_mapl TYPE TABLE OF ltype_mapl, ls_mapl LIKE LINE OF lt_mapl.DATA : lt_mvke TYPE TABLE OF ltype_mvke, ls_mvke LIKE LINE OF lt_mvke.DATA : lt_likp TYPE TABLE OF ltype_likp, ls_likp LIKE LINE OF lt_likp.DATA : lt_afko TYPE TABLE OF ltype_afko, ls_afko LIKE LINE OF lt_afko.DATA : lt_afvv TYPE TABLE OF ltype_afvv, ls_afvv LIKE LINE OF lt_afvv.DATA : lt_afvc TYPE STANDARD TABLE OF afvc.DATA : ls_afvc LIKE LINE OF lt_afvc.DATA : lt_display TYPE TABLE OF zssdrp204_stru_list, ls_display LIKE LINE OF lt_display.********************************* SELECTION-SCREEN********************************SELECTION-SCREEN BEGIN OF BLOCK blk01 WITH FRAME.SELECT-OPTIONS :m_vbeln FOR vbap-vbeln,m_erdat FOR vbak-erdat,m_vbelv FOR likp-vbeln,m_wadat FOR likp-wadat_ist.PARAMETERS : m_pumps AS CHECKBOX DEFAULT 'X'.SELECTION-SCREEN END OF BLOCK blk01.********************************* START OF SELECTION********************************IF m_vbeln IS INITIAL AND m_vbelv IS INITIAL. MESSAGE 'Please input sales order or delivery order' TYPE 'E'.ELSEIF m_vbeln IS NOT INITIAL AND m_vbelv IS INITIAL. PERFORM frm_get_data1.ELSEIF m_vbeln IS INITIAL AND m_vbelv IS NOT INITIAL. PERFORM frm_get_data2.ELSEIF m_vbeln IS NOT INITIAL AND m_vbelv IS NOT INITIAL. PERFORM frm_get_data3.ENDIF.PERFORM frm_alv_display.*&---------------------------------------------------------------------**& Form FRM_GET_DATA1*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_get_data1 . CLEAR lt_vbak[]. SELECT vbeln erdat FROM vbak INTO CORRESPONDING FIELDS OF TABLE lt_vbak WHERE vbeln IN m_vbeln AND erdat IN m_erdat. IF lt_vbak IS NOT INITIAL. CLEAR lt_vbap[]. SELECT vbap~vbeln vbap~posnr vbap~matnr vbep~edatu FROM vbap INNER JOIN vbep ON vbap~vbeln = vbep~vbeln AND vbap~posnr = vbep~posnr INTO CORRESPONDING FIELDS OF TABLE lt_vbap FOR ALL ENTRIES IN lt_vbak WHERE vbap~vbeln = lt_vbak-vbeln AND etenr = '1'. IF lt_vbap IS NOT INITIAL. CLEAR lt_mara[]. SELECT matnr normt FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr. CLEAR lt_mast[]. SELECT matnr andat FROM mast INTO CORRESPONDING FIELDS OF TABLE lt_mast FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mapl[]. SELECT matnr andat FROM mapl INTO CORRESPONDING FIELDS OF TABLE lt_mapl FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mvke[]. SELECT matnr mtpos FROM mvke INTO CORRESPONDING FIELDS OF TABLE lt_mvke FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND vkorg = '0080'. CLEAR lt_vbfa[]. SELECT vbelv posnv vbeln posnn FROM vbfa INTO CORRESPONDING FIELDS OF TABLE lt_vbfa FOR ALL ENTRIES IN lt_vbap WHERE vbelv = lt_vbap-vbeln AND posnn = lt_vbap-posnr AND vbtyp_n = 'J'. IF lt_vbfa IS NOT INITIAL. CLEAR lt_lips[]. SELECT vbeln posnr lfimg FROM lips INTO CORRESPONDING FIELDS OF TABLE lt_lips FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbeln AND posnr = lt_vbfa-posnn. CLEAR lt_likp[]. SELECT vbeln wadat_ist FROM likp INTO CORRESPONDING FIELDS OF TABLE lt_likp FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbeln. ENDIF. CLEAR lt_afko[]. SELECT afko~aufnr afko~gstrp afko~gltrp afko~aufpl afpo~kdauf afpo~kdpos FROM afko INNER JOIN afpo ON afko~aufnr = afpo~aufnr INTO CORRESPONDING FIELDS OF TABLE lt_afko FOR ALL ENTRIES IN lt_vbap WHERE afpo~kdauf = lt_vbap-vbeln AND afpo~kdpos = lt_vbap-posnr AND afko~plnbez = lt_vbap-matnr. CLEAR lt_aufm[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '101'. CLEAR lt_aufm2[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm2 FOR ALL ENTRIES IN lt_vbap WHERE kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '261'. IF lt_afko IS NOT INITIAL. CLEAR lt_afvv[]. SELECT aufpl iedd aplzl FROM afvv INTO CORRESPONDING FIELDS OF TABLE lt_afvv FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. SELECT * FROM afvc INTO CORRESPONDING FIELDS OF TABLE lt_afvc FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. ENDIF. ENDIF. ENDIF. LOOP AT lt_vbap INTO ls_vbap. APPEND ls_vbap TO lt_display. ENDLOOP. CLEAR ls_display. LOOP AT lt_display INTO ls_display. CLEAR ls_vbak. READ TABLE lt_vbak INTO ls_vbak WITH KEY vbeln = ls_display-vbeln. ls_display-erdat = ls_vbak-erdat. CLEAR ls_mara. READ TABLE lt_mara INTO ls_mara WITH KEY matnr = ls_display-matnr. ls_display-normt = ls_mara-normt. CLEAR ls_mast. READ TABLE lt_mast INTO ls_mast WITH KEY matnr = ls_display-matnr. ls_display-zbandat = ls_mast-andat. CLEAR ls_mapl. READ TABLE lt_mapl INTO ls_mapl WITH KEY matnr = ls_display-matnr. ls_display-zrandat = ls_mapl-andat. CLEAR ls_mvke. READ TABLE lt_mvke INTO ls_mvke WITH KEY matnr = ls_display-matnr. ls_display-mtpos = ls_mvke-mtpos. CLEAR ls_vbfa. READ TABLE lt_vbfa INTO ls_vbfa WITH KEY vbelv = ls_display-vbeln posnv = ls_display-posnv. ls_display-vbelv = ls_vbfa-vbeln. ls_display-posnn = ls_vbfa-posnn. CLEAR ls_lips. READ TABLE lt_lips INTO ls_lips WITH KEY vbeln = ls_display-vbelv posnr = ls_display-posnn. ls_display-lfimg = ls_lips-lfimg. CLEAR ls_likp. READ TABLE lt_likp INTO ls_likp WITH KEY vbeln = ls_display-vbelv. ls_display-wadat_ist = ls_likp-wadat_ist. CLEAR ls_afko. READ TABLE lt_afko INTO ls_afko WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-gstrp = ls_afko-gstrp. ls_display-gltrp = ls_afko-gltrp. CLEAR ls_aufm. READ TABLE lt_aufm INTO ls_aufm WITH KEY matnr = ls_display-matnr kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zdbldat = ls_aufm-bldat. CLEAR ls_aufm2. READ TABLE lt_aufm2 INTO ls_aufm2 WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zlbldat = ls_aufm2-bldat. "//Delay days ls_display-erdat2 = ls_display-zdbldat - ls_display-edatu. IF ls_display-erdat2 < 0. ls_display-erdat2 = 0. ENDIF. "//Contract working days ls_display-erdat3 = ls_display-edatu - ls_display-erdat. "//Actually working days ls_display-erdat4 = ls_display-zlbldat - ls_display-erdat. IF ls_display-erdat4 < 0. ls_display-erdat4 = 0. ENDIF. LOOP AT lt_afvc INTO ls_afvc WHERE aufpl = ls_afko-aufpl. FIND '装配' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_1 = ls_afvv-iedd. ENDIF. ENDIF. FIND '试泵' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_2 = ls_afvv-iedd. ENDIF. ENDIF. FIND '喷漆' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_3 = ls_afvv-iedd. ENDIF. ENDIF. FIND '检验' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_4 = ls_afvv-iedd. ENDIF. ENDIF. FIND '包装' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_5 = ls_afvv-iedd. ENDIF. ENDIF. ENDLOOP. MODIFY lt_display FROM ls_display. ENDLOOP. "//判断物料号是否是泵 IF m_pumps = 'X'. DELETE lt_display WHERE mtpos NE 'ZPOR'. ENDIF. DELETE lt_display WHERE vbelv NOT IN m_vbelv OR wadat_ist NOT IN m_wadat.ENDFORM. " FRM_GET_DATA1*&---------------------------------------------------------------------**& Form FRM_GET_DATA2*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_get_data2 . CLEAR lt_likp[]. SELECT vbeln wadat_ist FROM likp INTO CORRESPONDING FIELDS OF TABLE lt_likp WHERE vbeln IN m_vbelv AND wadat_ist IN m_wadat. IF lt_likp IS NOT INITIAL. CLEAR lt_lips[]. SELECT vbeln posnr lfimg FROM lips INTO CORRESPONDING FIELDS OF TABLE lt_lips FOR ALL ENTRIES IN lt_likp WHERE vbeln = lt_likp-vbeln. IF lt_lips IS NOT INITIAL. CLEAR lt_vbfa[]. SELECT vbelv posnv vbeln posnn FROM vbfa INTO CORRESPONDING FIELDS OF TABLE lt_vbfa FOR ALL ENTRIES IN lt_lips WHERE vbeln = lt_lips-vbeln AND posnn = lt_lips-posnr AND vbtyp_n = 'J'. IF lt_vbfa IS NOT INITIAL. CLEAR lt_vbak[]. SELECT vbeln erdat FROM vbak INTO CORRESPONDING FIELDS OF TABLE lt_vbak FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbelv. IF lt_vbak IS NOT INITIAL. CLEAR lt_vbap[]. SELECT vbap~vbeln vbap~posnr vbap~matnr vbep~edatu FROM vbap INNER JOIN vbep ON vbap~vbeln = vbep~vbeln AND vbap~posnr = vbep~posnr INTO CORRESPONDING FIELDS OF TABLE lt_vbap FOR ALL ENTRIES IN lt_vbak WHERE vbap~vbeln = lt_vbak-vbeln AND etenr = '1'. IF lt_vbap IS NOT INITIAL. CLEAR lt_mara[]. SELECT matnr normt FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr. CLEAR lt_mast[]. SELECT matnr andat FROM mast INTO CORRESPONDING FIELDS OF TABLE lt_mast FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mapl[]. SELECT matnr andat FROM mapl INTO CORRESPONDING FIELDS OF TABLE lt_mapl FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mvke[]. SELECT matnr mtpos FROM mvke INTO CORRESPONDING FIELDS OF TABLE lt_mvke FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND vkorg = '0080'. CLEAR lt_afko[]. SELECT afko~aufnr afko~gstrp afko~gltrp afko~aufpl afpo~kdauf afpo~kdpos FROM afko INNER JOIN afpo ON afko~aufnr = afpo~aufnr INTO CORRESPONDING FIELDS OF TABLE lt_afko FOR ALL ENTRIES IN lt_vbap WHERE afpo~kdauf = lt_vbap-vbeln AND afpo~kdpos = lt_vbap-posnr AND afko~plnbez = lt_vbap-matnr. CLEAR lt_aufm[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '101'. CLEAR lt_aufm2[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm2 FOR ALL ENTRIES IN lt_vbap WHERE kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '261'. IF lt_afko IS NOT INITIAL. CLEAR lt_afvv[]. SELECT aufpl iedd aplzl FROM afvv INTO CORRESPONDING FIELDS OF TABLE lt_afvv FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. SELECT * FROM afvc INTO CORRESPONDING FIELDS OF TABLE lt_afvc FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF. LOOP AT lt_vbap INTO ls_vbap. APPEND ls_vbap TO lt_display. ENDLOOP. CLEAR ls_display. LOOP AT lt_display INTO ls_display. CLEAR ls_vbak. READ TABLE lt_vbak INTO ls_vbak WITH KEY vbeln = ls_display-vbeln. ls_display-erdat = ls_vbak-erdat. CLEAR ls_mara. READ TABLE lt_mara INTO ls_mara WITH KEY matnr = ls_display-matnr. ls_display-normt = ls_mara-normt. CLEAR ls_mast. READ TABLE lt_mast INTO ls_mast WITH KEY matnr = ls_display-matnr. ls_display-zbandat = ls_mast-andat. CLEAR ls_mapl. READ TABLE lt_mapl INTO ls_mapl WITH KEY matnr = ls_display-matnr. ls_display-zrandat = ls_mapl-andat. CLEAR ls_mvke. READ TABLE lt_mvke INTO ls_mvke WITH KEY matnr = ls_display-matnr. ls_display-mtpos = ls_mvke-mtpos. CLEAR ls_vbfa. READ TABLE lt_vbfa INTO ls_vbfa WITH KEY vbelv = ls_display-vbeln posnv = ls_display-posnv. ls_display-vbelv = ls_vbfa-vbeln. ls_display-posnn = ls_vbfa-posnn. CLEAR ls_lips. READ TABLE lt_lips INTO ls_lips WITH KEY vbeln = ls_display-vbelv posnr = ls_display-posnn. ls_display-lfimg = ls_lips-lfimg. CLEAR ls_likp. READ TABLE lt_likp INTO ls_likp WITH KEY vbeln = ls_display-vbelv. ls_display-wadat_ist = ls_likp-wadat_ist. CLEAR ls_afko. READ TABLE lt_afko INTO ls_afko WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-gstrp = ls_afko-gstrp. ls_display-gltrp = ls_afko-gltrp. CLEAR ls_aufm. READ TABLE lt_aufm INTO ls_aufm WITH KEY matnr = ls_display-matnr kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zdbldat = ls_aufm-bldat. CLEAR ls_aufm2. READ TABLE lt_aufm2 INTO ls_aufm2 WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zlbldat = ls_aufm2-bldat. "//Delay days ls_display-erdat2 = ls_display-zdbldat - ls_display-edatu. IF ls_display-erdat2 < 0. ls_display-erdat2 = 0. ENDIF. "//Contract working days ls_display-erdat3 = ls_display-edatu - ls_display-erdat. "//Actually working days ls_display-erdat4 = ls_display-zlbldat - ls_display-erdat. IF ls_display-erdat4 < 0. ls_display-erdat4 = 0. ENDIF. LOOP AT lt_afvc INTO ls_afvc WHERE aufpl = ls_afko-aufpl. FIND '装配' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_1 = ls_afvv-iedd. ENDIF. ENDIF. FIND '试泵' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_2 = ls_afvv-iedd. ENDIF. ENDIF. FIND '喷漆' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_3 = ls_afvv-iedd. ENDIF. ENDIF. FIND '检验' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_4 = ls_afvv-iedd. ENDIF. ENDIF. FIND '包装' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_5 = ls_afvv-iedd. ENDIF. ENDIF. ENDLOOP. MODIFY lt_display FROM ls_display. ENDLOOP. "//判断物料号是否是泵 IF m_pumps = 'X'. DELETE lt_display WHERE mtpos NE 'ZPOR'. ENDIF. DELETE lt_display WHERE vbeln NOT IN m_vbeln OR erdat NOT IN m_erdat.ENDFORM. " FRM_GET_DATA2*&---------------------------------------------------------------------**& Form FRM_GET_DATA3*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_get_data3 . CLEAR lt_vbfa[]. SELECT vbelv posnv vbeln posnn FROM vbfa INTO CORRESPONDING FIELDS OF TABLE lt_vbfa WHERE vbelv IN m_vbeln AND vbeln IN m_vbelv AND vbtyp_n = 'J'. IF lt_vbfa IS NOT INITIAL. CLEAR lt_lips[]. SELECT vbeln posnr lfimg FROM lips INTO CORRESPONDING FIELDS OF TABLE lt_lips FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbeln AND posnr = lt_vbfa-posnn. CLEAR lt_likp[]. SELECT vbeln wadat_ist FROM likp INTO CORRESPONDING FIELDS OF TABLE lt_likp FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbeln. CLEAR lt_vbak[]. SELECT vbeln erdat FROM vbak INTO CORRESPONDING FIELDS OF TABLE lt_vbak FOR ALL ENTRIES IN lt_vbfa WHERE vbeln = lt_vbfa-vbelv. ENDIF. IF lt_vbak IS NOT INITIAL. CLEAR lt_vbap[]. SELECT vbap~vbeln vbap~posnr vbap~matnr vbep~edatu FROM vbap INNER JOIN vbep ON vbap~vbeln = vbep~vbeln AND vbap~posnr = vbep~posnr INTO CORRESPONDING FIELDS OF TABLE lt_vbap FOR ALL ENTRIES IN lt_vbak WHERE vbap~vbeln = lt_vbak-vbeln AND etenr = '1'. ENDIF. IF lt_vbap IS NOT INITIAL. CLEAR lt_mara[]. SELECT matnr normt FROM mara INTO CORRESPONDING FIELDS OF TABLE lt_mara FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr. CLEAR lt_mast[]. SELECT matnr andat FROM mast INTO CORRESPONDING FIELDS OF TABLE lt_mast FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mapl[]. SELECT matnr andat FROM mapl INTO CORRESPONDING FIELDS OF TABLE lt_mapl FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND werks = '0080'. CLEAR lt_mvke[]. SELECT matnr mtpos FROM mvke INTO CORRESPONDING FIELDS OF TABLE lt_mvke FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND vkorg = '0080'. CLEAR lt_vbfa[]. SELECT vbelv posnv vbeln posnn FROM vbfa INTO CORRESPONDING FIELDS OF TABLE lt_vbfa FOR ALL ENTRIES IN lt_vbap WHERE vbelv = lt_vbap-vbeln AND posnn = lt_vbap-posnr AND vbtyp_n = 'J'. CLEAR lt_afko[]. SELECT afko~aufnr afko~gstrp afko~gltrp afko~aufpl afpo~kdauf afpo~kdpos FROM afko INNER JOIN afpo ON afko~aufnr = afpo~aufnr INTO CORRESPONDING FIELDS OF TABLE lt_afko FOR ALL ENTRIES IN lt_vbap WHERE afpo~kdauf = lt_vbap-vbeln AND afpo~kdpos = lt_vbap-posnr AND afko~plnbez = lt_vbap-matnr. CLEAR lt_aufm[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm FOR ALL ENTRIES IN lt_vbap WHERE matnr = lt_vbap-matnr AND kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '101'. CLEAR lt_aufm2[]. SELECT bldat matnr kdauf kdpos FROM aufm INTO CORRESPONDING FIELDS OF TABLE lt_aufm2 FOR ALL ENTRIES IN lt_vbap WHERE kdauf = lt_vbap-vbeln AND kdpos = lt_vbap-posnr AND werks = '0080' AND bwart = '261'. IF lt_afko IS NOT INITIAL. CLEAR lt_afvv[]. SELECT aufpl iedd aplzl FROM afvv INTO CORRESPONDING FIELDS OF TABLE lt_afvv FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. SELECT * FROM afvc INTO CORRESPONDING FIELDS OF TABLE lt_afvc FOR ALL ENTRIES IN lt_afko WHERE aufpl = lt_afko-aufpl. ENDIF. ENDIF. LOOP AT lt_vbap INTO ls_vbap. APPEND ls_vbap TO lt_display. ENDLOOP. CLEAR ls_display. LOOP AT lt_display INTO ls_display. CLEAR ls_vbak. READ TABLE lt_vbak INTO ls_vbak WITH KEY vbeln = ls_display-vbeln. ls_display-erdat = ls_vbak-erdat. CLEAR ls_mara. READ TABLE lt_mara INTO ls_mara WITH KEY matnr = ls_display-matnr. ls_display-normt = ls_mara-normt. CLEAR ls_mast. READ TABLE lt_mast INTO ls_mast WITH KEY matnr = ls_display-matnr. ls_display-zbandat = ls_mast-andat. CLEAR ls_mapl. READ TABLE lt_mapl INTO ls_mapl WITH KEY matnr = ls_display-matnr. ls_display-zrandat = ls_mapl-andat. CLEAR ls_mvke. READ TABLE lt_mvke INTO ls_mvke WITH KEY matnr = ls_display-matnr. ls_display-mtpos = ls_mvke-mtpos. CLEAR ls_vbfa. READ TABLE lt_vbfa INTO ls_vbfa WITH KEY vbelv = ls_display-vbeln posnv = ls_display-posnv. ls_display-vbelv = ls_vbfa-vbeln. ls_display-posnn = ls_vbfa-posnn. CLEAR ls_lips. READ TABLE lt_lips INTO ls_lips WITH KEY vbeln = ls_display-vbelv posnr = ls_display-posnn. ls_display-lfimg = ls_lips-lfimg. CLEAR ls_likp. READ TABLE lt_likp INTO ls_likp WITH KEY vbeln = ls_display-vbelv. ls_display-wadat_ist = ls_likp-wadat_ist. CLEAR ls_afko. READ TABLE lt_afko INTO ls_afko WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-gstrp = ls_afko-gstrp. ls_display-gltrp = ls_afko-gltrp. CLEAR ls_aufm. READ TABLE lt_aufm INTO ls_aufm WITH KEY matnr = ls_display-matnr kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zdbldat = ls_aufm-bldat. CLEAR ls_aufm2. READ TABLE lt_aufm2 INTO ls_aufm2 WITH KEY kdauf = ls_display-vbeln kdpos = ls_display-posnv. ls_display-zlbldat = ls_aufm2-bldat. "//Delay days ls_display-erdat2 = ls_display-zdbldat - ls_display-edatu. IF ls_display-erdat2 < 0. ls_display-erdat2 = 0. ENDIF. "//Contract working days ls_display-erdat3 = ls_display-edatu - ls_display-erdat. "//Actually working days ls_display-erdat4 = ls_display-zlbldat - ls_display-erdat. IF ls_display-erdat4 < 0. ls_display-erdat4 = 0. ENDIF. LOOP AT lt_afvc INTO ls_afvc WHERE aufpl = ls_afko-aufpl. FIND '装配' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_1 = ls_afvv-iedd. ENDIF. ENDIF. FIND '试泵' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_2 = ls_afvv-iedd. ENDIF. ENDIF. FIND '喷漆' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_3 = ls_afvv-iedd. ENDIF. ENDIF. FIND '检验' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_4 = ls_afvv-iedd. ENDIF. ENDIF. FIND '包装' IN ls_afvc-ltxa1. IF sy-subrc = 0. READ TABLE lt_afvv INTO ls_afvv WITH KEY aufpl = ls_afko-aufpl aplzl = ls_afvc-aplzl. IF sy-subrc = 0. ls_display-date_5 = ls_afvv-iedd. ENDIF. ENDIF. ENDLOOP. MODIFY lt_display FROM ls_display. ENDLOOP. "//判断物料号是否是泵 IF m_pumps = 'X'. DELETE lt_display WHERE mtpos NE 'ZPOR'. ENDIF. DELETE lt_display WHERE erdat NOT IN m_erdat OR wadat_ist NOT IN m_wadat.ENDFORM. " FRM_GET_DATA3*&---------------------------------------------------------------------**& Form FRM_ALV_DISPLAY*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM frm_alv_display . DATA : ls_layout TYPE slis_layout_alv. DATA : lt_fieldcat TYPE slis_t_fieldcat_alv. DATA : l_repid TYPE sy-repid. PERFORM frm_build_fieldcat CHANGING lt_fieldcat. PERFORM frm_build_layout CHANGING ls_layout. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = sy-repid it_fieldcat = lt_fieldcat is_layout = ls_layout i_callback_user_command = 'FRM_USER_COMMAND'* i_callback_pf_status_set = 'FRM_PF_STATUS_SET' TABLES t_outtab = lt_display.ENDFORM. " FRM_ALV_DISPLAY*&---------------------------------------------------------------------**& Form frm_build_fieldcat*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->CT_FIELDCAT text*----------------------------------------------------------------------*FORM frm_build_fieldcat CHANGING ct_fieldcat TYPE slis_t_fieldcat_alv. DATA : ls_fieldcat LIKE LINE OF ct_fieldcat. REFRESH ct_fieldcat. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZSSDRP204_STRU_LIST' CHANGING ct_fieldcat = ct_fieldcat. LOOP AT ct_fieldcat INTO ls_fieldcat. CASE ls_fieldcat-fieldname. WHEN 'VBELN'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '销售订单'. ELSE. ls_fieldcat-seltext_l = 'Sales Order'. ls_fieldcat-seltext_m = 'Sales Order'. ls_fieldcat-seltext_s = 'Sales Order'. ENDIF. WHEN 'NORMT'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '泵类型'. ELSE. ls_fieldcat-seltext_l = 'Pump Type'. ls_fieldcat-seltext_m = 'Pump Type'. ls_fieldcat-seltext_s = 'Pump Type'. ENDIF. WHEN 'ZBANDAT'. IF sy-langu = '1'. ls_fieldcat-seltext_l = 'BOM完成时间'. ELSE. ls_fieldcat-seltext_l = 'BOM complete date'. ls_fieldcat-seltext_m = 'BOM complete date'. ls_fieldcat-seltext_s = 'BOM complete date'. ENDIF. WHEN 'ZRANDAT'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '工艺完成时间'. ELSE. ls_fieldcat-seltext_l = 'Routing finished date'. ls_fieldcat-seltext_m = 'Routing finished date'. ls_fieldcat-seltext_s = 'Routing finished date'. ENDIF. WHEN 'EDATU'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '合同交货日期'. ELSE. ls_fieldcat-seltext_l = 'Contract delivery date'. ls_fieldcat-seltext_m = 'Contract delivery date'. ls_fieldcat-seltext_s = 'Contract delivery date'. ENDIF. WHEN 'GSTRP'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '开始日期'. ELSE. ls_fieldcat-seltext_l = 'Production start date'. ls_fieldcat-seltext_m = 'Production start date'. ls_fieldcat-seltext_s = 'Production start date'. ENDIF. WHEN 'GLTRP'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '完成日期'. ELSE. ls_fieldcat-seltext_l = 'Complete date'. ls_fieldcat-seltext_m = 'Complete date'. ls_fieldcat-seltext_s = 'Complete date'. ENDIF. WHEN 'ZDBLDAT'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '入库日期'. ELSE. ls_fieldcat-seltext_l = 'Booked in date'. ls_fieldcat-seltext_m = 'Booked in date'. ls_fieldcat-seltext_s = 'Booked in date'. ENDIF. WHEN 'ZLBLDAT'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '发料日期'. ELSE. ls_fieldcat-seltext_l = 'Issuing date'. ls_fieldcat-seltext_m = 'Issuing date'. ls_fieldcat-seltext_s = 'Issuing date'. ENDIF. WHEN 'LFIMG'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '交货单数量'. ELSE. ls_fieldcat-seltext_l = 'Delivery QTY'. ls_fieldcat-seltext_m = 'Delivery QTY'. ls_fieldcat-seltext_s = 'Delivery QTY'. ENDIF. WHEN 'WADAT_IST'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '实际发货日期'. ELSE. ls_fieldcat-seltext_l = 'Actually delivery date'. ls_fieldcat-seltext_m = 'Actually delivery date'. ls_fieldcat-seltext_s = 'Actually delivery date'. ENDIF. WHEN 'ERDAT2'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '拖期天数'. ELSE. ls_fieldcat-seltext_l = 'Delay days'. ls_fieldcat-seltext_m = 'Delay days'. ls_fieldcat-seltext_s = 'Delay days'. ENDIF. WHEN 'ERDAT3'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '合同工作日'. ELSE. ls_fieldcat-seltext_l = 'Contract working days'. ls_fieldcat-seltext_m = 'Contract working days'. ls_fieldcat-seltext_s = 'Contract working days'. ENDIF. WHEN 'ERDAT4'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '实际工作日'. ELSE. ls_fieldcat-seltext_l = 'Actually working days'. ls_fieldcat-seltext_m = 'Actually working days'. ls_fieldcat-seltext_s = 'Actually working days'. ENDIF. WHEN 'DATE_1'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '装配日期'. ELSE. ls_fieldcat-seltext_l = 'Assembly Date'. ls_fieldcat-seltext_m = 'Assembly Date'. ls_fieldcat-seltext_s = 'Assembly Date'. ENDIF. WHEN 'DATE_2'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '试泵日期'. ELSE. ls_fieldcat-seltext_l = 'Testing Date'. ls_fieldcat-seltext_m = 'Testing Date'. ls_fieldcat-seltext_s = 'Testing Date'. ENDIF. WHEN 'DATE_3'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '喷漆日期'. ELSE. ls_fieldcat-seltext_l = 'Painting Date'. ls_fieldcat-seltext_m = 'Painting Date'. ls_fieldcat-seltext_s = 'Painting Date'. ENDIF. WHEN 'DATE_4'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '检验日期'. ELSE. ls_fieldcat-seltext_l = 'Checking Date'. ls_fieldcat-seltext_m = 'Checking Date'. ls_fieldcat-seltext_s = 'Checking Date'. ENDIF. WHEN 'DATE_5'. IF sy-langu = '1'. ls_fieldcat-seltext_l = '包装日期'. ELSE. ls_fieldcat-seltext_l = 'Packing Date'. ls_fieldcat-seltext_m = 'Packing Date'. ls_fieldcat-seltext_s = 'Packing Date'. ENDIF. ENDCASE. MODIFY ct_fieldcat FROM ls_fieldcat TRANSPORTING seltext_l seltext_m seltext_s. ENDLOOP. DELETE ct_fieldcat WHERE fieldname = 'POSNV' OR fieldname = 'MTPOS' OR fieldname = 'POSNN'.ENDFORM. "frm_build_fieldcat*&---------------------------------------------------------------------**& Form frm_build_layout*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->CS_LAYOUT text*----------------------------------------------------------------------*FORM frm_build_layout CHANGING cs_layout TYPE slis_layout_alv. CLEAR cs_layout. MOVE 'X' TO cs_layout-detail_popup. MOVE 'X' TO cs_layout-colwidth_optimize. MOVE 'COLOR' TO cs_layout-info_fieldname.* MOVE 'SELECTED' TO cs_layout-box_fieldname.ENDFORM. " FRM_BUILD_LAYOUT*&---------------------------------------------------------------------**& Form sub_user_command*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->R_UCOMM text* -->US_SELECTE_FIELD text*----------------------------------------------------------------------*FORM frm_user_command USING r_ucomm LIKE sy-ucomm us_selecte_field TYPE slis_selfield. CASE r_ucomm. WHEN '&IC1'. "双击事件的功能码 READ TABLE lt_display INTO ls_display INDEX us_selecte_field-tabindex. IF us_selecte_field-fieldname = 'MATNR'. SET PARAMETER ID 'MAT' FIELD ls_display-matnr. CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN. ENDIF. ENDCASE.ENDFORM. " SUB_USER_COMMAND
1 0
- pumps report泵的相关信息订单
- 生产订单相关信息的获取
- 生产订单相关信息
- SAP 取出销售订单的Object Reason的相关信息
- SAP PP生产订单相关信息的获取
- report++报表的相关操作
- sap 如何查找销售订单合作伙伴的地址(名字)等的相关信息
- 订单信息
- 如何在生产订单增强中查看AFPO相关信息?
- 获取生产订单的状态信息
- 更新合并后的订单汇总信息
- SAP生产订单预留相关的备忘录
- SAP生产订单预留相关的备忘录
- SAP生产订单预留相关的备忘录
- 订单的附件相关表关系
- 采购订单增强(根据公司代码、采购订单类型等相关订单信息给采购订单税码设置默认值)
- Report Service相关
- 选择每个订单的每种费用的数目,每行纪录为一个订单信息
- hadoop 2.6全分布安装
- JS 倒计时
- ZoomButton的使用
- enum学习
- SSD:Single Shot MultiBox Detector 配置问题一览
- pumps report泵的相关信息订单
- Java NIO:浅析I/O模型
- SPI总线和外设驱动(一)
- require.js学习笔记
- ICT生长模式及对运营商的影响
- Unity 客户端框架(五):对象池
- Codeforces Round #365 (Div. 2) Mishka and trip
- error C2061: syntax error : identifier 'main'
- Java中遍历map的几种方法