天天看点

abap 获取生产订单标准工时和实际报工工时的报表

*&---------------------------------------------------------------------*

*& REPORT  ZMM_PO_QUERY

*&

*& REPORTNAME   :生产订单查询系统

*&---------------------------------------------------------------------*

*& CREATED BY   : LIUXINYUAN

*& CREATED DATE : 2015-07-15

*&---------------------------------------------------------------------*

REPORT  ZPP_CO_QUERY.

INCLUDE ZPP_CO_QUERY_TOP.

**选择屏幕

SELECTION- SCREEN  BEGIN  OF  BLOCK MAIN  WITH  FRAME  TITLE  TEXT- 001.

     SELECT-OPTIONS:S_AUFNR  FOR CAUFV-AUFNR.

     SELECT-OPTIONS:S_WERKS  FOR CAUFV-WERKS.

     SELECT-OPTIONS:S_GSTRI  FOR CAUFV-GSTRI.

     SELECT-OPTIONS:S_GLTRI  FOR CAUFV-GLTRI.

SELECTION- SCREEN  END  OF  BLOCK MAIN.

AT SELECTION- SCREEN.

*  LOOP AT S_WERKS.

*        AUTHORITY-CHECK OBJECT 'Z_MM_003'

*                            ID 'WERKS' FIELD S_WERKS-LOW.

*        IF SY-SUBRC <> 0.

*            MESSAGE E019(ZMM001) WITH S_WERKS-LOW.

*        ENDIF.

*  ENDLOOP.

AT SELECTION- SCREEN  OUTPUT.

**主程序

START- OF-SELECTION.

PERFORM FRM_SELECT_DATA.

PERFORM FRM_DISPLAY.

*&---------------------------------------------------------------------*

*&      FORM  FRM_SELECT_DATA

*&---------------------------------------------------------------------*

*       TEXT

*----------------------------------------------------------------------*

*  -->  P1        TEXT

*  <--  P2        TEXT

*----------------------------------------------------------------------*

FORM FRM_SELECT_DATA .

CALL  FUNCTION  'SAPGUI_PROGRESS_INDICATOR'

   EXPORTING

     TEXT =  '数据读取中.................'.

REFRESH ITAB.

CLEAR ITAB.

"机器 作业类型 1001

"工资 作业类型 1000

"其它 作业类型 1003

  SELECT AUFNR

        WERKS

        AUART

        KDAUF       "销售订单编号

        KDPOS       "销售订单行项目

        PLNBEZ

        GAMNG

        AUFPL

        OBJNR

        FTRMI

         INTO CORRESPONDING  FIELDS  OF  TABLE ITAB

         FROM CAUFV

         WHERE AUFNR  IN S_AUFNR

           AND WERKS  IN S_WERKS

           AND GSTRI  IN S_GSTRI

           AND GLTRI  IN S_GLTRI.

