SKU上全国SABC和销售SABC

56 篇文章 0 订阅
BREAK-POINT .
  TYPES BEGIN  OF ty_STORE ,
        /BIC/ZLLSTORE            TYPE /BIC/OIZLLSTORE ,
         END  OF ty_store .

TYPES BEGIN  OF ty_balance , "002内表
         /BIC/ZPRPTDTID         TYPE /BIC/OIZPRPTDTID ,
         /BIC/ZBUSDE            TYPE /BIC/OIZBUSDE ,
         /BIC/ZSTORE            TYPE /BIC/OIZSTORE ,
         /BIC/ZMATERIAL         TYPE /BIC/OIZMATERIAL ,
         /BIC/ZGRID             TYPE /BIC/OIZGRID ,
         /BIC/ZDTLQTY           TYPE /BIC/OIZDTLQTY ,    "数量
         /BIC/ZPOSRPTID         TYPE /BIC/OIZPOSRPTID ,
         /BIC/ZDTLFTAMT         TYPE /BIC/OIZDTLFTAMT ,   "金额
         /BIC/ZHYXSZB           TYPE /BIC/OIZHYXSZB , "销售占比
         /BIC/ZXSSABC           TYPE /BIC/OIZXSSABC , "销售金额SABC
         /BIC/ZSKUCODE          TYPE /BIC/OIZSKUCODE ,
           END  OF TY_BALANCE .

TYPES BEGIN  OF ty_PU , "订货内表
          /BIC/ZCITY_NAM                TYPE  /BIC/OIZCITY_NAM ,
         /BIC/ZMATERIAL         TYPE /BIC/OIZMATERIAL ,
         /BIC/ZGRID             TYPE /BIC/OIZGRID ,
         /BIC/ZORQTY            TYPE /BIC/OIZORQTY ,    "订货数量
         /BIC/ZORAMT            TYPE /BIC/OIZORAMT ,   "订货金额
         /BIC/ZDHZB             TYPE /BIC/OIZHYXSZB ,      "订货占比
         /BIC/ZDHSABC           TYPE /BIC/OIZDHSABC ,    "订货金额SABC
         /BIC/ZSKUCODE          TYPE /BIC/OIZSKUCODE ,
           END  OF TY_PU .


TYPES BEGIN  OF TY_K3 ,
       /BIC/ZPRTK3  TYPE /BIC/OIZPRTK3 ,
       /BIC/ZMATERIAL           TYPE /BIC/OIZMATERIAL ,
       /BIC/ZGRID               TYPE /BIC/OIZGRID ,
      /BIC/ZSKUCODE          TYPE /BIC/OIZSKUCODE ,
        END  OF TY_K3 .


     DATA l_t_store  TYPE  STANDARD  TABLE  OF ty_store ,
          l_S_store  LIKE  LINE  OF l_t_store ,
          L_T_BALANCE  TYPE  STANDARD  TABLE  OF TY_BALANCE ,
          L_T_BALANCE2  TYPE  STANDARD  TABLE  OF TY_BALANCE ,
          l_S_BALANCE  LIKE  LINE  OF L_T_BALANCE ,

          L_T_PU  TYPE  STANDARD  TABLE  OF TY_PU ,
          L_T_PU2  TYPE  STANDARD  TABLE  OF TY_PU ,
          L_S_PU  LIKE  LINE  OF L_T_PU ,
          L_T_K3  TYPE  STANDARD  TABLE  OF TY_K3 ,
          L_S_K3  LIKE  LINE  OF L_T_K3 ,
          l_wa_result  TYPE _ty_s_TG_1 ,
          l_t_result  TYPE _ty_t_TG_1 ,
          ZDATE_MAX  TYPE SY -DATUM ,
          ZDATE_MIN  TYPE SY -DATUM ,
          L_ZZJXJ_AMT  TYPE /BIC/OIZORAMT , "订货经销额
          L_DTLFTAMT  TYPE /BIC/OIZDTLFTAMT ,
          L_ZHYXSZB  TYPE /BIC/OIZHYXSZB ,
          L_ZDHZB  TYPE /BIC/OIZDHZB .

         SELECT
          /BIC/ZPRTK3
         /BIC/ZMATERIAL
         /BIC/ZGRID
           INTO  TABLE L_T_K3
           FROM /BIC/AZIMD01100
           WHERE   /BIC/ZPRTK3 <>  ''
           AND /BIC/ZMATGRID <>  '' .

