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

📄 sabaper_zzzr0011.txt

📁 sabpyuanma 资料 资料 资料
💻 TXT
📖 第 1 页 / 共 2 页
字号:
REPORT  yppr0011   NO STANDARD PAGE HEADING
        LINE-SIZE 1023
*       LINE-COUNT 30(4)
        MESSAGE-ID pp.
*&---------------------------------------------------*
*& TABLES                                            *
*&---------------------------------------------------*
TABLES:makt,
       caufv,
       afko,
       mard,
       mast,
       plpo,
       rkpf,
       rc29l,
       stpox,
       cscmat,
       stpo.

INCLUDE yalvclude1.
DATA progname LIKE sy-repid.
TYPE-POOLS slis.
DATA: BEGIN OF choose_data_get1,
aufnr LIKE afko-aufnr,
plnbez LIKE afko-plnbez,
werks LIKE mast-werks,
ernam LIKE caufv-ernam,
auart LIKE caufv-auart,
END OF choose_data_get1.

DATA: BEGIN OF choose_data_get21 OCCURS 0,
matnr LIKE mast-matnr,
werks LIKE mast-werks,
idnrk LIKE stpo-idnrk,"BOM 组件
*STLNR LIKE STPO-STLNR,"物料单
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
bmeng LIKE stpox-mnglg,
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF choose_data_get21.

DATA bom_itab LIKE stpox OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF bom_itab_get OCCURS 0,
idnrk LIKE stpox-idnrk,
mtart LIKE  stpox-mtart,
ojtxp LIKE  stpox-ojtxp,
werks LIKE  stpox-werks,
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF bom_itab_get.

DATA: BEGIN OF bom_itab_gett OCCURS 0,
idnrk LIKE stpox-idnrk,
mtart LIKE  stpox-mtart,
ojtxp LIKE  stpox-ojtxp,
werks LIKE  stpox-werks,
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF bom_itab_gett.

DATA: BEGIN OF choose_data_get2 OCCURS 0,
matnr LIKE mast-matnr,
werks LIKE mast-werks,
idnrk LIKE stpo-idnrk,"BOM 组件
stlnr LIKE stpo-stlnr,"物料单
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF choose_data_get2.


DATA: BEGIN OF get_data_get3 OCCURS 0,
matnr LIKE mard-matnr,
maktx LIKE makt-maktx, "组建描述
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
mtart LIKE stpox-mtart,
ktext LIKE m_crama-ktext,"工作中心
lgort LIKE mard-lgort,"库存地点
lgobe LIKE t001l-lgobe,"库存地点描述
labst LIKE mard-labst,"非限制
llabst LIKE mard-labst,"短缺数量
insme LIKE mard-insme,"质量检查中
einme LIKE mard-einme,"限制使用的
speme LIKE mard-speme,"冻结的
txt   LIKE v_auart-txt,"车间
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
werks LIKE mast-werks, "工厂
END OF get_data_get3.

DATA: BEGIN OF get_data_get6 OCCURS 0,
matnr LIKE mard-matnr,
maktx LIKE makt-maktx, "组建描述
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
mtart LIKE stpox-mtart,
ktext LIKE m_crama-ktext,"工作中心
lgort LIKE mard-lgort,"库存地点
lgobe LIKE t001l-lgobe,"库存地点描述
labst LIKE mard-labst,"非限制
llabst LIKE mard-labst,"短缺数量
insme LIKE mard-insme,"质量检查中
einme LIKE mard-einme,"限制使用的
speme LIKE mard-speme,"冻结的
txt   LIKE v_auart-txt,"车间
werks LIKE mast-werks, "工厂
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF get_data_get6.

DATA: BEGIN OF get_data_get7 OCCURS 0,
matnr LIKE mard-matnr,
maktx LIKE makt-maktx, "组建描述
mmein LIKE stpox-mmein, "库存单位
mtart LIKE stpox-mtart,
ktext LIKE m_crama-ktext,"工作中心
lgort LIKE mard-lgort,"库存地点
lgobe LIKE t001l-lgobe,"库存地点描述
labst LIKE mard-labst,"非限制
llabst LIKE mard-labst,"短缺数量
insme LIKE mard-insme,"质量检查中
einme LIKE mard-einme,"限制使用的
speme LIKE mard-speme,"冻结的
txt   LIKE v_auart-txt,"车间
werks LIKE mast-werks, "工厂
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF get_data_get7.
DATA: BEGIN OF get_data_get8 OCCURS 0,
matnr LIKE mard-matnr,
maktx LIKE makt-maktx, "组建描述
mtart LIKE stpox-mtart,
mmein LIKE stpox-mmein, "库存单位
meins LIKE stpox-meins, "BOM单位
mnglg LIKE stpox-mnglg, "库存单位用量
menge LIKE stpox-menge, "BOM单位用量
ktext LIKE m_crama-ktext,"工作中心
lgort LIKE mard-lgort,"库存地点
lgobe LIKE t001l-lgobe,"库存地点描述
labst LIKE mard-labst,"非限制
*LLABST(15) TYPE C,"短缺数量
llabst LIKE mard-labst,"短缺数量
insme LIKE mard-insme,"质量检查中
einme LIKE mard-einme,"限制使用的
speme LIKE mard-speme,"冻结的
txt   LIKE v_auart-txt,"车间
werks LIKE mast-werks, "工厂
DUMPS(2) TYPE C,
ALPOS(2) TYPE C,
RGEKZ(2) TYPE C,
ALPRF(2) TYPE C,
END OF get_data_get8.
DATA: choose_data_get LIKE choose_data_get1 OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_werks LIKE bseg-werks OBLIGATORY. "发货工厂
SELECTION-SCREEN BEGIN OF BLOCK scr WITH FRAME TITLE text-010.
SELECT-OPTIONS: s_lgort FOR mard-lgort NO INTERVALS.
SELECT-OPTIONS:  p_fname FOR rc29l-emeng NO INTERVALS.
SELECT-OPTIONS: s_matnr FOR makt-matnr.  "需要查找的物料范围
SELECTION-SCREEN END OF BLOCK scr.


SELECTION-SCREEN BEGIN OF BLOCK scrr WITH FRAME TITLE text-010.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: llabst RADIOBUTTON GROUP grp1.
SELECTION-SCREEN POSITION 20.
PARAMETERS: lllabstt RADIOBUTTON GROUP grp1.
SELECTION-SCREEN COMMENT 3(15) text-b10 FOR FIELD llabst.
SELECTION-SCREEN COMMENT 30(15) text-b13 FOR FIELD lllabstt.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: llabston  LIKE am07m-xlabst.
SELECTION-SCREEN POSITION 20.
PARAMETERS: lllabst   LIKE am07m-xlabst.
SELECTION-SCREEN COMMENT 3(15) text-b12 FOR FIELD llabston.
SELECTION-SCREEN COMMENT 30(15) text-b11 FOR FIELD lllabst.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK scrr.



AT SELECTION-SCREEN.

START-OF-SELECTION.
  PERFORM bom_get_check.
  PERFORM bom_get_data1 TABLES choose_data_get21.
  PERFORM bom_get_data  TABLES choose_data_get21.
  PERFORM bom_get_data_count TABLES bom_itab_get.
  PERFORM bom_get_data2 TABLES get_data_get6.
  PERFORM bom_get_data6 TABLES get_data_get6.
  PERFORM bom_get_data8 TABLES get_data_get8.
* PERFORM GET_DATA_GET8.
  PERFORM sub_list_data TABLES get_data_get8.
*&---------------------------------------------------------------------*
*&      Form  BOM_GET_CHECK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM bom_get_check.
  DATA: x TYPE i.
  DATA: z TYPE i.

  LOOP AT s_matnr.
    x = x + 1.
  ENDLOOP.

  LOOP AT p_fname.
    z = z + 1.
  ENDLOOP.
  IF x NE z.
    MESSAGE i899 WITH '数量的条目与物料条目不同,请检查!'.
    LEAVE TO TRANSACTION 'YPP0011'.
  ENDIF.
ENDFORM.                    "BOM_GET_CHECK

*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data1 TABLES l_bom_get STRUCTURE choose_data_get21.
  DATA: i TYPE i.
  LOOP AT s_matnr.
    l_bom_get-matnr = s_matnr-low.
    APPEND l_bom_get.
    CLEAR  l_bom_get.
  ENDLOOP.

  LOOP AT l_bom_get.
    i = i + 1.
    LOOP AT p_fname.
      READ TABLE p_fname INDEX i.
      l_bom_get-bmeng = p_fname-low.
    ENDLOOP.
    MODIFY l_bom_get.
    CLEAR  l_bom_get.
  ENDLOOP.
ENDFORM.                    "BOM_GET_DATA1
*&---------------------------------------------------------------------*
*&      Form  BOM_GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->L_BOM_GET  text
*----------------------------------------------------------------------*
FORM bom_get_data TABLES l_bom_get STRUCTURE choose_data_get21.
  DATA: x(1) TYPE c,
        sobsl LIKE marc-sobsl,
        Y(1) TYPE c.
  IF lllabst = 'X'.
    x = 'X'.
  ELSE.
    x = ''.
  ENDIF.


  LOOP AT choose_data_get21.
    CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
      EXPORTING
        aumng                 = 0
        capid                 = 'PP01'
        datuv                 = sy-datum
        mehrs                 = X
        mtnrv                 = choose_data_get21-matnr
        stlan                 = '1'
        werks                 = p_werks
        auskz                 = 'X'
        emeng                 = choose_data_get21-bmeng
      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.
  IF llabst = 'X'.
      Y = 'X'.
  ENDIF.
  IF lllabstt = 'X'.
      Y = ' '.
  ENDIF.
    LOOP AT bom_itab_get.
      CLEAR sobsl.
      SELECT SINGLE sobsl
      INTO sobsl
      FROM marc
      WHERE matnr = bom_itab_get-idnrk.
      IF sobsl = '50'.
        bom_itab_gett-idnrk = bom_itab_get-idnrk.
        bom_itab_gett-mtart = bom_itab_get-mtart.
        bom_itab_gett-ojtxp = bom_itab_get-ojtxp.
        bom_itab_gett-werks = bom_itab_get-werks.
        bom_itab_gett-mmein = bom_itab_get-mmein. "库存单位
        bom_itab_gett-meins = bom_itab_get-meins. "BOM单位
        bom_itab_gett-mnglg = bom_itab_get-mnglg. "库存单位用量
        bom_itab_gett-menge = bom_itab_get-menge. "BOM单位用量
        bom_itab_gett-DUMPS = bom_itab_get-DUMPS. "库存单位用量
        bom_itab_gett-ALPOS = bom_itab_get-ALPOS. "BOM单位用量
        bom_itab_gett-RGEKZ = bom_itab_get-RGEKZ. "BOM单位用量
        bom_itab_gett-ALPRF = bom_itab_get-ALPRF. "优先级
        APPEND bom_itab_gett.
        CLEAR  bom_itab_gett.
      ENDIF.
    ENDLOOP.

    LOOP AT bom_itab_gett.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
        EXPORTING
          aumng                 = 0
          capid                 = 'PP01'

⌨️ 快捷键说明

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