IF ITAB[]  IS  NOT  INITIAL.

    REFRESH IT_AFVV.

    CLEAR IT_AFVV.

    SELECT AUFPL

          APLZL

          VGW01

          VGW02

          VGW03

           INTO  TABLE IT_AFVV

           FROM AFVV

           FOR  ALL ENTRIES  IN ITAB

           WHERE AUFPL = ITAB-AUFPL.

    REFRESH IT_AFVC.

    CLEAR IT_AFVC.

    SELECT AUFPL

          APLZL

          RUECK

          ARBID

           INTO  TABLE IT_AFVC

           FROM AFVC

           FOR  ALL ENTRIES  IN ITAB

           WHERE  AUFPL = ITAB-AUFPL.

    IF IT_AFVC[]  IS  NOT  INITIAL.

       REFRESH IT_AFRU.

       CLEAR IT_AFRU.

       SELECT RUECK

             RMZHL

             ISM01

             ISM02

             ISM03

             STOKZ

              INTO  TABLE IT_AFRU

              FROM AFRU

              FOR  ALL ENTRIES  IN IT_AFVC

              WHERE RUECK = IT_AFVC-RUECK.

       REFRESH TIT_AFRU.

       CLEAR TIT_AFRU.

       LOOP  AT IT_AFRU.

           TIT_AFRU-RUECK = IT_AFRU-RUECK.

            IF IT_AFRU-STOKZ =  'X'.

               TIT_AFRU-ISM01 =  0 - IT_AFRU-ISM01.

               TIT_AFRU-ISM02 =  0 - IT_AFRU-ISM02.

               TIT_AFRU-ISM03 =  0 - IT_AFRU-ISM03.

            ELSE.

               TIT_AFRU-ISM01 = IT_AFRU-ISM01.

               TIT_AFRU-ISM02 = IT_AFRU-ISM02.

               TIT_AFRU-ISM03 = IT_AFRU-ISM03.

            ENDIF.

            COLLECT TIT_AFRU.

            CLEAR TIT_AFRU.

       ENDLOOP.

       REFRESH IT_AFRU_VV.

       CLEAR IT_AFRU_VV.

       LOOP  AT TIT_AFRU.

                CLEAR IT_AFVC.

                READ  TABLE IT_AFVC  WITH  KEY RUECK = TIT_AFRU-RUECK.

                IF SY-SUBRC  EQ  0.

                   IT_AFRU_VV-AUFPL = IT_AFVC-AUFPL.

                   IT_AFRU_VV-APLZL = IT_AFVC-APLZL.

                   IT_AFRU_VV-ISM01 = TIT_AFRU-ISM01.

                   IT_AFRU_VV-ISM02 = TIT_AFRU-ISM02.

                   IT_AFRU_VV-ISM03 = TIT_AFRU-ISM03.

                    APPEND IT_AFRU_VV.

                    CLEAR IT_AFRU_VV.

                ENDIF.

       ENDLOOP.

    ENDIF.

    DATA:LV_ARBID  TYPE AFVC-ARBID,

        LV_ARBPL  TYPE CRHD-ARBPL.

    LOOP  AT ITAB.

*       获取标准工时

         LOOP  AT IT_AFVV  WHERE AUFPL = ITAB-AUFPL.

            CLEAR LV_ARBID.

            CLEAR IT_AFVC.

            READ  TABLE IT_AFVC  WITH  KEY AUFPL = IT_AFVV-AUFPL APLZL = IT_AFVV-APLZL.

            IF SY-SUBRC  EQ  0.

              LV_ARBID = IT_AFVC-ARBID.

            ENDIF.

            CLEAR LV_ARBPL.

            SELECT  SINGLE

                  ARBPL

                   INTO LV_ARBPL

                   FROM CRHD

                   WHERE OBJTY =  'A'

                     AND OBJID = LV_ARBID.

            DATA:LV_KOSTL  TYPE CRCO-KOSTL.

            CLEAR LV_KOSTL.

            SELECT  SINGLE

                  KOSTL

                   INTO LV_KOSTL

                   FROM CRCO

                   WHERE OBJTY =  'A'

                      AND OBJID = LV_ARBID.

            IF LV_ARBPL =  'STRZP'  OR LV_ARBPL+ 0( 2) =  'ZP'.

              ITAB-ZPVGW01 = IT_AFVV-VGW01 * ITAB-GAMNG.

              ITAB-ZPVGW02 = IT_AFVV-VGW02 * ITAB-GAMNG.

              ITAB-ZPVGW03 = IT_AFVV-VGW03 * ITAB-GAMNG.

              ITAB-ZPKOSTL = LV_KOSTL.

            ELSEIF LV_ARBPL =  'STRTS'  OR LV_ARBPL+ 0( 2) =  'TS'.

              ITAB-TSVGW01 = IT_AFVV-VGW01 * ITAB-GAMNG.

              ITAB-TSVGW02 = IT_AFVV-VGW02 * ITAB-GAMNG.

              ITAB-TSVGW03 = IT_AFVV-VGW03 * ITAB-GAMNG.

              ITAB-TSKOSTL = LV_KOSTL.

            ELSEIF LV_ARBPL =  'STRLH'  OR LV_ARBPL+ 0( 2) =  'LH'.

              ITAB-LHVGW01 = IT_AFVV-VGW01 * ITAB-GAMNG.

              ITAB-LHVGW02 = IT_AFVV-VGW02 * ITAB-GAMNG.

              ITAB-LHVGW03 = IT_AFVV-VGW03 * ITAB-GAMNG.

              ITAB-LHKOSTL = LV_KOSTL.

            ELSEIF LV_ARBPL =  'STRYJ'  OR LV_ARBPL+ 0( 2) =  'YJ'.

              ITAB-JYVGW01 = IT_AFVV-VGW01 * ITAB-GAMNG.

              ITAB-JYVGW02 = IT_AFVV-VGW02 * ITAB-GAMNG.

              ITAB-JYVGW03 = IT_AFVV-VGW03 * ITAB-GAMNG.

              ITAB-JYKOSTL = LV_KOSTL.

            ELSEIF LV_ARBPL =  'STRBZ'  OR LV_ARBPL+ 0( 2) =  'BZ'.

              ITAB-BZVGW01 = IT_AFVV-VGW01 * ITAB-GAMNG.

              ITAB-BZVGW02 = IT_AFVV-VGW02 * ITAB-GAMNG.

              ITAB-BZVGW03 = IT_AFVV-VGW03 * ITAB-GAMNG.

              ITAB-BZKOSTL = LV_KOSTL.

            ENDIF.