DATA ZMATERIAL   TYPE /BIC/OIZMATERIAL .
LOOP  AT L_T_K3  INTO L_S_K3 .
CLEAR ZMATERIAL .
CALL  FUNCTION  'CONVERSION_EXIT_ALPHA_OUTPUT'
   EXPORTING
     input   L_S_K3 -/BIC/ZMATERIAL
   IMPORTING
     output  ZMATERIAL .

  CONCATENATE ZMATERIAL L_S_K3 -/BIC/ZGRID  INTO
 L_S_K3 -/BIC/ZSKUCODE .

  MODIFY L_T_K3  FROM L_S_K3 .

ENDLOOP .

SORT L_T_K3  BY /BIC/ZSKUCODE .
DELETE  ADJACENT  DUPLICATES  FROM L_T_K3  COMPARING /BIC/ZSKUCODE .

BREAK-POINT .
ZDATE_MAX  SY -DATUM  .
ZDATE_MIN  SY -DATUM  31 .

* 取罗莱店铺
   SELECT  /BIC/ZLLSTORE
     INTO  TABLE L_T_STORE
     FROM /BIC/AZISDDD0100 .
SORT L_T_STORE  BY /BIC/ZLLSTORE .
  DELETE  ADJACENT  DUPLICATES  FROM L_t_STORE  COMPARING /BIC/ZLLSTORE .


CLEAR L_S_STORE ,L_T_BALANCE .
*
L_DTLFTAMT  0 .
L_ZZJXJ_AMT  .

  SELECT
         /BIC/ZPRPTDTID
         /BIC/ZBUSDE
         /BIC/ZSTORE
         /BIC/ZMATERIAL
         /BIC/ZGRID
         /BIC/ZDTLQTY
         /BIC/ZPOSRPTID
         /BIC/ZDTLFTAMT
     INTO  TABLE L_T_BALANCE
       FROM /BIC/AZCELT00200
    FOR  ALL ENTRIES  IN L_T_STORE
       WHERE  /BIC/ZSTORE  L_T_STORE -/BIC/ZLLSTORE
       AND /BIC/ZBUSDE >= ZDATE_MIN  AND /BIC/ZBUSDE <= ZDATE_MAX .
SORT L_T_BALANCE  BY /BIC/ZSTORE /BIC/ZBUSDE .

SELECT
         /BIC/ZCITY_NAM
         /BIC/ZMATERIAL
         /BIC/ZGRID
         /BIC/ZORQTY    "订货数量
         /BIC/ZORAMT    "订货金额

   INTO  TABLE L_T_PU
   FROM  /BIC/AZILPU00200 .


*  LOOP AT L_T_STORE INTO L_S_STORE.
**将002中30天内罗莱店铺的数据取到内表。
*  SELECT
*         /BIC/ZPRPTDTID
*         /BIC/ZBUSDE
*         /BIC/ZSTORE
*         /BIC/ZMATERIAL
*         /BIC/ZGRID
*         /BIC/ZDTLQTY
*         /BIC/ZPOSRPTID
*         /BIC/ZDTLFTAMT
*    INTO TABLE L_T_BALANCE
*      FROM /BIC/AZCELT00200
*      WHERE  /BIC/ZSTORE = L_S_STORE-/BIC/ZLLSTORE
*      AND /BIC/ZBUSDE >= ZDATE_MIN AND /BIC/ZBUSDE <= ZDATE_MAX.
*SORT L_T_BALANCE BY /BIC/ZSTORE /BIC/ZBUSDE.
***
***取采购数据
*SELECT
*  /BIC/ZLLSTORE
*  /BIC/ZSKUCODE
*  /BIC/ZZJXJ_AMT
*  INTO TABLE L_T_PU
*  FROM  /BIC/AZILPU00100
*  WHERE /BIC/ZLLSTORE = L_S_STORE-/BIC/ZLLSTORE.
*ENDLOOP.
**
**
** 取 三十天销售总值,并以物料和网格值合并将实收和数量合并。排序。
*
LOOP  AT L_T_BALANCE  INTO L_S_BALANCE .
  L_DTLFTAMT  L_DTLFTAMT + L_S_BALANCE -/BIC/ZDTLFTAMT .
   CLEAR :L_S_BALANCE -/BIC/ZPRPTDTID ,
         L_S_BALANCE -/BIC/ZBUSDE ,
         L_S_BALANCE -/BIC/ZSTORE ,
         L_S_BALANCE -/BIC/ZPOSRPTID .
