⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sabaper_zzzr0011.txt

📁 sabpyuanma 资料 资料 资料
💻 TXT
📖 第 1 页 / 共 2 页
字号:
          datuv                 = sy-datum
          mehrs                 = Y
          mtnrv                 = bom_itab_gett-idnrk
          stlan                 = '1'
          werks                 = p_werks
          auskz                 = 'X'
          emeng                 = bom_itab_gett-mnglg
        TABLES
          stb                   = bom_itab
        EXCEPTIONS
          alt_not_found         = 1
          call_invalid          = 2
          material_not_found    = 3
          missing_authorization = 4
          no_bom_found          = 5
          no_plant_data         = 6
          no_suitable_bom_found = 7
          conversion_error      = 8
          OTHERS                = 9.
      LOOP AT bom_itab.
        bom_itab_get-idnrk          = bom_itab-idnrk.
        bom_itab_get-mtart          = bom_itab-mtart.
        bom_itab_get-ojtxp          = bom_itab-ojtxp.
        bom_itab_get-werks          = bom_itab-werks.
        bom_itab_get-mmein          = bom_itab-mmein. "库存单位
        bom_itab_get-meins          = bom_itab-meins. "BOM单位
        bom_itab_get-mnglg          = bom_itab-mnglg. "库存单位用量
        bom_itab_get-menge          = bom_itab-menge. "BOM单位用量
        bom_itab_get-DUMPS          = bom_itab-DUMPS. "虚拟键
        bom_itab_get-ALPOS          = bom_itab-ALPOS. "优先级别
        bom_itab_get-RGEKZ          = bom_itab-RGEKZ. "优先级别
        bom_itab_get-ALPRF          = bom_itab-ALPRF. "优先级别
        APPEND bom_itab_get.
        CLEAR  bom_itab_get.
      ENDLOOP.
      ENDLOOP.
  ENDFORM.                    "BOM_GET_DATA
*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA_COUNT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data_count TABLES l_bom_get STRUCTURE bom_itab_get.
  DATA: mnglg TYPE p DECIMALS 5,
        menge TYPE p DECIMALS 5.

*            BOM_ITAB_GET-MMEIN          = BOM_ITAB-MMEIN. "库存单位
*            BOM_ITAB_GET-MEINS          = BOM_ITAB-MEINS. "BOM单位
*            BOM_ITAB_GET-MNGLG          = BOM_ITAB-MNGLG. "库存单位用量
*            BOM_ITAB_GET-MNGKO          = BOM_ITAB-MNGKO. "BOM单位用量
  DATA: idnrk(20) TYPE c,
        mtart(6) TYPE c,
        ojtxp(40) TYPE c,
        werks(10) TYPE c,
        mmein(6) TYPE c,
        meins(6) TYPE c,
        DUMPS(2) TYPE C,
        ALPOS(2) TYPE C,
        RGEKZ(2) TYPE C,
        ALPRF(2) TYPE C.
  SORT bom_itab_get DESCENDING BY idnrk ASCENDING.
  LOOP AT bom_itab_get.
    idnrk = l_bom_get-idnrk.
    mtart = l_bom_get-mtart.
    ojtxp = l_bom_get-ojtxp.
    werks = l_bom_get-werks.
    mmein = l_bom_get-mmein.
    meins = l_bom_get-meins.
    DUMPS = l_bom_get-DUMPS.
    ALPOS = l_bom_get-ALPOS.
    RGEKZ = l_bom_get-RGEKZ.
    ALPRF = l_bom_get-ALPRF.
    AT NEW idnrk.
      CLEAR mnglg.
      CLEAR menge.
    ENDAT.
    mnglg = mnglg + l_bom_get-mnglg.
    menge = menge + l_bom_get-menge.
    AT END OF idnrk.
      get_data_get3-matnr = idnrk.
      get_data_get3-mtart = mtart.
      get_data_get3-maktx = ojtxp.
      get_data_get3-werks = werks.
      get_data_get3-mmein = mmein.
      get_data_get3-meins = meins.
      get_data_get3-mnglg = mnglg.
      get_data_get3-menge = menge.
      get_data_get3-DUMPS = DUMPS.
      get_data_get3-ALPOS = ALPOS.
      get_data_get3-RGEKZ = RGEKZ.
      get_data_get3-ALPRF = ALPRF.
      APPEND get_data_get3.
      CLEAR  get_data_get3.
    ENDAT.
  ENDLOOP.