***********下面代码依据工单下单的工时,查找标准工时的成本的单位价格,以及计算成本

*           CLEAR LV_GJAHR. CLEAR LV_MONTH.

*           LV_GJAHR = ITAB-FTRMI+0(4).

*           LV_MONTH = ITAB-FTRMI+4(2).

*           REFRESH IT_CRCO.

*           CLEAR IT_CRCO.

*

*           SELECT KOKRS

*                  KOSTL

*                  LSTAR

*                  INTO TABLE IT_CRCO

*                  FROM CRCO

*                  WHERE OBJTY = 'A'

*                     AND OBJID = LV_ARBID.

*           LOOP AT IT_CRCO.

*                CONCATENATE 'KL' IT_CRCO-KOKRS IT_CRCO-KOSTL IT_CRCO-LSTAR INTO IT_CRCO-OBJNR.

*                MODIFY IT_CRCO.

*                CLEAR IT_CRCO.

*           ENDLOOP.

*

*

*

*           IF IT_CRCO[] IS NOT INITIAL.

*              SELECT  LEDNR

*                      OBJNR

*                      GJAHR

*                      WRTTP

*                      VERSN

*                      TARKZ

*                      PERBL

*

*                      TKG001

*                      TKG002

*                      TKG003

*                      TKG004

*                      TKG005

*                      TKG006

*                      TKG007

*                      TKG008

*                      TKG009

*                      TKG010

*                      TKG011

*                      TKG012

*

*                      TKE001

*                      TKE002

*                      TKE003

*                      TKE004

*                      TKE005

*                      TKE006

*                      TKE007

*                      TKE008

*                      TKE009

*                      TKE010

*                      TKE011

*                      TKE012

*                      INTO TABLE IT_COST

*                      FROM COST

*                      FOR ALL ENTRIES IN IT_CRCO

*                      WHERE LEDNR = '00'

*                        AND OBJNR = IT_CRCO-OBJNR

*                        AND GJAHR = LV_GJAHR

*                        AND TARKZ = '001'.

*

*              CLEAR LV_TKG01.

*              CLEAR LV_TKE01.

*              CLEAR LV_TKG02.

*              CLEAR LV_TKE02.

*              CLEAR LV_TKG03.

*              CLEAR LV_TKE03.

*

*              LOOP AT IT_COST.

*                    IF IT_COST+17(4) = '1001'.

*                       IF LV_MONTH = '01'.

*                           LV_TKG01 = IT_COST-TKG001.

*                           LV_TKE01 = IT_COST-TKE001.

*                       ELSEIF LV_MONTH = '02'.

*                           LV_TKG01 = IT_COST-TKG002.

*                           LV_TKE01 = IT_COST-TKE002.

*                       ELSEIF LV_MONTH = '03'.

*                           LV_TKG01 = IT_COST-TKG003.

*                           LV_TKE01 = IT_COST-TKE003.

*                       ELSEIF LV_MONTH = '04'.

*                           LV_TKG01 = IT_COST-TKG004.

*                           LV_TKE01 = IT_COST-TKE004.

*                       ELSEIF LV_MONTH = '05'.

*                           LV_TKG01 = IT_COST-TKG005.

*                           LV_TKE01 = IT_COST-TKE005.

*                       ELSEIF LV_MONTH = '06'.

*                           LV_TKG01 = IT_COST-TKG006.

*                           LV_TKE01 = IT_COST-TKE006.

*                       ELSEIF LV_MONTH = '07'.

*                           LV_TKG01 = IT_COST-TKG007.

*                           LV_TKE01 = IT_COST-TKE007.

*                       ELSEIF LV_MONTH = '08'.

*                           LV_TKG01 = IT_COST-TKG008.

*                           LV_TKE01 = IT_COST-TKE008.

*                       ELSEIF LV_MONTH = '09'.

*                           LV_TKG01 = IT_COST-TKG009.

*                           LV_TKE01 = IT_COST-TKE009.

*                       ELSEIF LV_MONTH = '10'.

*                           LV_TKG01 = IT_COST-TKG010.

*                           LV_TKE01 = IT_COST-TKE010.

*                       ELSEIF LV_MONTH = '11'.

*                           LV_TKG01 = IT_COST-TKG011.

*                           LV_TKE01 = IT_COST-TKE011.

*                       ELSEIF LV_MONTH = '12'.

*                           LV_TKG01 = IT_COST-TKG012.

*                           LV_TKE01 = IT_COST-TKE012.

*                       ENDIF.

*

*                    ELSEIF IT_COST+17(4) = '1000'.

*                       IF LV_MONTH = '01'.

*                           LV_TKG02 = IT_COST-TKG001.

*                           LV_TKE02 = IT_COST-TKE001.

*                       ELSEIF LV_MONTH = '02'.

*                           LV_TKG02 = IT_COST-TKG002.

*                           LV_TKE02 = IT_COST-TKE002.

*                       ELSEIF LV_MONTH = '03'.

*                           LV_TKG02 = IT_COST-TKG003.

*                           LV_TKE02 = IT_COST-TKE003.

*                       ELSEIF LV_MONTH = '04'.

*                           LV_TKG02 = IT_COST-TKG004.

*                           LV_TKE02 = IT_COST-TKE004.

*                       ELSEIF LV_MONTH = '05'.

*                           LV_TKG02 = IT_COST-TKG005.

*                           LV_TKE02 = IT_COST-TKE005.

*                       ELSEIF LV_MONTH = '06'.

*                           LV_TKG02 = IT_COST-TKG006.

*                           LV_TKE02 = IT_COST-TKE006.

*                       ELSEIF LV_MONTH = '07'.

*                           LV_TKG02 = IT_COST-TKG007.

*                           LV_TKE02 = IT_COST-TKE007.

*                       ELSEIF LV_MONTH = '08'.

*                           LV_TKG02 = IT_COST-TKG008.

*                           LV_TKE02 = IT_COST-TKE008.

*                       ELSEIF LV_MONTH = '09'.

*                           LV_TKG02 = IT_COST-TKG009.

*                           LV_TKE02 = IT_COST-TKE009.

*                       ELSEIF LV_MONTH = '10'.

*                           LV_TKG02 = IT_COST-TKG010.

*                           LV_TKE02 = IT_COST-TKE010.

*                       ELSEIF LV_MONTH = '11'.

*                           LV_TKG02 = IT_COST-TKG011.

*                           LV_TKE02 = IT_COST-TKE011.

*                       ELSEIF LV_MONTH = '12'.

*                           LV_TKG02 = IT_COST-TKG012.

*                           LV_TKE02 = IT_COST-TKE012.

*                       ENDIF.

*                    ELSEIF IT_COST+17(4) = '1003'.

*                       IF LV_MONTH = '01'.

*                           LV_TKG03 = IT_COST-TKG001.

*                           LV_TKE03 = IT_COST-TKE001.

*                       ELSEIF LV_MONTH = '02'.

*                           LV_TKG03 = IT_COST-TKG002.

*                           LV_TKE03 = IT_COST-TKE002.

*                       ELSEIF LV_MONTH = '03'.

*                           LV_TKG03 = IT_COST-TKG003.

*                           LV_TKE03 = IT_COST-TKE003.

*                       ELSEIF LV_MONTH = '04'.

*                           LV_TKG03 = IT_COST-TKG004.

*                           LV_TKE03 = IT_COST-TKE004.

*                       ELSEIF LV_MONTH = '05'.

*                           LV_TKG03 = IT_COST-TKG005.

*                           LV_TKE03 = IT_COST-TKE005.

*                       ELSEIF LV_MONTH = '06'.

*                           LV_TKG03 = IT_COST-TKG006.

*                           LV_TKE03 = IT_COST-TKE006.

*                       ELSEIF LV_MONTH = '07'.

*                           LV_TKG03 = IT_COST-TKG007.

*                           LV_TKE03 = IT_COST-TKE007.

*                       ELSEIF LV_MONTH = '08'.

*                           LV_TKG03 = IT_COST-TKG008.

*                           LV_TKE03 = IT_COST-TKE008.

*                       ELSEIF LV_MONTH = '09'.

*                           LV_TKG03 = IT_COST-TKG009.

*                           LV_TKE03 = IT_COST-TKE009.

*                       ELSEIF LV_MONTH = '10'.

*                           LV_TKG03 = IT_COST-TKG010.

*                           LV_TKE03 = IT_COST-TKE010.

*                       ELSEIF LV_MONTH = '11'.

*                           LV_TKG03 = IT_COST-TKG011.

*                           LV_TKE03 = IT_COST-TKE011.

*                       ELSEIF LV_MONTH = '12'.

*                           LV_TKG03 = IT_COST-TKG012.

*                           LV_TKE03 = IT_COST-TKE012.

*                       ENDIF.

*                    ENDIF.

*              ENDLOOP.

*           ENDIF.

*

*

*              ITAB-ZPVGW01 * LV_TKG01 / LV_TKE01

*              ITAB-ZPVGW02 * LV_TKG02 / LV_TKE01

*              ITAB-ZPVGW03 * LV_TKG03 / LV_TKE01

*

*              ITAB-TSVGW01 * LV_TKG01 / LV_TKE01

*              ITAB-TSVGW02 * LV_TKG02 / LV_TKE01

*              ITAB-TSVGW03 * LV_TKG03 / LV_TKE01

*

*              ITAB-LHVGW01 * LV_TKG01 / LV_TKE01

*              ITAB-LHVGW02 * LV_TKG02 / LV_TKE01

*              ITAB-LHVGW03 * LV_TKG03 / LV_TKE01

*

*              ITAB-JYVGW01 * LV_TKG01 / LV_TKE01

*              ITAB-JYVGW02 * LV_TKG02 / LV_TKE01

*              ITAB-JYVGW03 * LV_TKG03 / LV_TKE01

*

*              ITAB-BZVGW01 * LV_TKG01 / LV_TKE01

*              ITAB-BZVGW02 * LV_TKG02 / LV_TKE01

*              ITAB-BZVGW03 * LV_TKG03 / LV_TKE01

*

************下面代码依据工单下单的工时,查找标准工时的成本的单位价格,以及计算成本

         ENDLOOP.

*       获取实际工时

         LOOP  AT IT_AFRU_VV  WHERE AUFPL = ITAB-AUFPL.

            CLEAR LV_ARBID.

            CLEAR IT_AFVC.

            READ  TABLE IT_AFVC  WITH  KEY AUFPL = IT_AFRU_VV-AUFPL APLZL = IT_AFRU_VV-APLZL.

            IF SY-SUBRC  EQ  0.

              LV_ARBID = IT_AFVC-ARBID.

            ENDIF.

            CLEAR LV_ARBPL.

            SELECT  SINGLE

                  ARBPL

                   INTO LV_ARBPL

                   FROM CRHD

                   WHERE OBJTY =  'A'

                     AND OBJID = LV_ARBID.

            IF LV_ARBPL =  'STRZP'  OR LV_ARBPL+ 0( 2) =  'ZP'.

              ITAB-BZPVGW01 = IT_AFRU_VV-ISM01.

              ITAB-BZPVGW02 = IT_AFRU_VV-ISM02.

              ITAB-BZPVGW03 = IT_AFRU_VV-ISM03.

            ELSEIF LV_ARBPL =  'STRTS'  OR LV_ARBPL+ 0( 2) =  'TS'.

              ITAB-BTSVGW01 = IT_AFRU_VV-ISM01.

              ITAB-BTSVGW02 = IT_AFRU_VV-ISM02.

              ITAB-BTSVGW03 = IT_AFRU_VV-ISM03.

            ELSEIF LV_ARBPL =  'STRLH'  OR LV_ARBPL+ 0( 2) =  'LH'.

              ITAB-BLHVGW01 = IT_AFRU_VV-ISM01.

              ITAB-BLHVGW02 = IT_AFRU_VV-ISM02.

              ITAB-BLHVGW03 = IT_AFRU_VV-ISM03.

            ELSEIF LV_ARBPL =  'STRYJ'  OR LV_ARBPL+ 0( 2) =  'YJ'.

              ITAB-BJYVGW01 = IT_AFRU_VV-ISM01.

              ITAB-BJYVGW02 = IT_AFRU_VV-ISM02.

              ITAB-BJYVGW03 = IT_AFRU_VV-ISM03.

            ELSEIF LV_ARBPL =  'STRBZ'  OR LV_ARBPL+ 0( 2) =  'BZ'.

              ITAB-BBZVGW01 = IT_AFRU_VV-ISM01.

              ITAB-BBZVGW02 = IT_AFRU_VV-ISM02.

              ITAB-BBZVGW03 = IT_AFRU_VV-ISM03.

            ENDIF.

         ENDLOOP.

         MODIFY ITAB.

         CLEAR ITAB.

    ENDLOOP.

ENDIF.

DATA: T_STATUS  LIKE BSVX-STTXT.

LOOP  AT ITAB.

     CALL  FUNCTION  'STATUS_TEXT_EDIT'

                  EXPORTING

*                   CLIENT        = SY-MANDT

*                   FLG_USER_STAT = ' '

                   OBJNR         = ITAB-OBJNR                " 单据号码

*                   ONLY_ACTIVE   = 'X'

                   SPRAS         =  'E'

*                   BYPASS_BUFFER = ' '

                  IMPORTING

                    LINE          =  ITAB-XTZT.             " 返回状态

    SELECT  SINGLE

          MAKTX

           INTO ITAB-MAKTX

           FROM MAKT

           WHERE MATNR = ITAB-PLNBEZ

             AND SPRAS = SY-LANGU.

    SELECT  SINGLE

          BKLAS

           INTO ITAB-BKLAS

           FROM MBEW

           WHERE MATNR = ITAB-PLNBEZ

             AND BWKEY = ITAB-WERKS.

    SELECT  SINGLE

          MTART

           INTO ITAB-MTART

           FROM MARA

           WHERE MATNR = ITAB-PLNBEZ.

    SELECT  SINGLE

          VKBUR

           INTO ITAB-VKBUR

           FROM VBAK

           WHERE VBELN = ITAB-KDAUF.

    SELECT  SINGLE

          WEMNG

           INTO ITAB-GWEMG

           FROM AFPO

           WHERE AUFNR = ITAB-AUFNR.

    CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_OUTPUT'

       EXPORTING

         INPUT  = ITAB-AUFNR

       IMPORTING

        OUTPUT = ITAB-AUFNR.

    CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_OUTPUT'

       EXPORTING

         INPUT  = ITAB-PLNBEZ

       IMPORTING

        OUTPUT = ITAB-PLNBEZ.

    MODIFY ITAB.

    CLEAR ITAB.

ENDLOOP.

ENDFORM.                     " FRM_SELECT_DATA

*&---------------------------------------------------------------------*

*&      FORM  DISPLAY_DATA

*&---------------------------------------------------------------------*

*       TEXT

*----------------------------------------------------------------------*

*  -->  P1        TEXT

*  <--  P2        TEXT

*----------------------------------------------------------------------*

