ALV tree展BOM



*&---------------------------------------------------------------------*
*& Report  ZTEST_Y006
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZTEST_Y006  NO  STANDARD  PAGE HEADING .


TABLES STPOX ,MARA .
CLASS CL_GUI_COLUMN_TREE  DEFINITION  LOAD ,
CL_GUI_CFW  DEFINITION  LOAD  .
DATA TREE1   TYPE  REF  TO CL_HRPAYNA_GUI_ALV_TREE , " CL_GUI_ALV_TREE ,
      MR_TOOLBAR  TYPE  REF  TO CL_GUI_TOOLBAR  .
DATA GS_STPOX        TYPE STPOX ,
      GT_STPOX        TYPE STPOX  OCCURS  0 ,
      GT_FIELDCATALOG   TYPE LVC_T_FCAT ,
      GT_ITEM_LAYOUT    TYPE LVC_T_LACI ,
      GS_ITEM_LAYOUT    TYPE LVC_S_LACI ,
      OKCODE            LIKE SY -UCOMM  .
TYPES BEGIN  OF GS_F .
         INCLUDE  STRUCTURE STPOX .
TYPES NODE_KEY       TYPE LVC_NKEY ,
*         MENGE_EA TYPE stpo-menge,   "CHANGE BY XULE 20160308
        MENGE_EA  TYPE DECIMALS  0 , "ADD BY XULE 20160308
       MEINS_EA  TYPE STRING ,
*         MENGE_DEL TYPE stpo-menge,
       STATUS_STR ( 255 )    TYPE  C ,
END    OF GS_F .
DATA GS_XSTPOX        TYPE GS_F  ,
      WA_XSTPOX        TYPE GS_F ,
      GT_XSTPOX        TYPE GS_F  OCCURS  0 .
DATA GT_TREETAB  TYPE GS_F  OCCURS  0 .
DATA L_CUSTOM_CONTAINER  TYPE  REF  TO CL_GUI_CUSTOM_CONTAINER .

DATA :  WA_TOPMAT  TYPE CSTMAT ,
      WA_DSTST  TYPE CSDATA -XFELD .
DATA IT_MATCAT  TYPE  STANDARD  TABLE  OF CSCMAT .

DATA : BEGIN  OF GT_MSPR  OCCURS  0 ,
      MATNR  LIKE MSPR -MATNR , "物料
      WERKS  LIKE MSPR -WERKS , "工厂
      LGORT  LIKE MSPR -LGORT , "库存地点
      LGOBE  LIKE T001L -LGOBE , "库存地点描述
      SOBKZ  LIKE MSPR -SOBKZ , "特殊库存标识
      PSPNR  LIKE MSPR -PSPNR , "WBS
      PRLAB  LIKE MSPR -PRLAB , "项目库存数量
   END  OF GT_MSPR .

DATA : BEGIN  OF GT_MARM  OCCURS  0 ,
  MATNR  TYPE MARM -MATNR ,
  MEINH  TYPE MARM -MEINH ,
  BRGEW  TYPE MARM -BRGEW ,
  UMREN  TYPE MARM -UMREN ,
END  OF GT_MARM .

DATA : BEGIN  OF GT_AFKO  OCCURS  0 ,
      AUFNR  LIKE AFKO -AUFNR ,
      PLNBEZ  LIKE AFKO -PLNBEZ ,
      GAMNG  LIKE AFKO -GAMNG ,
   END  OF GT_AFKO .

DATA : BEGIN  OF GT_MSEG  OCCURS  0 ,
      MBLNR  LIKE MSEG -MBLNR ,
      MATNR  LIKE MSEG -MATNR ,
   END  OF GT_MSEG .




PARAMETERS :

*p_matnr LIKE mara-matnr ,
P_WERKS  LIKE EKPO -WERKS  DEFAULT  'HB01'  .
SELECT-OPTIONS S_MATNR  FOR MARA -MATNR .
*INCLUDE ZPPR016_LCL.

START-OF-SELECTION .

   PERFORM GETDATA  USING  'X' .

   PERFORM FRM_PROCESS_DATA .