ENDFORM.                    "BOM_GET_DATA_COUNT

*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data2 TABLES l_bom_get STRUCTURE get_data_get6.
  DATA y TYPE i.
  LOOP AT get_data_get3.
    SELECT lgort labst insme einme speme
       FROM mard
       INTO (l_bom_get-lgort,l_bom_get-labst,l_bom_get-insme,
       l_bom_get-einme,l_bom_get-speme)
       WHERE matnr = get_data_get3-matnr
         AND lgort IN s_lgort
         AND lvorm NE 'X'.
      get_data_get6-matnr = get_data_get3-matnr.
      get_data_get6-mtart = get_data_get3-mtart.
      get_data_get6-maktx = get_data_get3-maktx.
      get_data_get6-werks = get_data_get3-werks.
      get_data_get6-mmein = get_data_get3-mmein.
      get_data_get6-meins = get_data_get3-meins.
      get_data_get6-mnglg = get_data_get3-mnglg.
      get_data_get6-menge = get_data_get3-menge.
      get_data_get6-DUMPS = get_data_get3-DUMPS.
      get_data_get6-ALPOS = get_data_get3-ALPOS.
      get_data_get6-RGEKZ = get_data_get3-RGEKZ.
      get_data_get6-ALPRF = get_data_get3-ALPRF.
      APPEND get_data_get6.
      CLEAR  get_data_get6.
    ENDSELECT.
  ENDLOOP.
  SORT get_data_get6 ASCENDING BY matnr mtart werks DESCENDING.
  SORT get_data_get3 ASCENDING BY matnr mtart werks DESCENDING.
  LOOP AT get_data_get6.
    LOOP AT get_data_get3.
      DELETE get_data_get3 WHERE
      matnr = get_data_get6-matnr
      AND mtart = get_data_get6-mtart
      AND maktx = get_data_get6-maktx
      AND werks = get_data_get6-werks
      AND meins = get_data_get6-meins
      AND mmein = get_data_get6-mmein.
    ENDLOOP.
  ENDLOOP.
  LOOP AT get_data_get3.
    get_data_get6-matnr = get_data_get3-matnr.
    get_data_get6-mtart = get_data_get3-mtart.
    get_data_get6-maktx = get_data_get3-maktx.
    get_data_get6-werks = get_data_get3-werks.
    get_data_get6-mmein = get_data_get3-mmein.
    get_data_get6-meins = get_data_get3-meins.
    get_data_get6-mnglg = get_data_get3-mnglg.
    get_data_get6-menge = get_data_get3-menge.
    get_data_get6-DUMPS = get_data_get3-DUMPS.
    get_data_get6-ALPOS = get_data_get3-ALPOS.
    get_data_get6-RGEKZ = get_data_get3-RGEKZ.
    get_data_get6-ALPRF = get_data_get3-ALPRF.
    APPEND  get_data_get6.
    CLEAR   get_data_get6.
  ENDLOOP.

*    SORT L_BOM_GET ASCENDING BY MATNR  MNGKO DESCENDING.
ENDFORM.                    "BOM_GET_DATA2

*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA6
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data6 TABLES l_bom_get STRUCTURE get_data_get6.
  LOOP AT l_bom_get.
    SELECT SINGLE ktext
       INTO l_bom_get-ktext
       FROM m_crama
       INNER JOIN crhd ON crhd~arbpl = m_crama~arbpl
                      AND m_crama~werks = crhd~werks
                      AND m_crama~verwe = crhd~verwe
       INNER JOIN plpo ON plpo~arbid = crhd~objid
       INNER JOIN mapl ON mapl~werks = plpo~werks
                      AND mapl~plnty = plpo~plnty
                      AND mapl~plnnr = plpo~plnnr
                      AND mapl~zaehl = plpo~zaehl
       WHERE mapl~matnr = l_bom_get-matnr.

    SELECT SINGLE lgobe
       INTO l_bom_get-lgobe
       FROM t001l
       WHERE lgort = l_bom_get-lgort.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        input  = l_bom_get-matnr
      IMPORTING
        output = l_bom_get-matnr.
    MODIFY l_bom_get.
    CLEAR  l_bom_get.
  ENDLOOP.
