生产订单修改查询.docx

上传人:b****6 文档编号:7135346 上传时间:2023-01-21 格式:DOCX 页数:13 大小:18.79KB
下载 相关 举报
生产订单修改查询.docx_第1页
第1页 / 共13页
生产订单修改查询.docx_第2页
第2页 / 共13页
生产订单修改查询.docx_第3页
第3页 / 共13页
生产订单修改查询.docx_第4页
第4页 / 共13页
生产订单修改查询.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

生产订单修改查询.docx

《生产订单修改查询.docx》由会员分享,可在线阅读,更多相关《生产订单修改查询.docx(13页珍藏版)》请在冰豆网上搜索。

生产订单修改查询.docx

生产订单修改查询

*&

*&------查询生产订单修改明细---------------------------------------------------------------*

REPORT  zppr02.

TYPE-POOLS:

 slis.

TABLES:

 afko,resb,zpp_afko,zpp_resb.

DATA:

 itab_afko LIKE TABLE OF zpp_afko WITH HEADER LINE .

DATA:

 itab_resb LIKE TABLE OF zpp_resb WITH HEADER LINE.

DATA:

   gd_fieldcat TYPE slis_t_fieldcat_alv.

DATA:

   gd_repid LIKE sy-repid.

DATA:

   sla TYPE slis_layout_alv.

DATA :

 allfields TYPE slis_t_fieldcat_alv.

DATA :

 wa_allfields TYPE LINE OF slis_t_fieldcat_alv.

DATA:

 BEGIN OF itab_entries OCCURS 0 ,

        chgdate  LIKE zpp_resb-chgdate ,

      END OF itab_entries.

TYPES :

 BEGIN OF ty_itab ,

          matnr LIKE resb-matnr ,

          werks LIKE resb-werks ,

          lgort LIKE resb-lgort ,

          sortf LIKE resb-sortf,

          bdmng LIKE resb-bdmng,

          rgekz LIKE resb-rgekz ,

          sobkz LIKE resb-sobkz ,

           meins LIKE resb-meins ,

        END OF ty_itab.

TYPES :

 BEGIN OF ty_itab1 ,

         rspos LIKE resb-rspos ,

         matnr LIKE resb-matnr ,

         werks LIKE resb-werks ,

         bdmng LIKE resb-bdmng,  "需求量新

         bdmng1 LIKE resb-bdmng,  "需求量旧

         lgort LIKE resb-lgort , "库存地点新

         lgort1 LIKE resb-lgort , "库存地点旧

         sortf LIKE resb-sortf,  "排序字符串新

         sortf1 LIKE resb-sortf,  "排序字符串旧

         rgekz LIKE resb-rgekz,

         rgekz1 LIKE resb-rgekz ,

         sobkz LIKE resb-sobkz ,

         sobkz1 LIKE resb-sobkz ,

         meins LIKE resb-meins,

         meins1 LIKE resb-meins,

         xloek LIKE resb-xloek, "删除标识

         chgdate LIKE zpp_afko-chgdate, "时间搓

         rsnum LIKE zpp_afko-rsnum, "预留号

         status(200),

       END OF ty_itab1.

DATA:

BEGIN OF rec OCCURS 0,

     index LIKE sy-index,

     aufnr LIKE afko-aufnr,

     rsnum LIKE zpp_afko-rsnum,

     chgdate LIKE zpp_afko-chgdate,

     ip_addr LIKE zpp_afko-ip_addr,

     uname LIKE zpp_afko-uname,

     gamngo LIKE zpp_afko-gamngo,

     gamngn LIKE zpp_afko-gamngn,

     del_flag TYPE c,

     mod_flag TYPE c,

     add_flag TYPE c,

     all_flag TYPE c,

     new_flag TYPE c,

     END OF rec.

DATA:

BEGIN OF rec_resb OCCURS 0,

     del_tab TYPE TABLE OF ty_itab1,

     add_tab TYPE TABLE OF ty_itab1,

     mod_tab TYPE TABLE OF ty_itab1,

     all_tab TYPE TABLE OF ty_itab1,

     new_tab TYPE TABLE OF ty_itab1,

     END OF rec_resb.