FORM FRM_DISPLAY .

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'AUFNR'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '生产订单编号'.

    FIELDCAT-SELTEXT_M     =  '生产订单编号'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'XTZT'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '系统状态'.

    FIELDCAT-SELTEXT_M     =  '系统状态'.

    FIELDCAT-OUTPUTLEN     =  20.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'WERKS'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '工厂'.

    FIELDCAT-SELTEXT_M     =  '工厂'.

    FIELDCAT-OUTPUTLEN     =  10.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'AUART'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '订单类型'.

    FIELDCAT-SELTEXT_M     =  '订单类型'.

    FIELDCAT-OUTPUTLEN     =  8.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'KDAUF'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '销售订单编号'.

    FIELDCAT-SELTEXT_M     =  '销售订单编号'.

    FIELDCAT-OUTPUTLEN     =  12.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'KDPOS'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '销售订单行项目'.

    FIELDCAT-SELTEXT_M     =  '销售订单行项目'.

    FIELDCAT-OUTPUTLEN     =  12.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'VKBUR'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '办事处'.

    FIELDCAT-SELTEXT_M     =  '办事处'.

    FIELDCAT-OUTPUTLEN     =  12.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'PLNBEZ'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '物料编号'.

    FIELDCAT-SELTEXT_M     =  '物料编号'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'MAKTX'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '物料描写叙述'.

    FIELDCAT-SELTEXT_M     =  '物料描写叙述'.

    FIELDCAT-OUTPUTLEN     =  35.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'GAMNG'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '订单数量'.

    FIELDCAT-SELTEXT_M     =  '订单数量'.

    FIELDCAT-OUTPUTLEN     =  12.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'GWEMG'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '确认数量'.

    FIELDCAT-SELTEXT_M     =  '确认数量'.

    FIELDCAT-OUTPUTLEN     =  12.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BKLAS'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '评估类'.

    FIELDCAT-SELTEXT_M     =  '评估类'.

    FIELDCAT-OUTPUTLEN     =  10.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'MTART'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '物料类型'.

    FIELDCAT-SELTEXT_M     =  '物料类型'.

    FIELDCAT-OUTPUTLEN     =  10.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'ZPVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-折旧标准工时'.

    FIELDCAT-SELTEXT_M     =  '装配-折旧标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'ZPVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-工资标准工时'.

    FIELDCAT-SELTEXT_M     =  '装配-工资标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'ZPVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-其它标准工时'.

    FIELDCAT-SELTEXT_M     =  '装配-其它标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZPVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-折旧实际工时'.

    FIELDCAT-SELTEXT_M     =  '装配-折旧实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZPVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-工资实际工时'.

    FIELDCAT-SELTEXT_M     =  '装配-工资实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZPVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-其它实际工时'.

    FIELDCAT-SELTEXT_M     =  '装配-其它实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'ZPKOSTL'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '装配-成本中心'.

    FIELDCAT-SELTEXT_M     =  '装配-成本中心'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'TSVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-折旧标准工时'.

    FIELDCAT-SELTEXT_M     =  '调试-折旧标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'TSVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-工资标准工时'.

    FIELDCAT-SELTEXT_M     =  '调试-工资标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'TSVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-其它标准工时'.

    FIELDCAT-SELTEXT_M     =  '调试-其它标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BTSVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-折旧实际工时'.

    FIELDCAT-SELTEXT_M     =  '调试-折旧实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BTSVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-工资实际工时'.

    FIELDCAT-SELTEXT_M     =  '调试-工资实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BTSVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-其它实际工时'.

    FIELDCAT-SELTEXT_M     =  '调试-其它实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'TSKOSTL'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '调试-成本中心'.

    FIELDCAT-SELTEXT_M     =  '调试-成本中心'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'LHVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-折旧标准工时'.

    FIELDCAT-SELTEXT_M     =  '老化-折旧标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'LHVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-工资标准工时'.

    FIELDCAT-SELTEXT_M     =  '老化-工资标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'LHVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-其它标准工时'.

    FIELDCAT-SELTEXT_M     =  '老化-其它标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BLHVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-折旧实际工时'.

    FIELDCAT-SELTEXT_M     =  '老化-折旧实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BLHVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-工资实际工时'.

    FIELDCAT-SELTEXT_M     =  '老化-工资实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BLHVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-其它实际工时'.

    FIELDCAT-SELTEXT_M     =  '老化-其它实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'LHKOSTL'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '老化-成本中心'.

    FIELDCAT-SELTEXT_M     =  '老化-成本中心'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'JYVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-折旧标准工时'.

    FIELDCAT-SELTEXT_M     =  '检验-折旧标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'JYVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-工资标准工时'.

    FIELDCAT-SELTEXT_M     =  '检验-工资标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'JYVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-其它标准工时'.

    FIELDCAT-SELTEXT_M     =  '检验-其它标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BJYVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-折旧实际工时'.

    FIELDCAT-SELTEXT_M     =  '检验-折旧实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BJYVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-工资实际工时'.

    FIELDCAT-SELTEXT_M     =  '检验-工资实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BJYVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-其它实际工时'.

    FIELDCAT-SELTEXT_M     =  '检验-其它实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'JYKOSTL'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '检验-成本中心'.

    FIELDCAT-SELTEXT_M     =  '检验-成本中心'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-折旧标准工时'.

    FIELDCAT-SELTEXT_M     =  '包装-折旧标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-工资标准工时'.

    FIELDCAT-SELTEXT_M     =  '包装-工资标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-其它标准工时'.

    FIELDCAT-SELTEXT_M     =  '包装-其它标准工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BBZVGW01'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-折旧实际工时'.

    FIELDCAT-SELTEXT_M     =  '包装-折旧实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BBZVGW02'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-工资实际工时'.

    FIELDCAT-SELTEXT_M     =  '包装-工资实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BBZVGW03'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-其它实际工时'.

    FIELDCAT-SELTEXT_M     =  '包装-其它实际工时'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

     CLEAR FIELDCAT.

    FIELDCAT-FIELDNAME     =  'BZKOSTL'.

    FIELDCAT-TABNAME       =  'ITAB'.

    FIELDCAT-SELTEXT_S     =  '包装-成本中心'.

    FIELDCAT-SELTEXT_M     =  '包装-成本中心'.

    FIELDCAT-OUTPUTLEN     =  18.

     APPEND FIELDCAT.

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'ZJVGW01'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '折旧标准成本'.