ENDFORM.                    "BOM_GET_DATA6
*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA8
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data8 TABLES l_bom_get STRUCTURE get_data_get8.
  DATA: mmngko TYPE p.
  DATA: matnr(20) TYPE c,
        maktx(40) TYPE c,
        werks(10) TYPE c,
        meins(6) TYPE c,
        mtart(6) TYPE c,
        llabst TYPE p DECIMALS 5,
        labst TYPE p DECIMALS 5,
        insme TYPE p DECIMALS 5,
        speme TYPE p DECIMALS 5,
        einme TYPE p DECIMALS 5,
        mngko TYPE p DECIMALS 5,
        mmein(6) TYPE c,
        mnglg TYPE p DECIMALS 5,
        menge TYPE p DECIMALS 5,
        DUMPS(2) TYPE C,
        ALPOS(2) TYPE C,
        RGEKZ(2) TYPE C,
        ALPRF(2) TYPE C,
        t_tab_a(15) TYPE c,
        t_tab_b(15) TYPE c,
        t_tab_c(15) TYPE c,
        t_tab_d(15) TYPE c.
     IF llabston = 'X'.
DELETE get_data_get6 WHERE ALPRF = '02'.
     ENDIF.
  LOOP AT get_data_get6.
    matnr = get_data_get6-matnr.
    maktx = get_data_get6-maktx.
    werks = get_data_get6-werks.
    meins = get_data_get6-meins.
    mmein = get_data_get6-mmein.
    mtart = get_data_get6-mtart.
    mnglg = get_data_get6-mnglg.
    menge = get_data_get6-menge.
    DUMPS = get_data_get6-DUMPS.
    ALPOS = get_data_get6-ALPOS.
    RGEKZ = get_data_get6-RGEKZ.
    ALPRF = get_data_get6-ALPRF.
    AT NEW matnr.
      CLEAR labst.
      CLEAR insme.
      CLEAR speme.
      CLEAR einme.
      CLEAR llabst.
      CLEAR t_tab_a.
    ENDAT.
    labst = labst + get_data_get6-labst.
    insme = insme + get_data_get6-insme.
    speme = speme + get_data_get6-speme.
    einme = einme + get_data_get6-einme.
    AT END OF matnr.
*      t_tab_B = INSME
*      t_tab_C = SPEME
*      t_tab_D = EINME
      llabst = mnglg - labst.
      t_tab_a = llabst.
      PERFORM frm_change_sign CHANGING t_tab_a.
      l_bom_get-matnr = matnr.
      l_bom_get-maktx = maktx.
      l_bom_get-werks = werks.
      l_bom_get-mtart = mtart.
      l_bom_get-meins = meins.
      l_bom_get-mmein = mmein.
      l_bom_get-llabst = t_tab_a.
      l_bom_get-labst = labst.
      l_bom_get-insme = insme.
      l_bom_get-einme = einme.
      l_bom_get-speme = speme.
      l_bom_get-mnglg = mnglg.
      l_bom_get-menge = menge.
      l_bom_get-DUMPS = DUMPS.
      l_bom_get-ALPOS = ALPOS.
      l_bom_get-RGEKZ = RGEKZ.
      l_bom_get-ALPRF = ALPRF.
      APPEND l_bom_get.
      CLEAR  l_bom_get.
    ENDAT.
  ENDLOOP.
  DELETE ADJACENT DUPLICATES FROM l_bom_get.