START-OF-SELECTION .
   CALL  SCREEN  0100 .
*&---------------------------------------------------------------------*
*&      Form  getdata
*&---------------------------------------------------------------------*
FORM GETDATA  USING PV_MEHRS .
   REFRESH GT_MARM .
   DATA : BEGIN  OF LT_MATNR  OCCURS  0 ,
    MATNR  TYPE MATNR ,
    MAKTX  TYPE MAKT -MAKTX ,
    MEINS  TYPE MARA -MEINS ,
   END  OF LT_MATNR .

   SELECT A ~MATNR B ~MAKTX  C ~MEINS  INTO  TABLE LT_MATNR
     FROM MARC  AS JOIN MAKT  AS B
     ON A ~MATNR  B ~MATNR
     JOIN MARA  AS  C
     ON  C ~MATNR  A ~MATNR
     WHERE A ~MATNR  IN S_MATNR  AND A ~WERKS  P_WERKS
     AND B ~SPRAS  SY -LANGU .

   LOOP  AT LT_MATNR .
     REFRESH GT_STPOX .
     CALL  FUNCTION  'CS_BOM_EXPL_MAT_V2'
       EXPORTING
        CAPID                  'PP01'       " p_capid
        DATUV                  SY -DATUM
        MEHRS                  PV_MEHRS
*       stlal                 = '01' "可选BOM
*       stlan                 = '2' "BOM 用途
        MTNRV                  LT_MATNR -MATNR
        WERKS                  P_WERKS
*       emeng                 = 1
       IMPORTING
        TOPMAT                 WA_TOPMAT
        DSTST                  WA_DSTST
       TABLES
        STB                    GT_STPOX
        MATCAT                 IT_MATCAT
       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 .


     CLEAR GS_XSTPOX .
    GS_XSTPOX -STUFE  1 .
    GS_XSTPOX -OJTXB  LT_MATNR -MAKTX .
    GS_XSTPOX -IDNRK  LT_MATNR -MATNR .

     SELECT  SINGLE BMENG  INTO GS_XSTPOX -MENGE
     FROM STKO  AS A
       JOIN MAST  AS B
       ON A ~STLNR  B ~STLNR
       AND A ~STLAL  B ~STLAL
       WHERE A ~STLTY  'M'
         AND B ~STLAN  '1'
         AND B ~MATNR  LT_MATNR -MATNR
         AND B ~WERKS  P_WERKS .

    GS_XSTPOX -MEINS  LT_MATNR -MEINS .
    GS_XSTPOX -OJTXP  LT_MATNR -MAKTX .
    GS_XSTPOX -XTLTY  1 .
    GS_XSTPOX -XTLNR  1 .
    GS_XSTPOX -XTLAN  1 .
    GS_XSTPOX -XTLAL  1 .
     APPEND GS_XSTPOX  TO GT_TREETAB .
     APPEND GS_XSTPOX  TO GT_XSTPOX .

     LOOP  AT GT_STPOX  INTO GS_STPOX .
       MOVE-CORRESPONDING GS_STPOX  TO GS_XSTPOX  .
      GS_XSTPOX -STUFE  GS_XSTPOX -STUFE +  1 .
       APPEND GS_XSTPOX  TO GT_XSTPOX .
     ENDLOOP .
   ENDLOOP .

   IF GT_XSTPOX[]  IS  NOT  INITIAL  .
     SELECT MATNR
    MEINH
    BRGEW
    UMREN
     INTO  TABLE GT_MARM  FROM MARM
     FOR  ALL ENTRIES  IN GT_XSTPOX
     WHERE MATNR  GT_XSTPOX -IDNRK
     AND MEINH <> GT_XSTPOX -MEINS .

     LOOP  AT GT_XSTPOX  INTO GS_XSTPOX .
       CLEAR GT_MARM .
       READ  TABLE GT_MARM  WITH  KEY MATNR  GS_XSTPOX -IDNRK .
       IF SY -SUBRC  EQ 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值