*    FIELDCAT-SELTEXT_M     = '折旧标准成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*

*

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'GZVGW02'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '工资标准成本'.

*    FIELDCAT-SELTEXT_M     = '工资标准成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'QTVGW03'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '其它标准成本'.

*    FIELDCAT-SELTEXT_M     = '其它标准成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*

*

*

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'BZJVGW01'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '折旧实际成本'.

*    FIELDCAT-SELTEXT_M     = '折旧实际成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*

*

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'BGZVGW02'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '工资实际成本'.

*    FIELDCAT-SELTEXT_M     = '工资实际成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*

*    CLEAR FIELDCAT.

*    FIELDCAT-FIELDNAME     = 'BQTVGW03'.

*    FIELDCAT-TABNAME       = 'ITAB'.

*    FIELDCAT-SELTEXT_S     = '其它实际成本'.

*    FIELDCAT-SELTEXT_M     = '其它实际成本'.

*    FIELDCAT-OUTPUTLEN     = 18.

*    APPEND FIELDCAT.

*  LAYOUT-colwidth_optimize = 'X'.

   CALL  FUNCTION  'REUSE_ALV_GRID_DISPLAY'

     EXPORTING

      I_CALLBACK_PROGRAM       = SY-REPID

      IT_FIELDCAT              = FIELDCAT[]

      I_CALLBACK_PF_STATUS_SET =  'SET_PF'

      I_CALLBACK_USER_COMMAND  =  'USER_COMMAND'

      I_BACKGROUND_ID          =  'ALV_BACKGROUND'

      IS_LAYOUT                = LAYOUT

      I_DEFAULT                =  'X'

      I_SAVE                   =  'A'

     TABLES

      T_OUTTAB                 = ITAB

     EXCEPTIONS

       OTHERS                   =  2.

ENDFORM.                     " DISPLAY_DATA

*&---------------------------------------------------------------------*

*&      FORM  STANDARD_FULLSCREEN

*&---------------------------------------------------------------------*

*       TEXT

*----------------------------------------------------------------------*

FORM SET_PF  USING RT_EXTAB  TYPE SLIS_T_EXTAB.

   SET PF-STATUS  'STANDARD_FULLSCREEN'.

ENDFORM.                     "SET_STATUS

转载于:https://www.cnblogs.com/jzdwajue/p/6714580.html