ENDFORM.                    "BOM_GET_DATA8
*FORM GET_DATA_GET8.
*     DATA: XXX(10) TYPE C.
*     LOOP AT GET_DATA_GET8.
*     SELECT SINGLE MEINS
*       INTO GET_DATA_GET8-MEINS
*       FROM MARA
*       INNER JOIN MARC ON MARC~MATNR = MARA~MATNR
*       WHERE MARA~MATNR = GET_DATA_GET8-MATNR
*         AND MARC~WERKS = p_werks.
**     MODIFY GET_DATA_GET8.
**     CLEAR  GET_DATA_GET8.
*     ENDLOOP.
*ENDFORM.
FORM sub_list_data TABLES l_bom_get STRUCTURE get_data_get8.
  REFRESH  i_fieldcat.
  add_filed 'GET_DATA_GET8' 'MATNR' '物料编码' 'L ' '2' '' ''.
  add_filed 'GET_DATA_GET8' 'MAKTX' '物料描述' 'L ' '3' '' ''.
  add_filed 'GET_DATA_GET8' 'WERKS'  '工厂' 'L' '5' '' ''.
  add_filed 'GET_DATA_GET8' 'MTART'  '物料类型' 'L' '5' '' ''.
  add_filed 'GET_DATA_GET8' 'MEINS'  'BOM基本单位' 'L' '9' '' ''.
  add_filed 'GET_DATA_GET8' 'MMEIN'  '库存基本单位' 'L'  '11' '' ''.
  add_filed 'GET_DATA_GET8' 'MENGE'  '组件需求量(BOM单位)' 'L' '10' ''
  ''.
  add_filed 'GET_DATA_GET8' 'MNGLG'  '组件需求量(库存单位)' 'L' '10' ''
  ''.
*  add_filed 'GET_DATA_GET8' 'LGOBE'  '库存地点描述' 'L'  '12' '' ''.
  add_filed 'GET_DATA_GET8' 'LLABST'  '短缺数量' 'L' '13' '' ''.
  add_filed 'GET_DATA_GET8' 'LABST'  '非限制' 'L' '13' '' ''.
  add_filed 'GET_DATA_GET8' 'INSME'  '质量检查(IQC)'  'L' '14' '' ''.
  add_filed 'GET_DATA_GET8' 'EINME'  '限制使用的' 'L' '15' '' ''.
  add_filed 'GET_DATA_GET8' 'SPEME'  '已冻结' 'L' '15' '' ''.
  add_filed 'GET_DATA_GET8' 'DUMPS'  '虚拟键' 'L' '15' '' ''.
  add_filed 'GET_DATA_GET8' 'RGEKZ'  '反冲料' 'L' '15' '' ''.
  add_filed 'GET_DATA_GET8' 'ALPOS'  '替代料' 'L' '15' '' ''.
  add_filed 'GET_DATA_GET8' 'ALPRF'  '替代关系' 'L' '15' '' ''.
  display_data get_data_get8 ''.
ENDFORM.                    "SUB_LIST_DATA

*&---------------------------------------------------------------------*
*&      Form  frm_change_sign
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->VALUE(P_CHANGE)  text
*----------------------------------------------------------------------*
FORM frm_change_sign CHANGING value(p_change).
  IF p_change CA '-'.
    CONCATENATE '-' p_change INTO p_change.
    CONDENSE p_change NO-GAPS.
    SHIFT p_change RIGHT DELETING TRAILING ' -'.
*     SHIFT p_change by 1 places left.
  ELSEIF p_change NA '123456789'.
    p_change = ''.
  ENDIF.
ENDFORM.                    "frm_change_sign
*&---------------------------------------------------------------------*
*&      Form  USERCOMMAND
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->R_UCOMM      text
*      -->RS_SELFIELD  text
*----------------------------------------------------------------------*
FORM usercommand  USING r_ucomm LIKE sy-ucomm
                           rs_selfield TYPE slis_selfield.
  CASE r_ucomm.
    WHEN '&IC1'.
      CASE rs_selfield-sel_tab_field.
        WHEN  'GET_DATA_GET8-MATNR'.
          SET PARAMETER ID 'MAT' FIELD rs_selfield-value.
          CALL TRANSACTION 'MMBE' AND SKIP FIRST SCREEN.
      ENDCASE.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.                    "USERCOMMAND

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -