恩達(dá)

          可愛(ài)的兒子--陽(yáng)陽(yáng)坨

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            43 隨筆 :: 14 文章 :: 55 評(píng)論 :: 0 Trackbacks

          *&---------------------------------------------------------------------*
          *& Report  ZMD04_XX                                                    *
          *&                                                                     *
          *&---------------------------------------------------------------------*
          *&                                                                     *
          *&                                                                     *
          *&---------------------------------------------------------------------*

          INCLUDE zmd04_XX_top.
          INCLUDE zmd04_XX_sel.

          START-OF-SELECTION.
            IF sel03 = 'X'.
          *取數(shù)據(jù)(需求日期)
              PERFORM get_data_by_date.
            ELSE.
          *取數(shù)據(jù)(其他方式)
              PERFORM get_data_by_others.
            ENDIF.
          *通過(guò)MRP運(yùn)算得到符合條件的數(shù)據(jù)(類似TCODE:MD04的處理方式)
            PERFORM get_data_from_mrp_calc.
          *整理itab.1.將檢驗(yàn)批納入可用數(shù)量;2.按可用日期排序
            PERFORM data_process_step_one.
            IF NOT s_lgort IS INITIAL.
          *扣減排除條件庫(kù)存數(shù)據(jù)(按MRP范圍計(jì)算,不考慮后臺(tái)已排除與MRP相關(guān)的
          *庫(kù)存地的扣減,以便與MD04考慮方式一致?。?br>    PERFORM del_speme_from_stock.
            ENDIF.
          *DATA_OUTPUT_TO_ALV
            PERFORM ouput_to_alv.
          *&--------------------------------------------------------------------*
          *&      Form  data_output
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          FORM data_output.
            DATA:pos TYPE i VALUE 1.

            CLEAR wa_fields.
            wa_fields-fieldname = 'MATNR'.
            wa_fields-seltext_l = '物料代碼'.
            wa_fields-outputlen = '14'.
            wa_fields-key       = 'X'.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MAKTX'.
            wa_fields-seltext_l = '物料描述'.
            wa_fields-outputlen = 18.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DELB0'.
            wa_fields-seltext_l = 'MRP元素'.
            wa_fields-outputlen = 8.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DAT00'.
            wa_fields-seltext_l = '可用日期'.
            wa_fields-outputlen = 8.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DAT01'.
            wa_fields-seltext_l = '收貨日期'.
            wa_fields-outputlen = 8.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'EXTRA'.
            wa_fields-seltext_l = 'MRP元素?cái)?shù)據(jù)'.
            wa_fields-outputlen = 15.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MNG01'.
            wa_fields-seltext_l = '收貨/需求數(shù)量'.
            wa_fields-outputlen = 11.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MNG02'.
            wa_fields-seltext_l = '可用量'.
            wa_fields-outputlen = 11.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'SPEME'.
            wa_fields-seltext_l = '凍結(jié)庫(kù)存量'.
            wa_fields-outputlen = 11.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'LGORT'.
            wa_fields-seltext_l = '庫(kù)存'.
            wa_fields-outputlen = 4.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'AUSKT'.
            wa_fields-seltext_l = '例外'.
            wa_fields-outputlen = 3.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DELNR'.
            wa_fields-seltext_l = 'MRP元素號(hào)'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DELPS'.
            wa_fields-seltext_l = 'MRP元素項(xiàng)'.
            wa_fields-outputlen = 9.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.


            wa_fields-fieldname = 'BERID'.
            wa_fields-seltext_l = 'MRP范圍'.
            wa_fields-outputlen = 7.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
              EXPORTING
                i_callback_program = sy-repid
                i_grid_title       = alv_title
                i_save             = 'X'
                it_fieldcat        = alv_fields
              TABLES
                t_outtab           = itab     "輸出內(nèi)表
              EXCEPTIONS
                program_error      = 1
                OTHERS             = 2.

          ENDFORM.                    "data_output
          *&---------------------------------------------------------------------*
          *&      Form  get_data_from_mrp_calc
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM get_data_from_mrp_calc .
            LOOP AT it00.
              ON CHANGE OF it00-matnr OR it00-berid.
                CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
                  EXPORTING
                    matnr   = it00-matnr
                    werks   = it00-werks
                    berid   = it00-berid
                  IMPORTING
                    e_mt61d = imt61d
                    e_mdkp  = imdkp
                    e_cm61m = icm61m
                    e_mdsta = imdsta
                  TABLES
                    mdpsx   = imdps
                    mdezx   = imdez
                    mdsux   = imdsu.
                IF sy-subrc EQ 0.
                  MOVE-CORRESPONDING imt61d TO itab.
                  IF itab-dispo IN s_dispo.
                    LOOP AT imdez.
                      MOVE-CORRESPONDING imdez TO itab.
                      READ TABLE imdps INDEX sy-tabix.
                      IF sy-subrc EQ 0 AND imdez-delkz = 'AR'.
                        itab-delnr = imdps-delnr.
                        itab-delps = imdps-delps.
                      ENDIF.
                      APPEND itab.
                    ENDLOOP.
                  ENDIF.
                  CLEAR imt61d.
                  CLEAR itab.
                ENDIF.
              ENDON.
            ENDLOOP.

          ENDFORM.                                                    " get_data_from_mrp_calc
          *&---------------------------------------------------------------------*
          *&      Form  IT00lgt
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM del_speme_from_stock .
            LOOP AT itab.
              num = sy-tabix.
              ON CHANGE OF itab-matnr OR itab-berid.
                PERFORM mrp_area USING itab-matnr
                                       itab-werks
                                       itab-berid.

                LOOP AT ilgort WHERE  berid = itab-berid AND lgort IN s_lgort.
                  SELECT SINGLE * FROM t001l WHERE werks = ilgort-werks
                                               AND lgort = ilgort-lgort
                                               AND diskz NE ''.
                  IF sy-subrc NE 0.
                    itab-mng02 = itab-mng02 - ilgort-labst - ilgort-insme.
                  ENDIF.
                ENDLOOP.
                MODIFY itab INDEX num TRANSPORTING mng02.
                CLEAR:ilgort,ilgort[].
              ENDON.
            ENDLOOP.
          ENDFORM.                          " del_speme_from_stock


          *&---------------------------------------------------------------------*
          *&      Form  data_process_step_one
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM data_process_step_one .
          *
            DATA: BEGIN OF x_line OCCURS 0,
               lines LIKE sy-tabix,
               mngxx LIKE itab-mng01,
            END OF x_line.
          *
            LOOP AT itab.
              num = sy-tabix.
              IF  itab-plumi = 'B'.
                IF NOT x_line IS INITIAL AND x_line-mngxx NE 0.
                  APPEND x_line.
                  CLEAR x_line.
                ENDIF.
                x_line-lines = num.
              ENDIF.
              IF itab-delkz = 'QM'.
                x_line-mngxx = x_line-mngxx + itab-mng01.
              ENDIF.
          *一個(gè)物料計(jì)算結(jié)束清空中間結(jié)果
              AT END OF matnr.
                IF NOT x_line IS INITIAL AND x_line-mngxx NE 0.
                  APPEND x_line.
                  CLEAR:x_line.
                ENDIF.
              ENDAT.
              CLEAR:itab.
            ENDLOOP.

            LOOP AT x_line.
              READ TABLE itab INDEX x_line-lines.
              IF sy-subrc EQ 0.
                itab-mng02 = itab-mng02 + x_line-mngxx.
                itab-mng01 = itab-mng02.
                MODIFY itab INDEX x_line-lines TRANSPORTING mng01 mng02.
              ENDIF.
            ENDLOOP.
          *按收貨日期排序
            SORT itab BY matnr berid plaab planr dat01.
          *重新計(jì)算MNG02
            DATA x_mng02 LIKE itab-mng02.
            DATA: num LIKE sy-tabix.
            LOOP AT itab.
              num = sy-tabix.
              IF itab-plumi NE 'B'.
                itab-mng02 = x_mng02 + itab-mng01.
                MODIFY itab INDEX num TRANSPORTING mng02.
              ENDIF.
              x_mng02 = itab-mng02.
            ENDLOOP.
          ENDFORM.                    " data_process_step_one

          *&---------------------------------------------------------------------*
          *&      Form  itab_cZL
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM itab_czl .
            DATA: zdatum LIKE sy-datum.
            DATA: nnn LIKE sy-tabix.

            it_itab[] = itab[].
            po_itab[] = itab[].

            PERFORM calcit_itab.
            PERFORM calcpo_itab.

            LOOP AT it00.
              READ TABLE it_itab WITH KEY matnr = it00-matnr
                                          berid = it00-berid
                                          delkz =  'WB'.
              IF sy-subrc EQ 0.
                it01-aufnr = it00-aufnr.
                it01-rsnum = it00-rsnum.
                it01-rspos = it00-rspos.
                it01-berid = it00-berid.
                it01-matnr = it00-matnr.
                it01-prgrp = it00-prgrp.
                it01-lbtxt = it00-lbtxt.
                it01-normt = it00-normt.
                IF it00-kzear IS INITIAL.
                  it01-m_jxq = it00-enmng - it00-bdmng.
                ENDIF.
          *取庫(kù)存地下的凍結(jié)庫(kù)存
                PERFORM get_speme_from_mard USING it00-matnr
                                                  it00-werks
                                                 it00-berid
                                            CHANGING x_speme.
                it01-speme = x_speme.
                it_itab-mng02 = it_itab-mng02 - x_speme.
                CLEAR:x_speme.
                it01-m_kyk = it_itab-mng02.
                it01-maktx = it_itab-maktx.
                it01-werks = it_itab-werks.
                it01-dispo = it_itab-dispo.

                it01-mng_a = it01-m_kyk + it01-m_jxq.
                READ TABLE it_itab WITH KEY delnr = it00-rsnum delps = it00-rspos.
                IF sy-subrc EQ 0.
                  zdatum = it_itab-dat01.
                  LOOP AT po_itab WHERE matnr = it00-matnr
                                    AND berid = it00-berid
                                    AND delkz NE 'WB'
                                    AND dat01 <= zdatum.
                    it01-mng_a1 = it01-mng_a1 + po_itab-mng01.
                  ENDLOOP.
                  it01-mng_a2 = it01-mng_a + it01-mng_a1.
                  IF it01-mng_a2 > 0.
                    it01-mng_a2 = 0.
                  ENDIF.
                ENDIF.
                APPEND it01.
              ENDIF.
              CLEAR it01.
            ENDLOOP.

            LOOP AT it01.
              ON CHANGE OF it01-aufnr OR it01-matnr OR it01-berid.
                IF sy-tabix NE 1.
                  APPEND it01_01.
                  CLEAR it01_01.
                ENDIF.
                MOVE it01 TO it01_01.
              ENDON.
              IF it01-rspos NE it01_01-rspos.
                it01_01-rspos = ''.
                it01_01-m_jxq = it01_01-m_jxq + it01-m_jxq.
                it01_01-mng_a = it01_01-mng_a  + it01-m_jxq.
                it01_01-mng_a2 = it01_01-mng_a + it01_01-mng_a1.
                IF it01_01-mng_a2 > 0.
                  it01_01-mng_a2 = 0.
                ENDIF.
              ENDIF.
              AT LAST.
                APPEND it01_01.
                CLEAR it01_01.
              ENDAT.
            ENDLOOP.
            REFRESH: it00,itab,it01,it_itab,po_itab.
          ENDFORM.                    " itab_cZL
          *&---------------------------------------------------------------------*
          *&      Form  data_output_iT01
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM data_output_it01 .
            DATA:pos TYPE i VALUE 1.

            CLEAR wa_fields.

            wa_fields-fieldname = 'PRGRP'.
            wa_fields-seltext_l = '型號(hào)'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'LBTXT'.
            wa_fields-seltext_l = '國(guó)家'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'NORMT'.
            wa_fields-seltext_l = '顏色'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MATNR'.
            wa_fields-seltext_l = '物料代碼'.
            wa_fields-outputlen = '15'.
          *  wa_fields-KEY       = 'X'.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MAKTX'.
            wa_fields-seltext_l = '物料描述'.
          *  wa_fields-no_out    = 'X'.

          *  wa_fields-DO_SUM    =  'X'.
            wa_fields-outputlen = 20.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.
          *
          *  wa_fields-fieldname = 'DELB0'.
          *  wa_fields-seltext_l = 'MRP元素'.
          *  wa_fields-outputlen = 6.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.

          *  wa_fields-fieldname = 'DAT00'.
          *  wa_fields-seltext_l = '可用日期'.
          *  wa_fields-outputlen = 8.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.

          *  wa_fields-fieldname = 'DAT01'.
          *  wa_fields-seltext_l = '收貨日期'.
          *  wa_fields-outputlen = 8.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.
          *
          *  wa_fields-fieldname = 'EXTRA'.
          *  wa_fields-seltext_l = 'MRP元素?cái)?shù)據(jù)'.
          *  wa_fields-outputlen = 40.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.

            wa_fields-fieldname = 'M_JXQ'.
            wa_fields-seltext_l = '凈需求數(shù)量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'M_KYK'.
            wa_fields-seltext_l = '可用庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'SPEME'.
            wa_fields-seltext_l = '凍結(jié)庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MNG_A'.
            wa_fields-seltext_l = '確認(rèn)需求量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MNG_A1'.
            wa_fields-seltext_l = '確認(rèn)的PO量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MNG_A2'.
            wa_fields-seltext_l = '短缺數(shù)量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.
          *
          *  wa_fields-fieldname = 'LGORT'.
          *  wa_fields-seltext_l = '庫(kù)存'.
          *  wa_fields-outputlen = 4.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.
          *
          *  wa_fields-fieldname = 'AUSKT'.
          *  wa_fields-seltext_l = '庫(kù)存'.
          *  wa_fields-outputlen = 2.
          *  wa_fields-COL_POS  = POS.
          *  APPEND wa_fields TO ALV_fields.
          *  POS = POS + 1.
          *  CLEAR wa_fields.

            wa_fields-fieldname = 'AUFNR'.
            wa_fields-seltext_l = '生產(chǎn)訂單'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'RSNUM'.
            wa_fields-seltext_l = '預(yù)留號(hào)'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'RSPOS'.
            wa_fields-seltext_l = '項(xiàng)目'.
            wa_fields-outputlen = 4.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'BERID'.
            wa_fields-seltext_l = 'MRP范圍'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DISPO'.
            wa_fields-seltext_l = 'MRP控制者'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

           

            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
          * CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

              EXPORTING
                i_callback_program = sy-repid
               i_grid_title       = alv_title
                i_save             = 'X'
                it_fieldcat        = alv_fields
                 i_callback_user_command = 'MYCOMMANDC'
              TABLES
                t_outtab           = it01_01     "輸出內(nèi)表
              EXCEPTIONS
                program_error      = 1
                OTHERS             = 2.

          ENDFORM.                    " data_output_iT01

          *&---------------------------------------------------------------------*
          *&      Form  itab_bzl
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM itab_bzl .
            DATA: zdatum LIKE sy-datum.
            DATA: nnn LIKE sy-tabix.
          *AR 相關(guān)預(yù)訂
          *BE 訂單項(xiàng)目計(jì)劃行
          *FE 生產(chǎn)訂單
          *LA 發(fā)運(yùn)通知
          *MR 預(yù)定
          *SB 相關(guān)需求
          *U2 庫(kù)存轉(zhuǎn)移請(qǐng)求的批準(zhǔn)訂單
          *UR 轉(zhuǎn)儲(chǔ)預(yù)定的庫(kù)存
          *WB 工廠庫(kù)存
            it_itab[] = itab[].
            po_itab[] = itab[].

            PERFORM calcit_itab.
            PERFORM calcpo_itab.

            LOOP AT it00.
              READ TABLE it_itab WITH KEY matnr = it00-matnr
                                          berid = it00-berid
                                          delkz =  'WB'.
              IF sy-subrc EQ 0.
                iout-aufnr = it00-aufnr.
                iout-rsnum = it00-rsnum.
                iout-rspos = it00-rspos.
                iout-berid = it00-berid.
                iout-matnr = it00-matnr.
                iout-prgrp = it00-prgrp.
                iout-lbtxt = it00-lbtxt.
                iout-normt = it00-normt.
          *取庫(kù)存地下的凍結(jié)庫(kù)存
                PERFORM get_speme_from_mard USING it00-matnr
                                                  it00-werks
                                                 it00-berid
                                            CHANGING x_speme.
                iout-speme = x_speme.
                it_itab-mng02 = it_itab-mng02 - x_speme.
                CLEAR:x_speme.
                iout-m_kyk = it_itab-mng02.
                iout-maktx = it_itab-maktx.
                iout-werks = it_itab-werks.
                iout-dispo = it_itab-dispo.

                READ TABLE it_itab WITH KEY delnr = it00-rsnum
                                            delps = it00-rspos.
                IF sy-subrc EQ 0.
                  iout-m_jxq = it_itab-mng01.
                  zdatum = it_itab-dat01.
                  out_datum = zdatum.

                  PERFORM fill_dates_2_itab
                              USING
                                 out_datum
                                 iout-mng_a
                                 iout-mng_a1
                                 iout-mng_a2
                                 iout-jxq_a.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_b
                              iout-mng_b1
                              iout-mng_b2
                              iout-jxq_b.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_c
                              iout-mng_c1
                              iout-mng_c2
                              iout-jxq_c.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_d
                              iout-mng_d1
                              iout-mng_d2
                              iout-jxq_d.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_e
                              iout-mng_e1
                              iout-mng_e2
                              iout-jxq_e.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_f
                              iout-mng_f1
                              iout-mng_f2
                              iout-jxq_f.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_g
                              iout-mng_g1
                              iout-mng_g2
                              iout-jxq_g.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_h
                              iout-mng_h1
                              iout-mng_h2
                              iout-jxq_h.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_i
                              iout-mng_i1
                              iout-mng_i2
                              iout-jxq_i.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_j
                              iout-mng_j1
                              iout-mng_j2
                              iout-jxq_j.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_k
                              iout-mng_k1
                              iout-mng_k2
                              iout-jxq_k.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_l
                              iout-mng_l1
                              iout-mng_l2
                              iout-jxq_l.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_m
                              iout-mng_m1
                              iout-mng_m2
                              iout-jxq_m.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_dates_2_itab
                           USING
                              out_datum
                              iout-mng_n
                              iout-mng_n1
                              iout-mng_n2
                              iout-jxq_n.
                  ENDIF.
                  out_datum = zdatum.
                  APPEND iout.
                ENDIF.
              ENDIF.
              CLEAR iout.
            ENDLOOP.

            SORT iout BY aufnr matnr berid rspos DESCENDING.

            LOOP AT iout.
              ON CHANGE OF iout-aufnr OR iout-matnr OR iout-berid.
                IF sy-tabix NE 1.
                  APPEND iout_01.
                  CLEAR iout_01.
                ENDIF.
                MOVE iout TO iout_01.
              ENDON.

              IF iout-rspos NE iout_01-rspos.
                iout_01-rspos = ''.
                iout_01-m_jxq = iout_01-m_jxq + iout-m_jxq.
              ENDIF.

              AT LAST.
                APPEND iout_01.
                CLEAR iout_01.
              ENDAT.
            ENDLOOP.
            REFRESH: it00,itab,iout,it_itab,po_itab.
          ENDFORM.                    " itab_bzl
          *&---------------------------------------------------------------------*
          *&      Form  data_output_IOUT
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM data_output_iout .
            DATA:pos TYPE i VALUE 1,
                itab_outdatum(18),
                itab_datum LIKE sy-datum.
            CLEAR wa_fields.
            wa_fields-fieldname = 'PRGRP'.
            wa_fields-seltext_l = '型號(hào)'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'LBTXT'.
            wa_fields-seltext_l = '國(guó)家'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'NORMT'.
            wa_fields-seltext_l = '顏色'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'AUFNR'.
            wa_fields-seltext_l = '生產(chǎn)訂單'.
            wa_fields-outputlen = 12.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MATNR'.
            wa_fields-seltext_l = '物料代碼'.
            wa_fields-outputlen = '15'.
          *  wa_fields-KEY       = 'X'.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MAKTX'.
            wa_fields-seltext_l = '物料描述'.
          *  wa_fields-no_out    = 'X'.

          *  wa_fields-DO_SUM    =  'X'.
            wa_fields-outputlen = 20.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'M_JXQ'.
            wa_fields-seltext_l = '凈需求數(shù)量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'M_KYK'.
            wa_fields-seltext_l = '可用庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'SPEME'.
            wa_fields-seltext_l = '凍結(jié)庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.

            pos = pos + 1.
            CLEAR wa_fields.
            itab_datum = out_datum.
            itab_outdatum(10) = '確認(rèn)需求/'.
            out_datum = out_datum .
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.

              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.
            out_datum = itab_datum.


            itab_outdatum(10) = '確認(rèn)PO/'.
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A1'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            out_datum = itab_datum.

            itab_outdatum(10) = '短缺數(shù)量/'.
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A2'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            out_datum = itab_datum.

           

            wa_fields-fieldname = 'RSNUM'.
            wa_fields-seltext_l = '預(yù)留號(hào)'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'RSPOS'.
            wa_fields-seltext_l = '項(xiàng)目'.
            wa_fields-outputlen = 4.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'BERID'.
            wa_fields-seltext_l = 'MRP范圍'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DISPO'.
            wa_fields-seltext_l = 'MRP控制者'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
              EXPORTING
                i_callback_program      = sy-repid
                i_grid_title            = alv_title
                i_save                  = 'X'
                it_fieldcat             = alv_fields
                i_callback_user_command = 'MYCOMMAND'
              TABLES
                t_outtab                = iout_01     "輸出內(nèi)表
              EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.

          ENDFORM.                    " data_output_IOUT
          *&---------------------------------------------------------------------*
          *&      Form  calcit_itab
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM calcit_itab .
            DATA x_mng02 LIKE itab-mng02.

            DELETE it_itab WHERE delkz NE 'AR'
                             AND delkz NE 'WB'
                              OR plaab NE '02'.

            LOOP AT it_itab.
              num = sy-tabix.
              IF it_itab-plumi NE 'B'.
                it_itab-mng02 = x_mng02 + it_itab-mng01.
                MODIFY it_itab INDEX num TRANSPORTING mng02.
              ENDIF.
              x_mng02 = it_itab-mng02.
            ENDLOOP.
          ENDFORM.                    " calcit_itab
          *&---------------------------------------------------------------------*
          *&      Form  calcpo_itab
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM calcpo_itab .
            DATA x_mng02 LIKE itab-mng02.

            DELETE po_itab WHERE delkz NE 'BE'
                             AND delkz NE 'WB'
                              OR plaab NE '02'.
            LOOP AT po_itab.
              num = sy-tabix.
              IF po_itab-plumi NE 'B'.
                po_itab-mng02 = x_mng02 + po_itab-mng01.
                MODIFY po_itab INDEX num TRANSPORTING mng02.
              ENDIF.
              x_mng02 = po_itab-mng02.
            ENDLOOP.
          ENDFORM.                    " calcpo_itab

          *&--------------------------------------------------------------------*
          *&      Form  GET_data_BY_OTHERS
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          FORM get_data_by_others.
            SELECT resb~rsnum resb~rspos resb~werks resb~lgort resb~bdmng
                   resb~enmng resb~kzear afko~aufnr  afko~plnbez resb~matnr
              APPENDING TABLE it00 FROM afko INNER JOIN resb
                           ON afko~rsnum = resb~rsnum
                        WHERE afko~aufnr = s_aufnr
                          AND resb~matnr IN s_matnr
                          AND resb~werks = s_werks
                          AND resb~xloek = ''
                          AND resb~dumps EQ space. "非虛擬件
          *                AND resb~kzkup EQ space. "非散裝物料

            LOOP AT it00 WHERE NOT lgort IS INITIAL.
              SELECT SINGLE * FROM mdlg WHERE werks = it00-werks
                                          AND lgort = it00-lgort.
              IF sy-subrc EQ 0.
                SELECT SINGLE * FROM mdma WHERE matnr = it00-matnr
                                            AND berid = mdlg-berid.
                IF sy-subrc EQ 0.
                  it00-berid = mdma-berid.
                  MODIFY it00.
                ENDIF.
              ENDIF.
            ENDLOOP.

            LOOP AT it00.
              IF it00-berid IS INITIAL.
                SELECT SINGLE * FROM mdlv WHERE werzg = it00-werks
                            AND berty = '01'.
                IF sy-subrc EQ 0.
                  it00-berid = mdlv-berid.
                  SELECT SINGLE * FROM marc WHERE matnr = it00-matnr
                                              AND werks = it00-werks
                                              AND diber = 'X'.
                  IF sy-subrc EQ 0.
                    MODIFY it00.
                  ENDIF.
                ENDIF.
              ENDIF.
              IF NOT it00-berid IN s_berid.
                DELETE it00.
              ENDIF.
            ENDLOOP.

            SORT it00 BY aufnr.
            LOOP AT it00.
              ON CHANGE OF it00-aufnr.
                CLEAR:it00_01-lbtxt,it00_01-normt,it00_01-prgrp.
                SELECT SINGLE * FROM afko WHERE aufnr = it00-aufnr.
                IF sy-subrc EQ 0.
                  SELECT SINGLE * FROM mara WHERE matnr = afko-plnbez.
                  IF sy-subrc EQ 0.
                    it00_01-normt = mara-normt.
                    SELECT SINGLE * FROM t024x WHERE labor = mara-labor
                                                AND spras = sy-langu.

                    IF sy-subrc EQ 0.
                      it00_01-lbtxt = t024x-lbtxt.
                    ENDIF.

                    SELECT SINGLE * FROM pgmi WHERE werks = s_werks
                                                AND nrmit = afko-plnbez
                                                AND pgtyp = ''.
                    IF sy-subrc EQ 0.
                      it00_01-prgrp = pgmi-prgrp.
                    ENDIF.
                  ENDIF.
                ENDIF.

              ENDON.

              it00-lbtxt = it00_01-lbtxt.
              it00-normt = it00_01-normt.
              it00-prgrp = it00_01-prgrp.
              MODIFY it00.
            ENDLOOP.
            SORT it00 BY matnr berid.
            CLEAR it00.
          ENDFORM.                    "GET_data_BY_OTHERS
          *&---------------------------------------------------------------------*
          *&      Form  GET_data_BY_dATE
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM get_data_by_date .
            SELECT resb~rsnum resb~rspos resb~werks resb~lgort resb~bdmng
                   resb~enmng resb~kzear afko~aufnr afko~plnbez resb~matnr
            INTO TABLE it00 FROM resb INNER JOIN afko ON afko~aufnr = resb~aufnr
                 WHERE resb~bdter  <= sel_datu
                   AND resb~aufnr  NE ''
                   AND resb~matnr  IN s_matnr
                   AND resb~werks  EQ s_werks
                   AND resb~xloek  EQ ''
                   AND afko~plnbez IN s_plnbez
                   AND resb~dumps EQ space. "非虛擬件
          *         AND resb~kzkup EQ space. "非散裝物料

            LOOP AT it00 WHERE NOT lgort IS INITIAL.
              num = sy-tabix.
              SELECT SINGLE * FROM mdlg WHERE werks = it00-werks
                                          AND lgort = it00-lgort.
              IF sy-subrc EQ 0.
                SELECT SINGLE * FROM mdma WHERE matnr = it00-matnr
                                            AND berid = mdlg-berid
                                            AND loekz = ''.
                IF sy-subrc EQ 0.
                  it00-berid = mdma-berid.
                  MODIFY it00 INDEX num TRANSPORTING berid.
                ENDIF.
              ENDIF.
            ENDLOOP.

            LOOP AT it00.
              num = sy-tabix.
              IF it00-berid IS INITIAL.
                SELECT SINGLE * FROM mdlv WHERE werzg = it00-werks
                            AND berty = '01'.
                IF sy-subrc EQ 0.
                  it00-berid = mdlv-berid.
                  SELECT SINGLE * FROM marc WHERE matnr = it00-matnr
                                              AND werks = it00-werks
                                              AND diber = 'X'.
                  IF sy-subrc EQ 0.
                    MODIFY it00 INDEX num TRANSPORTING berid.
                  ENDIF.
                ENDIF.
              ENDIF.
              IF NOT it00-berid IN s_berid.
                DELETE it00.
              ENDIF.
            ENDLOOP.

            SORT it00 BY aufnr.
            LOOP AT it00.
              ON CHANGE OF it00-aufnr.
                CLEAR:it00_01-lbtxt,it00_01-normt,it00_01-prgrp.
                SELECT SINGLE * FROM afko WHERE aufnr = it00-aufnr.
                IF sy-subrc EQ 0.
                  SELECT SINGLE * FROM mara WHERE matnr = afko-plnbez.
                  IF sy-subrc EQ 0.
                    it00_01-normt = mara-normt.
                    SELECT SINGLE * FROM t024x WHERE labor = mara-labor
                                                AND spras = sy-langu.
                    IF sy-subrc EQ 0.
                      it00_01-lbtxt = t024x-lbtxt.
                    ENDIF.
                    SELECT SINGLE * FROM pgmi WHERE werks = s_werks
                                                AND nrmit = afko-plnbez
                                                AND pgtyp = ''.
                    IF sy-subrc EQ 0.
                      it00_01-prgrp = pgmi-prgrp.
                    ENDIF.
                  ENDIF.
                ENDIF.

              ENDON.
              it00-lbtxt = it00_01-lbtxt.
              it00-normt = it00_01-normt.
              it00-prgrp = it00_01-prgrp.
              MODIFY it00.
            ENDLOOP.
            SORT it00 BY matnr berid.
            CLEAR it00.
          ENDFORM.                    " GET_data_BY_dATE

          *&--------------------------------------------------------------------*
          *&      Form  itab_Ezl
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          FORM itab_ezl .
            DATA: zdatum LIKE sy-datum.

            it_itab[] = itab[].
            po_itab[] = itab[].

            PERFORM calcit_itab.
            PERFORM calcpo_itab.

            LOOP AT it00.
              ON CHANGE OF it00-matnr OR it00-berid.

                READ TABLE it_itab WITH KEY matnr = it00-matnr
                                            berid = it00-berid
                                            delkz =  'WB'.
                IF sy-subrc EQ 0.

                  iout-berid = it00-berid.
                  iout-matnr = it00-matnr.
          *取庫(kù)存地下的凍結(jié)庫(kù)存
                  PERFORM get_speme_from_mard USING  it00-matnr
                                                     it00-werks
                                                     it00-berid
                                           CHANGING  x_speme.
                  iout-speme = x_speme.
                  it_itab-mng02 = it_itab-mng02 - x_speme.
                  CLEAR:x_speme.
                  iout-m_kyk = it_itab-mng02.
                  iout-maktx = it_itab-maktx.
                  iout-werks = it_itab-werks.
                  iout-dispo = it_itab-dispo.
                  zdatum = sel_datu.
                  out_datum = zdatum.

                  PERFORM fill_days_to_itab
                              USING
                                 out_datum
                                 iout-mng_a
                                 iout-mng_a1
                                 iout-mng_a2
                                 iout-jxq_a
                                 'a'.


                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.

                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_b
                              iout-mng_b1
                              iout-mng_b2
                              iout-jxq_b
                              'b'.
                  ENDIF.


                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_c
                              iout-mng_c1
                              iout-mng_c2
                              iout-jxq_c
                              'c'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_d
                              iout-mng_d1
                              iout-mng_d2
                              iout-jxq_d
                              'd'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_e
                              iout-mng_e1
                              iout-mng_e2
                              iout-jxq_e
                              'e'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_f
                              iout-mng_f1
                              iout-mng_f2
                              iout-jxq_f
                              'f'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_g
                              iout-mng_g1
                              iout-mng_g2
                              iout-jxq_g
                              'g'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_h
                              iout-mng_h1
                              iout-mng_h2
                              iout-jxq_h
                              'h'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_i
                              iout-mng_i1
                              iout-mng_i2
                              iout-jxq_i
                              'i'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_j
                              iout-mng_j1
                              iout-mng_j2
                              iout-jxq_j
                              'j'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_k
                              iout-mng_k1
                              iout-mng_k2
                              iout-jxq_k
                              'k'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_l
                              iout-mng_l1
                              iout-mng_l2
                              iout-jxq_l
                              'l'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_m
                              iout-mng_m1
                              iout-mng_m2
                              iout-jxq_m
                              'm'.
                  ENDIF.

                  IF out_datum > sy-datum.
                    out_datum = out_datum - s_days.
                    IF out_datum < sy-datum.
                      out_datum = sy-datum.
                    ENDIF.
                    PERFORM fill_days_to_itab
                           USING
                              out_datum
                              iout-mng_n
                              iout-mng_n1
                              iout-mng_n2
                              iout-jxq_n
                              'n'.
                  ENDIF.
                  out_datum = zdatum.
                  iout-m_jxq = iout-jxq_a.
                  APPEND iout.
                ENDIF.
                CLEAR iout.
              ENDON.
            ENDLOOP.
            it02[] = iout[].
            REFRESH:it00,itab,iout,it_itab,po_itab.
          ENDFORM.                    "itab_Ezl
          *&---------------------------------------------------------------------*
          *&      Form  data_output_IT02
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM data_output_it02 .
            DATA:pos TYPE i VALUE 1,
                itab_outdatum(18),
                itab_datum LIKE sy-datum.

            CLEAR wa_fields.
            wa_fields-fieldname = 'MATNR'.
            wa_fields-seltext_l = '物料代碼'.
            wa_fields-outputlen = '15'.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'MAKTX'.
            wa_fields-seltext_l = '物料描述'.
            wa_fields-outputlen = 20.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'M_JXQ'.
            wa_fields-seltext_l = '凈需求數(shù)量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'M_KYK'.
            wa_fields-seltext_l = '可用庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'SPEME'.
            wa_fields-seltext_l = '凍結(jié)庫(kù)存量'.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            itab_datum = out_datum.
            itab_outdatum(10) = '確認(rèn)需求/'.
            out_datum = out_datum .
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.

              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)需求/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.
            out_datum = itab_datum.


            itab_outdatum(10) = '確認(rèn)PO/'.
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A1'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '確認(rèn)PO/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N1'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            out_datum = itab_datum.

            itab_outdatum(10) = '短缺數(shù)量/'.
            itab_outdatum+10(8) =  out_datum.
            CONDENSE itab_outdatum.

            wa_fields-fieldname = 'MNG_A2'.
            wa_fields-seltext_l = itab_outdatum.
            CLEAR itab_outdatum.
            wa_fields-outputlen = 13.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_B2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_C2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_D2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_E2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_F2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_G2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_H2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_I2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_J2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_K2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_L2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_M2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            IF out_datum > sy-datum.
              itab_outdatum(10) = '短缺數(shù)量/'.
              out_datum = out_datum - s_days.
              IF out_datum < sy-datum.
                out_datum = sy-datum.
              ENDIF.
              itab_outdatum+10(8) =  out_datum.
              CONDENSE itab_outdatum.

              wa_fields-fieldname = 'MNG_N2'.
              wa_fields-seltext_l = itab_outdatum.
              CLEAR itab_outdatum.
              wa_fields-outputlen = 13.
              wa_fields-col_pos  = pos.
              APPEND wa_fields TO alv_fields.
              pos = pos + 1.
              CLEAR wa_fields.
            ENDIF.

            out_datum = itab_datum.

           

            wa_fields-fieldname = 'BERID'.
            wa_fields-seltext_l = 'MRP范圍'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

            wa_fields-fieldname = 'DISPO'.
            wa_fields-seltext_l = 'MRP控制者'.
            wa_fields-outputlen = 10.
            wa_fields-col_pos  = pos.
            APPEND wa_fields TO alv_fields.
            pos = pos + 1.
            CLEAR wa_fields.

           

            CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
              EXPORTING
                i_callback_program      = sy-repid
                i_grid_title            = alv_title
                i_save                  = 'X'
                it_fieldcat             = alv_fields
                i_callback_user_command = 'MYCOMMANDE'
              TABLES
                t_outtab                = it02     "輸出內(nèi)表
              EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.

          ENDFORM.                    " data_output_IT02

          *&--------------------------------------------------------------------*
          *&      Form  fill_days_to_itab
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->P_datum  text
          *      -->P_mng_a    text
          *      -->P_mng_a1   text
          *      -->P_mng_a2   text
          *      -->P_m_jxq    text
          *---------------------------------------------------------------------*
          FORM fill_days_to_itab USING p_datum
                                       p_mng_a
                                       p_mng_a1
                                       p_mng_a2
                                       p_m_jxq
                                       p_x.


            CLEAR:p_mng_a,p_mng_a1,p_mng_a2,p_m_jxq.
            IF p_datum <= sy-datum."OPEN PO在當(dāng)前日期之前的都放到當(dāng)前日期欄位
              LOOP AT po_itab WHERE matnr = it00-matnr
                                AND berid = it00-berid
                                AND delkz NE 'WB'
                                AND dat01 <= p_datum.
                p_mng_a1 = p_mng_a1 + po_itab-mng01.
              ENDLOOP.
            ELSE.
              LOOP AT po_itab WHERE matnr = it00-matnr
                                AND berid = it00-berid
                                AND delkz NE 'WB'
                                AND dat01 = p_datum.
                p_mng_a1 = p_mng_a1 + po_itab-mng01.
              ENDLOOP.
            ENDIF.
          *
            LOOP AT it_itab WHERE matnr = it00-matnr
                              AND berid = it00-berid
                              AND delkz NE 'WB'
                              AND dat01 <= p_datum.

              p_mng_a = p_mng_a + it_itab-mng01.

            ENDLOOP.
            p_m_jxq =  p_mng_a.
            p_mng_a = iout-m_kyk + p_m_jxq.
            p_mng_a2 = p_mng_a + p_mng_a1.
            IF p_mng_a2 > 0.
              p_mng_a2 = 0.
            ENDIF.
          ENDFORM.                    "fill_days_to_itab


          *&--------------------------------------------------------------------*
          *&      Form  fill_dates_2_itab
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->P_datum  text
          *      -->P_mng_a    text
          *      -->P_mng_a1   text
          *      -->P_mng_a2   text
          *      -->P_m_jxq    text
          *---------------------------------------------------------------------*
          FORM fill_dates_2_itab USING p_datum
                                       p_mng_a
                                       p_mng_a1
                                       p_mng_a2
                                       p_m_jxq.

            CLEAR: p_mng_a,p_mng_a1,p_mng_a2,p_m_jxq.

            LOOP AT po_itab WHERE matnr = it00-matnr
                              AND berid = it00-berid
                              AND delkz NE 'WB'
                              AND dat01 <= p_datum.
              p_mng_a1 = p_mng_a1 + po_itab-mng01.
            ENDLOOP.

            LOOP AT it_itab WHERE matnr = it00-matnr
                              AND berid = it00-berid
                              AND  delkz NE 'WB'
                              AND dat01 <=  p_datum
                              AND delnr NE it00-rsnum.

              p_mng_a = p_mng_a + it_itab-mng01.
            ENDLOOP.

            LOOP AT it_itab WHERE matnr = it00-matnr
                              AND berid = it00-berid
                              AND  delkz NE 'WB'
                              AND dat01 <=  p_datum
                              AND delnr = it00-rsnum
                              AND delps <= it00-rspos.

              p_mng_a = p_mng_a + it_itab-mng01.
            ENDLOOP.

            p_m_jxq = p_mng_a.
            p_mng_a = iout-m_kyk + p_mng_a .
            p_mng_a2 = p_mng_a + p_mng_a1.
            IF p_mng_a2 > 0.
              p_mng_a2 = 0.
            ENDIF.
          ENDFORM.                    "fill_dates_2_itab

          *&--------------------------------------------------------------------*
          *&      Form  MYCOMMAND
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->R_UCOMM    text
          *      -->RS_SELFIELDtext
          *---------------------------------------------------------------------*
          FORM mycommand USING r_ucomm LIKE sy-ucomm
                                  rs_selfield TYPE slis_selfield.

            CASE r_ucomm.

              WHEN '&IC1'.

                READ TABLE iout_01 INDEX  rs_selfield-tabindex.
                IF sy-subrc EQ 0.
                  SET PARAMETER ID 'MAT' FIELD iout_01-matnr.
                  SET PARAMETER ID 'LAG' FIELD id_lgort.
                  SET PARAMETER ID 'CHA' FIELD id_charg.
                  SET PARAMETER ID 'WRK' FIELD iout_01-werks .
                  CALL TRANSACTION 'MMBE'  AND SKIP FIRST SCREEN .

                ENDIF.
                CLEAR: rs_selfield-tabindex.
            ENDCASE.
          ENDFORM.                               " USER_COMMAND

          *&--------------------------------------------------------------------*
          *&      Form  MYCOMMANDC
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->R_UCOMM    text
          *      -->RS_SELFIELDtext
          *---------------------------------------------------------------------*
          FORM mycommandc USING r_ucomm LIKE sy-ucomm
                                  rs_selfield TYPE slis_selfield.

            CASE r_ucomm.

              WHEN '&IC1'.

                READ TABLE it01_01 INDEX  rs_selfield-tabindex.
                IF sy-subrc EQ 0.
                  SET PARAMETER ID 'MAT' FIELD it01_01-matnr.
                  SET PARAMETER ID 'BERID' FIELD it01_01-berid.
                  SET PARAMETER ID 'WRK' FIELD it01_01-werks.

          *        SET PARAMETER ID 'LAG' FIELD id_lgort.
          *        SET PARAMETER ID 'CHA' FIELD id_charg.
                  CALL TRANSACTION 'MD04'  AND SKIP FIRST SCREEN .

                ENDIF.
                IF sy-subrc EQ 0.
                  SET PARAMETER ID 'MAT' FIELD it01_01-matnr.
                  SET PARAMETER ID 'WRK' FIELD it01_01-werks.
                  SET PARAMETER ID 'LAG' FIELD id_lgort.
                  SET PARAMETER ID 'CHA' FIELD id_charg.
                  CALL TRANSACTION 'MMBE'  AND SKIP FIRST SCREEN .

                ENDIF.
                CLEAR: rs_selfield-tabindex.

            ENDCASE.
          ENDFORM.                               " USER_COMMAND

          *&--------------------------------------------------------------------*
          *&      Form  MYCOMMANDE
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->R_UCOMM    text
          *      -->RS_SELFIELDtext
          *---------------------------------------------------------------------*
          FORM mycommande USING r_ucomm LIKE sy-ucomm
                                  rs_selfield TYPE slis_selfield.

            CASE r_ucomm.

              WHEN '&IC1'.

                READ TABLE it02 INDEX  rs_selfield-tabindex.
                IF sy-subrc EQ 0.
                  SET PARAMETER ID 'MAT' FIELD it02-matnr.
                  SET PARAMETER ID 'LAG' FIELD id_lgort.
                  SET PARAMETER ID 'CHA' FIELD id_charg.
                  SET PARAMETER ID 'WRK' FIELD it02-werks .
                  CALL TRANSACTION 'MMBE'  AND SKIP FIRST SCREEN .

                ENDIF.
                CLEAR: rs_selfield-tabindex.
            ENDCASE.
          ENDFORM.                               " USER_COMMAND

          *&--------------------------------------------------------------------*
          *&      Form  mrp_area
          *&--------------------------------------------------------------------*
          *       text
          *---------------------------------------------------------------------*
          *      -->p_matnr    text
          *      -->p_werks    text
          *      -->p_berid    text
          *---------------------------------------------------------------------*
          FORM mrp_area USING p_matnr p_werks p_berid .
            DATA:nnn LIKE sy-tabix.
            SELECT matnr werks lgort labst speme insme FROM mard
              INTO TABLE ilgort WHERE matnr = p_matnr
                                  AND werks = p_werks.
            IF NOT p_berid IS INITIAL.
              LOOP AT ilgort.
          ******change by zhaohd****************
                nnn = sy-tabix.
                IF NOT ilgort[] IS INITIAL.
          ********end***************************
                  SELECT SINGLE * FROM mdlg WHERE werks = p_werks
                                              AND lgort = ilgort-lgort.
                  IF sy-subrc EQ 0.
                    SELECT SINGLE * FROM mdma WHERE matnr = p_matnr
                                                AND berid = mdlg-berid
                                                AND loekz = ''.
                    IF sy-subrc EQ 0.
                      ilgort-berid = mdlg-berid.
                      MODIFY ilgort INDEX nnn TRANSPORTING berid.
                    ELSE.
                      SELECT SINGLE * FROM mdlv WHERE werzg = p_werks.
                      IF sy-subrc EQ 0.
                        ilgort-berid = mdlv-berid.
                        MODIFY ilgort INDEX nnn TRANSPORTING berid.
                      ENDIF.
                    ENDIF.
                  ELSE.
                    SELECT SINGLE * FROM mdlv WHERE werzg = p_werks.
                    IF sy-subrc EQ 0.
                      ilgort-berid = mdlv-berid.
                      MODIFY ilgort INDEX nnn TRANSPORTING berid.
                    ENDIF.
                  ENDIF.
          *****change by zhaohd20050411***************
                ELSE.
                  EXIT.
                ENDIF.
          *******end***************************
              ENDLOOP.
            ENDIF.
          ENDFORM.                    "mrp_area
          *&---------------------------------------------------------------------*
          *&      Form  OUPUT_TO_ALV
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *  -->  p1        text
          *  <--  p2        text
          *----------------------------------------------------------------------*
          FORM ouput_to_alv .
            IF sel02 = 'X'.
              IF sel00 = 'X'.
                IF itab[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output.
                ENDIF.
              ELSE.
                PERFORM itab_bzl.
                IF iout_01[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output_iout.
                ENDIF.
              ENDIF.
            ELSEIF sel01 = 'X'.
              IF sel00 = 'X'.
                IF itab[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output.
                ENDIF.
              ELSE.
                PERFORM itab_czl.
                IF it01_01[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output_it01.
                ENDIF.
              ENDIF.
            ELSEIF sel03 = 'X'.
              IF sel00 = 'X'.
                IF itab[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output.
                ENDIF.
              ELSE.
                PERFORM itab_ezl.
                IF it02[] IS INITIAL.
                  MESSAGE '沒(méi)有數(shù)據(jù)存在!' TYPE 'S'.
                ELSE.
                  PERFORM data_output_it02.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDFORM.                    " OUPUT_TO_ALV
          *&---------------------------------------------------------------------*
          *&      Form  get_speme_from_mard
          *&---------------------------------------------------------------------*
          *       text
          *----------------------------------------------------------------------*
          *      -->P_MATNR  text
          *      -->P_WERKS  text
          *      -->P_LGORT  text
          *      <--P_SPEME  text
          *----------------------------------------------------------------------*
          FORM get_speme_from_mard  USING    p_matnr
                                             p_werks
                                             p_berid
                                   CHANGING  p_speme.
          *找凍結(jié)庫(kù)存
          *如果MRParea 存在 則找此MRParea下所有庫(kù)存地的凍結(jié)庫(kù)存
            IF p_berid NE '1000'.
              SELECT lgort FROM mdlg INTO CORRESPONDING FIELDS OF TABLE ilgort1
                                               WHERE berid = p_berid
                                                 AND werks = p_werks.

              IF NOT ilgort1[] IS INITIAL.
                SELECT * FROM mard INTO CORRESPONDING FIELDS OF TABLE istock
                FOR ALL ENTRIES IN ilgort1 WHERE matnr = p_matnr
                                            AND werks = p_werks
                                            AND lgort = ilgort1-lgort
                                            and DISKZ = ''.
                LOOP AT istock.
                   p_speme = istock-speme + p_speme.
                   ENDLOOP.
              ENDIF.
          *否則找該物料工廠下的所有庫(kù)存并減掉該物料存在MRParea下庫(kù)存地的庫(kù)存
            ELSE.
              SELECT * FROM mard INTO CORRESPONDING FIELDS OF TABLE istock
                                    WHERE matnr = p_matnr
                                      AND werks = p_werks
                                      and DISKZ = ''.
          *                                AND lgort = ilgort-lgort.
              LOOP AT istock.
          *排除MRParea下的庫(kù)存地庫(kù)存
                SELECT SINGLE * FROM mdlg WHERE werks = s_werks
                                           AND lgort = istock-lgort.
                IF sy-subrc NE space.
                  p_speme = istock-speme + p_speme.
                ENDIF.
              ENDLOOP.
            ENDIF.


          *  SELECT SUM( speme ) INTO p_speme FROM mard WHERE matnr = p_matnr
          *                                                 AND werks = p_werks
          **                                                 AND lgort = p_lgort
          *                                                 AND lvorm = ''.
          ENDFORM.                    " get_speme_from_mard

          posted on 2007-05-09 21:41 恩達(dá) 閱讀(4110) 評(píng)論(4)  編輯  收藏 所屬分類: ERP

          評(píng)論

          # re: SAP 程序介紹-本人曾寫的一個(gè)報(bào)表程序(ABAP/4語(yǔ)言-R/3專用語(yǔ)言) 2008-08-15 14:05 yu
          怎么提示不能用,INCLUDE zmd04_XX_top.
          INCLUDE zmd04_XX_sel. 能不能提供一下  回復(fù)  更多評(píng)論
            

          # re: SAP 程序介紹-本人曾寫的一個(gè)報(bào)表程序(ABAP/4語(yǔ)言-R/3專用語(yǔ)言) 2008-08-15 14:28 wangs
          好幾年前寫的東西了,都快忘了,呵呵,實(shí)在不好意思,提供不了了,找不到原代碼了  回復(fù)  更多評(píng)論
            

          # re: SAP 程序介紹-本人曾寫的一個(gè)報(bào)表程序(ABAP/4語(yǔ)言-R/3專用語(yǔ)言)[未登錄](méi) 2010-05-27 18:01 edison
          @wangs
          班竹寫modify幾乎都會(huì)用tabix
          我則是很少用用tabix
          因?yàn)楫?dāng)你在loop中要modify該筆資料不用tabix也可以
          只要modify itab transoprting xxx即可

          不過(guò)也是因此讓我對(duì)mdpsx沒(méi)有流水號(hào)跟mdezx對(duì)應(yīng)很困擾
          但看了班竹tabix的寫法剛好可以解這個(gè)問(wèn)題
          非常感謝!  回復(fù)  更多評(píng)論
            

          # re: SAP 程序介紹-本人曾寫的一個(gè)報(bào)表程序(ABAP/4語(yǔ)言-R/3專用語(yǔ)言) 2013-06-07 22:45 SAP
          找找啊,很不錯(cuò)的啊  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 邹平县| 固阳县| 张家界市| 仪陇县| 浦县| 黎川县| 清徐县| 嘉荫县| 肇庆市| 贵定县| 阿勒泰市| 微博| 金湖县| 宜州市| 太康县| 周宁县| 常宁市| 东阳市| 新绛县| 龙陵县| 汶上县| 静海县| 叙永县| 磴口县| 石林| 晋江市| 依安县| 弥勒县| 邢台县| 万载县| 疏勒县| 渝中区| 石狮市| 阿克苏市| 桦川县| 东海县| 南陵县| 濉溪县| 汨罗市| 南城县| 太湖县|