DATA:

 itab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      old_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      old_tabbak TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      new_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      newold TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      del_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      add_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      mod_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      all_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,

      new_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE , "

      old_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE , "

      del_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE . "

SELECT-OPTIONS:

       s_aufnr FOR afko-aufnr NO-EXTENSION NO INTERVALS ,"订单编码

       s_datum FOR afko-gltrp DEFAULT '00000000' TO sy-datum , "日期

       s_datet FOR zpp_afko-chgdate NO-DISPLAY. "限定时间

START-OF-SELECTION.

  PERFORM getdata.

  PERFORM fixdata.

  PERFORM fieldcat_init USING gd_fieldcat[].

  PERFORM output_data_alv.

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

*&      FORM  GETDATA

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

FORM getdata .

  CONCATENATE s_datum-low '000000' INTO s_datet-low.

  CONCATENATE s_datum-high '235959' INTO s_datet-high.

  s_datet-sign = s_datum-sign.

  s_datet-option = s_datum-option.

  APPEND s_datet.

  SELECT * INTO TABLE itab_afko

    FROM zpp_afko WHERE aufnr IN s_aufnr AND

         chgdate IN s_datet.

ENDFORM.                    " GETDATA

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

*&      FORM  FIXDATA

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

FORM fixdata .

  DATA :

 n TYPE i ,number TYPE i.

  SORT itab_afko BY aufnr chgdate DESCENDING .

  LOOP AT itab_afko.

    IF n = 0 .

      SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab

        FROM resb WHERE rsnum = itab_afko-rsnum.

      SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab1

        FROM resb WHERE rsnum = itab_afko-rsnum.

    ELSE.

      READ TABLE itab_afko INDEX n .

      SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab

        FROM zpp_resb

        WHERE chgdate = itab_afko-chgdate AND

              rsnum = itab_afko-rsnum.

      new_tab1[] = new_tab[].

    ENDIF.

    n = n + 1 .

    READ TABLE itab_afko INDEX n .

    SELECT * INTO CORRESPONDING FIELDS OF TABLE old_tab

      FROM zpp_resb

      WHERE chgdate = itab_afko-chgdate AND

            rsnum = itab_afko-rsnum.

    old_tab1[] = old_tab[].

    SORT new_tab BY rsnum chgdate rspos ASCENDING .

    SORT old_tab BY rsnum chgdate rspos ASCENDING .

    old_tabbak[] = old_tab[].

    DATA:

 h TYPE i,m TYPE i , g TYPE i.

    newold[]  = new_tab[].

    APPEND LINES OF  old_tab TO newold.

    SORT newold BY rsnum rspos ."排列 便于删除

    DELETE ADJACENT DUPLICATES FROM newold COMPARING matnr  rspos.

    g =  LINES( new_tab ) +   LINES( old_tab ).

    IF g = LINES( newold ).

      LOOP AT new_tab.

        IF new_tab-xloek <> 'X'.

          new_tab-status = '重读新增'.

          APPEND new_tab TO add_tab.

        ENDIF.

      ENDLOOP.

      LOOP AT old_tab.

        IF old_tab-xloek <> 'X'.

          old_tab-lgort1 = old_tab-lgort.

          CLEAR old_tab-lgort.

          old_tab-bdmng1 = old_tab-bdmng.

          CLEAR old_tab-bdmng.

          old_tab-sortf1 = old_tab-sortf.

          CLEAR old_tab-sortf.

          old_tab-rgekz1 = old_tab-rgekz.

          CLEAR old_tab-rgekz.

          old_tab-sobkz1 = old_tab-sobkz.

          CLEAR old_tab-sobkz.

          old_tab-meins1 = old_tab-meins.

          CLEAR old_tab-meins.

          old_tab-status = '重读删除'.

          APPEND old_tab TO del_tab.

        ENDIF.

      ENDLOOP.

    ELSE.

      LOOP AT new_tab.

        READ TABLE old_tab WITH KEY matnr = new_tab-matnr  rspos = new_tab-rspos .

        IF sy-subrc = 0.

          DELETE old_tab WHERE  matnr = new_tab-matnr AND rspos = new_tab-rspos .

          IF new_tab-xloek = 'X'.

            IF old_tab-xloek <> 'X'.

              old_tab-lgort1 = old_tab-lgort.

              CLEAR old_tab-lgort.

              old_tab-bdmng1 = old_tab-bdmng.

              CLEAR old_tab-bdmng.

              old_tab-sortf1 = old_tab-sortf.

              CLEAR old_tab-sortf.

              old_tab-rgekz1 = old_tab-rgekz.

              CLEAR old_tab-rgekz.

              old_tab-sobkz1 = old_tab-sobkz.

              CLEAR old_tab-sobkz.

              old_tab-meins1 = old_tab-meins.

              CLEAR old_tab-meins.

              old_tab-status = '删除'.

              APPEND old_tab TO del_tab.

            ENDIF.

          ELSE.

            IF old_tab-xloek <> 'X'.

              new_tab-status = '修改'.

              IF  new_tab-lgort <> old_tab-lgort OR new_tab-bdmng <> old_tab-bdmng OR

                    old_tab-sortf <> new_tab-sortf OR old_tab-rgekz <> new_tab-rgekz OR

                    old_tab-sobkz <> new_tab-sobkz OR old_tab-meins <> new_tab-meins .

                IF new_tab-lgort <> old_tab-lgort.

                  new_tab-lgort1 = old_tab-lgort.

                ELSE.

                  CLEAR new_tab-lgort.

                ENDIF.

                IF new_tab-bdmng <> old_tab-bdmng.

                  new_tab-bdmng1 = old_tab-bdmng.

                ELSE.

                  CLEAR new_tab-bdmng.

                ENDIF.

                IF old_tab-sortf <> new_tab-sortf.

                  new_tab-sortf1 = old_tab-sortf.

                ELSE.

                  CLEAR new_tab-sortf.

                ENDIF.

                IF old_tab-rgekz <> new_tab-rgekz.

                  new_tab-rgekz1 = old_tab-rgekz.

                ELSE.

                  CLEAR new_tab-rgekz.

                ENDIF.

                IF old_tab-sobkz <> new_tab-sobkz.

                  new_tab-sobkz1 = old_tab-sobkz.

                ELSE.

                  CLEAR new_tab-sobkz .

                ENDIF.

                IF old_tab-meins <> new_tab-meins.

                  new_tab-meins1 = old_tab-meins.

                ELSE.

                  CLEAR new_tab-meins.

                ENDIF.

                APPEND new_tab TO mod_tab.

              ENDIF.

            ELSE.

              new_tab-status = '订单删除恢复-新增'.

              APPEND new_tab TO add_tab.

            ENDIF.

          ENDIF.

        ELSE.

          new_tab-status = '新增'.

          APPEND  new_tab TO add_tab.

        ENDIF.

      ENDLOOP.

      LOOP AT old_tab WHERE xloek <> 'X'.

        old_tab-status = '无删除标记的删除.'.

        old_tab-lgort1 = old_tab-lgort.

        CLEAR old_tab-lgort.

        old_tab-bdmng1 = old_tab-bdmng.

        CLEAR old_tab-bdmng.

        old_tab-sortf1 = old_tab-sortf.

        CLEAR old_tab-sortf.

        old_tab-rgekz1 = old_tab-rgekz.

        CLEAR old_tab-rgekz.

        old_tab-sobkz1 = old_tab-sobkz.

        CLEAR old_tab-sobkz.

        old_tab-meins1 = old_tab-meins.

        CLEAR old_tab-meins.

        APPEND old_tab TO del_tab.

      ENDLOOP.

    ENDIF.

    CLEAR rec.

    MOVE-CORRESPONDING itab_afko TO rec.

    IF del_tab[] IS NOT INITIAL.

      rec-del_flag = 'X'.

    ENDIF.

    IF add_tab[] IS NOT INITIAL.

      rec-add_flag = 'X'.

    ENDIF.

    IF mod_tab[] IS NOT INITIAL.

      rec-mod_flag = 'X'.

    ENDIF.

    rec-all_flag = 'X'.

    rec

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1