COLLECT L_S_BALANCE  INTO L_T_BALANCE2 .
ENDLOOP .
SORT L_T_BALANCE2  BY /BIC/ZDTLFTAMT  DESCENDING .
*
*
*
****** 销售SABC
CLEAR L_S_BALANCE .
LOOP  AT L_T_BALANCE2  INTO L_S_BALANCE .
L_S_BALANCE -/BIC/ZHYXSZB  L_S_BALANCE -/BIC/ZDTLFTAMT / L_DTLFTAMT *
100
"销售比例乘以100.
L_ZHYXSZB  L_ZHYXSZB + L_S_BALANCE -/BIC/ZHYXSZB .    "销售占比累计
IF L_ZHYXSZB <=  40 .
L_S_BALANCE -/BIC/ZXSSABC  'S' .
ELSEIF
L_ZHYXSZB >  40  AND  L_ZHYXSZB <=  70 .
L_S_BALANCE -/BIC/ZXSSABC  'A' .
ELSEIF
L_ZHYXSZB >  70  AND  L_ZHYXSZB <=  90 .
L_S_BALANCE -/BIC/ZXSSABC  'B' .
ELSE .
L_S_BALANCE -/BIC/ZXSSABC  'C' .
ENDIF .
*
CONCATENATE L_S_BALANCE -/BIC/ZMATERIAL L_S_BALANCE -/BIC/ZGRID  INTO
L_S_BALANCE -/BIC/ZSKUCODE .

SHIFT L_S_BALANCE -/BIC/ZSKUCODE  LEFT DELETING  LEADING  '0' .



MODIFY L_T_BALANCE2  FROM L_S_BALANCE .
ENDLOOP .
*
*取采购数据总额
LOOP  AT L_T_PU  INTO L_S_PU .
  L_ZZJXJ_AMT  L_ZZJXJ_AMT + L_S_PU -/BIC/ZORAMT .
CLEAR L_S_PU -/BIC/ZCITY_NAM .
COLLECT L_S_PU  INTO L_T_PU2 .
ENDLOOP .
SORT L_T_PU2  BY /BIC/ZORAMT  DESCENDING .
*
*取采购SABC
CLEAR L_S_PU .
LOOP  AT L_T_PU2  INTO L_S_PU .
L_S_PU -/BIC/ZDHZB  L_S_PU -/BIC/ZORAMT / L_ZZJXJ_AMT *  100 .
"订货比例乘以100.
L_ZDHZB  L_ZDHZB + L_S_PU -/BIC/ZDHZB .    "销售占比累计
IF L_ZDHZB <=  40 .
L_S_PU -/BIC/ZDHSABC  'S' .
ELSEIF
L_ZDHZB >  40  AND  L_ZDHZB <=  70 .
L_S_PU -/BIC/ZDHSABC  'A' .
ELSEIF
L_ZDHZB >  70  AND  L_ZDHZB <=  90 .
L_S_PU -/BIC/ZDHSABC  'B' .
ELSE .
L_S_PU -/BIC/ZDHSABC  'C' .
ENDIF .
**
CONCATENATE L_S_PU -/BIC/ZMATERIAL L_S_PU -/BIC/ZGRID  INTO
L_S_PU -/BIC/ZSKUCODE .

SHIFT L_S_PU -/BIC/ZSKUCODE  LEFT DELETING  LEADING  '0' .

MODIFY L_T_PU2  FROM L_S_PU .
ENDLOOP .
*
*
CLEAR L_S_BALANCE .
CLEAR L_S_PU .
CLEAR L_S_K3 .
LOOP  AT RESULT_PACKAGE  ASSIGNING <RESULT_FIELDS> .
   READ  TABLE L_T_BALANCE2  INTO L_S_BALANCE
   WITH  KEY  /BIC/ZSKUCODE  <RESULT_FIELDS> -/BIC/ZSKUCODE .
<RESULT_FIELDS> -/BIC/ZXSSABC  L_S_BALANCE -/BIC/ZXSSABC .
<RESULT_FIELDS> -/BIC/ZMATERIAL  L_S_BALANCE -/BIC/ZMATERIAL .
<RESULT_FIELDS> -/BIC/ZGRID  L_S_BALANCE -/BIC/ZGRID .

  READ  TABLE L_T_PU2  INTO L_S_PU
  WITH  KEY /BIC/ZSKUCODE  <RESULT_FIELDS> -/BIC/ZSKUCODE .
<RESULT_FIELDS> -/BIC/ZDHSABC  L_S_PU -/BIC/ZDHSABC .

*
READ  TABLE L_T_K3  INTO L_S_K3
WITH  KEY /BIC/ZSKUCODE  <RESULT_FIELDS> -/BIC/ZSKUCODE .
IF SY -SUBRC  0 .
<RESULT_FIELDS> -/BIC/ZMATERIAL  L_S_K3 -/BIC/ZMATERIAL .
<RESULT_FIELDS> -/BIC/ZGRID  L_S_K3 -/BIC/ZGRID .
<RESULT_FIELDS> -/BIC/ZPRTK3  L_S_K3 -/BIC/ZPRTK3 .
ENDIF .
CLEAR L_S_K3 L_S_PU L_S_BALANCE .
*
ENDLOOP .


"ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值