滚动十四天销售金额排序(全国和各区域)前20名在各城市中的订销存数量

56 篇文章 0 订阅

开始例程

*$*$ begin of global - insert your declaration only below this line  *-*
.."insert your code here
"/BIC/AZCSTORE00
TYPESBEGIN OF TY_S_STORE,
  /BIC/ZSTORE TYPE /BIC/OIZSTORE,
  /BIC/ZBZIRK TYPE /BIC/OIZBZIRK,
  /BIC/ZSYB TYPE /BIC/OIZSYB,
  /BIC/ZCHANNEL TYPE /BIC/OIZCHANNEL,
END OF   TY_S_STORE,
TY_T_STORE TYPE TABLE OF TY_S_STORE.

DATALT_STORE TYPE TY_T_STORE,
      LS_STORE TYPE TY_S_STORE.

"/BIC/PZMATERIAL
TYPESBEGIN OF TY_S_ZMATERIAL,
  /BIC/ZMATERIAL TYPE /BIC/OIZMATERIAL,
  /BIC/ZBRAND TYPE /BIC/OIZBRAND,
END OF   TY_S_ZMATERIAL,
TY_T_ZMATERIAL TYPE TABLE OF TY_S_ZMATERIAL.

DATALT_ZMATERIAL TYPE TY_T_ZMATERIAL,
      LS_ZMATERIAL TYPE TY_S_ZMATERIAL.

  DATAL_MAX_DATE TYPE D,
        L_MIN_DATE TYPE D.

*$*$ end of global - insert your declaration only before this line   *-*




结束例程

$*$ begin of global insert your declaration only below this line  *-*
.."insert your code here
"/BIC/AZCSTORE00
TYPESBEGIN OF TY_S_STORE,
  /BIC/ZSTORE TYPE /BIC/OIZSTORE,
  /BIC/ZBZIRK TYPE /BIC/OIZBZIRK,
  /BIC/ZSYB TYPE /BIC/OIZSYB,
  /BIC/ZCHANNEL TYPE /BIC/OIZCHANNEL,
END OF   TY_S_STORE,
TY_T_STORE TYPE TABLE OF TY_S_STORE.

DATALT_STORE TYPE TY_T_STORE,
      LS_STORE TYPE TY_S_STORE.

"/BIC/PZMATERIAL
TYPESBEGIN OF TY_S_ZMATERIAL,
  /BIC/ZMATERIAL TYPE /BIC/OIZMATERIAL,
  /BIC/ZBRAND TYPE /BIC/OIZBRAND,
END OF   TY_S_ZMATERIAL,
TY_T_ZMATERIAL TYPE TABLE OF TY_S_ZMATERIAL.

DATALT_ZMATERIAL TYPE TY_T_ZMATERIAL,
      LS_ZMATERIAL TYPE TY_S_ZMATERIAL.

  DATAL_MAX_DATE TYPE D,
        L_MIN_DATE TYPE D.

*$*$ end of global - insert your declaration only before this line   *-*




*************************************** 取罗莱店铺
DATALT_STORE1 TYPE STANDARD TABLE OF /BIC/AZISDDD0100 WITH NON-UNIQUE
DEFAULT KEY.
DATALT_STORE2 TYPE STANDARD TABLE OF /BIC/AZISDDD0100 WITH NON-UNIQUE
DEFAULT KEY.
"蓝鼎渠道
DATALS_STORE1 TYPE /BIC/AZISDDD0100.


TYPESBEGIN OF TY_ZILMM001,
       /BIC/ZSKUCODE TYPE /BIC/OIZSKUCODE,
      /BIC/ZLLSTORE           TYPE /BIC/OIZLLSTORE,
     CALDAY           TYPE /BI0/OICALDAY,
   /BIC/ZESTNOW           TYPE /BIC/OIZESTNOW,
  /BIC/ZESTWAY           TYPE /BIC/OIZESTWAY,
  /BIC/ZCITY_NAM  TYPE /BIC/OIZCITY_NAM,
      END OF TY_ZILMM001.
DATALT_ZILMM001 TYPE STANDARD TABLE OF TY_ZILMM001.
DATA:  LT_ZILMM002 TYPE STANDARD TABLE OF TY_ZILMM001.
DATALS_ZILMM001 LIKE LINE OF LT_ZILMM001.

DATALT_ZILPU002 TYPE STANDARD TABLE OF  /BIC/AZILPU00200 WITH
NON-UNIQUE DEFAULT KEY.
DATALS_ZILPU002  TYPE /BIC/AZILPU00200.


DATALT_RESULT_TMP1 TYPE STANDARD TABLE OF  /BIC/AZILSD00200 WITH
NON-UNIQUE DEFAULT KEY.
DATALT_RESULT_TMP2 LIKE LT_RESULT_TMP1.
DATALT_RESULT_TMP LIKE LT_RESULT_TMP1.
DATALS_RESULT_TMP  TYPE /BIC/AZILSD00200,
      LS_RESULT_TMP1 TYPE /BIC/AZILSD00200,
      LS_RESULT_TMP2 TYPE /BIC/AZILSD00200.



DATALT_RESULT     TYPE _ty_t_TG_1,
      LT_RESULT_TMP4 TYPE _ty_t_TG_1,
      LT_RESULT_TMP3 TYPE _ty_t_TG_1,
      LT_RESULT_TMP5 TYPE _ty_t_TG_1.
DATALS_RESULT     TYPE _ty_s_TG_1,
      LS_RESULT_TMP3 TYPE _ty_s_TG_1,
      LS_RESULT_TMP4 TYPE _ty_s_TG_1.

DATAZZSLPX  TYPE /BIC/OIZSLPX"按数量排序
      ZZJEPX  TYPE /BIC/OIZJEPX"按金额排序.
      L_RECORD TYPE I,
      ZZBZIRK   TYPE /BIC/OIZBZIRK.
 L_RECORD 0.
*

"取全部城市
SELECT /BIC/ZZONE  /BIC/ZCITY_NAM  FROM /BIC/AZISDDD0100
  INTO CORRESPONDING FIELDS OF TABLE LT_RESULT_TMP4.
  SORT LT_RESULT_TMP4 BY /BIC/ZZONE  /BIC/ZCITY_NAM.
 DELETE ADJACENT DUPLICATES FROM LT_RESULT_TMP4 COMPARING /BIC/ZCITY_NAM
 .

*取全部店铺
SELECT /BIC/ZZONE  /BIC/ZCITY_NAM /BIC/ZLLSTORE FROM /BIC/AZISDDD0100
  INTO CORRESPONDING FIELDS OF TABLE LT_STORE2.
  SORT LT_STORE2 BY /BIC/ZLLSTORE /BIC/ZZONE  /BIC/ZCITY_NAM.
 DELETE ADJACENT DUPLICATES FROM LT_STORE2 COMPARING /BIC/ZLLSTORE.

*取有销售的店铺
SELECT *
  INTO TABLE LT_STORE1
  from /BIC/AZISDDD0100
  FOR ALL ENTRIES IN RESULT_PACKAGE
  WHERE /BIC/ZSTORERE RESULT_PACKAGE-/BIC/ZLLSTORE.
SORT LT_STORE1 BY /BIC/ZSTORERE.
DELETE ADJACENT DUPLICATES FROM LT_STORE1 COMPARING /BIC/ZSTORERE."取渠道


*删除非蓝鼎门店
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
 CLEARLS_STORE1.  "取门店
  READ TABLE LT_STORE1 INTO LS_STORE1 WITH KEY /BIC/ZSTORERE =
  <RESULT_FIELDS>-/BIC/ZLLSTORE
  BINARY SEARCH.
  IF SY-SUBRC 0.
    <RESULT_FIELDS>-/BIC/ZLLSTORE LS_STORE1-/BIC/ZLLSTORE.
    <RESULT_FIELDS>-/BIC/ZZONE LS_STORE1-/BIC/ZZONE.
    <RESULT_FIELDS>-/BIC/ZCITY_NAM LS_STORE1-/BIC/ZCITY_NAM.
  ELSE.
    DELETE RESULT_PACKAGE"非蓝鼎门店删除
   ENDIF.

ENDLOOP.



   .

****************取滚动十四天销售*******************


REFRESHLT_RESULT_TMP3,LT_RESULT_TMP1,LT_RESULT_TMP2.
LT_RESULT_TMP3[] RESULT_PACKAGE[].

CLEAR LS_RESULT_TMP3.



CLEAR LS_RESULT_TMP3.
LOOP AT LT_RESULT_TMP3 INTO LS_RESULT_TMP3.

     IF L_MAX_DATE IS NOT INITIAL.
       LS_RESULT_TMP3-CALDAY L_MAX_DATE.
     ENDIF.
     LS_RESULT_TMP1-/BIC/ZCITY_NAM LS_RESULT_TMP3-/BIC/ZCITY_NAM.
     LS_RESULT_TMP1-/BIC/ZMATERIAL LS_RESULT_TMP3-/BIC/ZMATERIAL.
     LS_RESULT_TMP1-/BIC/ZGRID LS_RESULT_TMP3-/BIC/ZGRID.
     LS_RESULT_TMP1-/BIC/ZLLSTORE LS_RESULT_TMP3-/BIC/ZLLSTORE.
     LS_RESULT_TMP1-/BIC/ZSKUCODE LS_RESULT_TMP3-/BIC/ZSKUCODE.
     LS_RESULT_TMP1-CALDAY LS_RESULT_TMP3-CALDAY.
     LS_RESULT_TMP1-/BIC/ZZONE LS_RESULT_TMP3-/BIC/ZZONE.
     LS_RESULT_TMP1-/BIC/ZDTLQTY LS_RESULT_TMP3-/BIC/ZDTLQTY.
     LS_RESULT_TMP1-/BIC/ZDTLFTAMT LS_RESULT_TMP3-/BIC/ZDTLFTAMT.
     COLLECT LS_RESULT_TMP1 INTO LT_RESULT_TMP1.
ENDLOOP.

LT_RESULT_TMP[] LT_RESULT_TMP1[].
CLEAR LS_RESULT_TMP.
CLEAR LT_RESULT_TMP1.
CLEAR LT_RESULT_TMP2.

LOOP AT LT_RESULT_TMP INTO LS_RESULT_TMP.
     CLEAR LS_RESULT_TMP-/BIC/ZLLSTORE.
     CLEAR LS_RESULT_TMP-/BIC/ZCITY_NAM.
     CLEAR LS_RESULT_TMP-/BIC/ZFLAG2.
     CLEAR LS_RESULT_TMP-/BIC/ZJEPX.
     COLLECT LS_RESULT_TMP INTO LT_RESULT_TMP1"对区域进行汇总
ENDLOOP.

LOOP AT LT_RESULT_TMP INTO LS_RESULT_TMP.
     CLEAR LS_RESULT_TMP-/BIC/ZLLSTORE.
     CLEAR LS_RESULT_TMP-/BIC/ZFLAG2.
     CLEAR LS_RESULT_TMP-/BIC/ZJEPX.
     SHIFT LS_RESULT_TMP-/BIC/ZSKUCODE LEFT DELETING LEADING '0'.
     COLLECT LS_RESULT_TMP INTO LT_RESULT_TMP2"对城市的销售进行汇总
ENDLOOP.

SORT LT_RESULT_TMP1 BY
     /BIC/ZZONE ASCENDING
     /BIC/ZDTLFTAMT DESCENDING
     /BIC/ZDTLQTY DESCENDING.
CLEARZZSLPX,ZZJEPX,LS_RESULT_TMP1,ZZBZIRK.
LOOP AT LT_RESULT_TMP1 INTO LS_RESULT_TMP1.
    IF ZZBZIRK IS INITIAL.
       ZZBZIRK LS_RESULT_TMP1-/BIC/ZZONE.
       CLEAR ZZJEPX.
     ENDIF.
*
     IF ZZBZIRK LS_RESULT_TMP1-/BIC/ZZONE.
       IF ZZJEPX < 20.
           ZZJEPX ZZJEPX + 1.
           LS_RESULT_TMP1-/BIC/ZJEPX ZZJEPX.
           LS_RESULT_TMP1-/BIC/ZFLAG2 'B2'.
           SHIFT LS_RESULT_TMP1-/BIC/ZSKUCODE LEFT DELETING LEADING '0'.
           "添加记录
           MOVE-CORRESPONDING LS_RESULT_TMP1 TO LS_RESULT.
           L_RECORD L_RECORD + 1.
           LS_RESULT-RECORD L_RECORD.
           APPEND LS_RESULT TO LT_RESULT.
        ENDIF.
      ELSE.
           ZZBZIRK LS_RESULT_TMP1-/BIC/ZZONE.
           CLEAR ZZJEPX.
           ZZJEPX ZZJEPX + 1.
           LS_RESULT_TMP1-/BIC/ZJEPX ZZJEPX.
           LS_RESULT_TMP1-/BIC/ZFLAG2 'B2'.
           SHIFT LS_RESULT_TMP1-/BIC/ZSKUCODE LEFT DELETING LEADING '0'.
           MOVE-CORRESPONDING LS_RESULT_TMP1 TO LS_RESULT.
           L_RECORD L_RECORD + 1.
           LS_RESULT-RECORD L_RECORD.
           APPEND LS_RESULT TO LT_RESULT.
     ENDIF.
ENDLOOP.
*
********************************** 全国
CLEAR LS_RESULT_TMP.
CLEAR LT_RESULT_TMP1.

LOOP AT LT_RESULT_TMP INTO LS_RESULT_TMP.
     CLEAR LS_RESULT_TMP-/BIC/ZCITY_NAM.
     CLEAR LS_RESULT_TMP-/BIC/ZZONE.
     CLEAR LS_RESULT_TMP-/BIC/ZLLSTORE.
     CLEAR LS_RESULT_TMP-/BIC/ZFLAG2.
     CLEAR LS_RESULT_TMP-/BIC/ZJEPX.
     COLLECT LS_RESULT_TMP INTO LT_RESULT_TMP1"对全国进行汇总
ENDLOOP.

SORT LT_RESULT_TMP1 BY
     /BIC/ZDTLFTAMT DESCENDING
     /BIC/ZDTLQTY DESCENDING.
CLEARZZSLPX,ZZJEPX,LS_RESULT_TMP1,ZZBZIRK.
LOOP AT LT_RESULT_TMP1 INTO LS_RESULT_TMP1.
       IF ZZJEPX < 20.
           ZZJEPX ZZJEPX + 1.
           LS_RESULT_TMP1-/BIC/ZJEPX ZZJEPX.
           LS_RESULT_TMP1-/BIC/ZFLAG2 'A2'.
           SHIFT LS_RESULT_TMP1-/BIC/ZSKUCODE LEFT DELETING LEADING '0'.

           "添加记录
           MOVE-CORRESPONDING LS_RESULT_TMP1 TO LS_RESULT.
           L_RECORD L_RECORD + 1.
           LS_RESULT-RECORD L_RECORD.
           APPEND LS_RESULT TO LT_RESULT.
        ENDIF.
ENDLOOP.
*********************排名取完

***********************取客户的TOP物料的库存。


"取库存:
 L_MAX_DATE L_MAX_DATE + 1."(取今天库存)
SELECT
   /BIC/ZSKUCODE
  /BIC/ZLLSTORE
     CALDAY
   /BIC/ZESTNOW
  /BIC/ZESTWAY
  INTO TABLE LT_ZILMM001
  from /BIC/AZILMM00100
  FOR ALL ENTRIES IN LT_RESULT
  WHERE /BIC/ZSKUCODE LT_RESULT-/BIC/ZSKUCODE
  AND CALDAY L_MAX_DATE.

CLEARLS_RESULTLS_STORE.
LOOP AT LT_ZILMM001 INTO LS_ZILMM001.
  READ TABLE LT_STORE2  INTO LS_STORE1 WITH KEY /BIC/ZLLSTORE =
  LS_ZILMM001-/BIC/ZLLSTORE.
  IF SY-SUBRC 0.
 LS_ZILMM001-/BIC/ZCITY_NAM LS_STORE1-/BIC/ZCITY_NAM.
 ENDIF.
 CLEAR LS_ZILMM001-/BIC/ZLLSTORE.
COLLECT LS_ZILMM001 INTO LT_ZILMM002.
ENDLOOP.

*取订货

SELECT *
  INTO TABLE LT_ZILPU002
  from /BIC/AZILPU00200
  FOR ALL ENTRIES IN LT_RESULT
  WHERE /BIC/ZSKUCODE LT_RESULT-/BIC/ZSKUCODE.






* ***以下区域排名物料的城市具体情况。*********
BREAK-POINT.
CLEARLS_RESULT_TMPLS_RESULT,LS_RESULT_TMP4RESULT_PACKAGE,
LS_ZILMM001,LS_ZILPU002LT_RESULT_TMP3.
L_RECORD 0.

LOOP AT LT_RESULT_TMP4 INTO LS_RESULT_TMP4.
LOOP AT LT_RESULT INTO LS_RESULT
  WHERE /BIC/ZZONE =   LS_RESULT_TMP4-/BIC/ZZONE
   AND /BIC/ZFLAG2 'B2'.
    LS_RESULT_TMP4-/BIC/ZMATERIAL LS_RESULT-/BIC/ZMATERIAL.
    LS_RESULT_TMP4-/BIC/ZGRID LS_RESULT-/BIC/ZGRID.
    LS_RESULT_TMP4-/BIC/ZSKUCODE LS_RESULT-/BIC/ZSKUCODE.
    LS_RESULT_TMP4-/BIC/ZJEPX LS_RESULT-/BIC/ZJEPX.
    LS_RESULT_TMP4-CALDAY LS_RESULT-CALDAY.
    LS_RESULT_TMP4-/BIC/ZFLAG2 'B2'.
    APPEND LS_RESULT_TMP4 TO LT_RESULT_TMP3.
ENDLOOP.
CLEAR LS_RESULT.
ENDLOOP.


****取销量库存订货*************
CLEARLT_RESULT_TMP5LS_RESULT.

LOOP AT LT_RESULT_TMP3 INTO LS_RESULT.
*取城市销售数量
READ TABLE  LT_RESULT_TMP2 INTO LS_RESULT_TMP
WITH KEY /BIC/ZSKUCODE =  LS_RESULT-/BIC/ZSKUCODE
/BIC/ZCITY_NAM =   LS_RESULT-/BIC/ZCITY_NAM
CALDAY LS_RESULT-CALDAY.
IF  SY-SUBRC 0.
   LS_RESULT-/BIC/ZDTLQTY LS_RESULT_TMP-/BIC/ZDTLQTY.
ENDIF.
*取城市库存
READ TABLE LT_ZILMM002 INTO LS_ZILMM001
WITH KEY /BIC/ZSKUCODE =  LS_RESULT-/BIC/ZSKUCODE
/BIC/ZCITY_NAM =  LS_RESULT-/BIC/ZCITY_NAM
"CALDAY = LS_RESULT-CALDAY.(取销售日期相同日期的库存)。
CALDAY L_MAX_DATE.

IF  SY-SUBRC 0.
   LS_RESULT-/BIC/ZESTNOW LS_ZILMM001-/BIC/ZESTNOW.
   LS_RESULT-/BIC/ZESTWAY LS_ZILMM001-/BIC/ZESTWAY.
   "库存
ENDIF.
*
READ TABLE LT_ZILPU002 INTO LS_ZILPU002 WITH KEY /BIC/ZSKUCODE =
LS_RESULT-/BIC/ZSKUCODE
 /BIC/ZCITY_NAM LS_RESULT-/BIC/ZCITY_NAM
  BINARY SEARCH.
  IF SY-SUBRC 0.
 LS_RESULT-/BIC/ZORQTY LS_ZILPU002-/BIC/ZORQTY.
ENDIF.
L_RECORD L_RECORD + 1.
LS_RESULT-RECORD L_RECORD.
APPEND LS_RESULT TO LT_RESULT_TMP5.
ENDLOOP.
*********以上完成区域的排名*************
*********以下为全国的物料排名在城市的情况********
BREAK-POINT.
CLEARLS_RESULT_TMPLS_RESULT,LS_RESULT_TMP4RESULT_PACKAGE,
LS_ZILMM001,LS_ZILPU002LT_RESULT_TMP3.

LOOP AT LT_RESULT_TMP4 INTO LS_RESULT_TMP4.
LOOP AT LT_RESULT INTO LS_RESULT
 WHERE /BIC/ZFLAG2 'A2'.
    LS_RESULT_TMP4-/BIC/ZMATERIAL LS_RESULT-/BIC/ZMATERIAL.
    LS_RESULT_TMP4-/BIC/ZGRID LS_RESULT-/BIC/ZGRID.
    LS_RESULT_TMP4-/BIC/ZSKUCODE LS_RESULT-/BIC/ZSKUCODE.
    LS_RESULT_TMP4-/BIC/ZJEPX LS_RESULT-/BIC/ZJEPX.
    LS_RESULT_TMP4-CALDAY LS_RESULT-CALDAY.
    LS_RESULT_TMP4-/BIC/ZFLAG2 'A2'.
    APPEND LS_RESULT_TMP4 TO LT_RESULT_TMP3.
ENDLOOP.
CLEAR LS_RESULT.
ENDLOOP.


****取销量库存订货*************
CLEAR:  LS_RESULT.
LOOP AT LT_RESULT_TMP3 INTO LS_RESULT.
*取城市销售数量
READ TABLE  LT_RESULT_TMP2 INTO LS_RESULT_TMP
WITH KEY /BIC/ZSKUCODE =  LS_RESULT-/BIC/ZSKUCODE
/BIC/ZCITY_NAM =   LS_RESULT-/BIC/ZCITY_NAM
CALDAY LS_RESULT-CALDAY.
IF  SY-SUBRC 0.
   LS_RESULT-/BIC/ZDTLQTY LS_RESULT_TMP-/BIC/ZDTLQTY.
ENDIF.
*取城市库存
READ TABLE LT_ZILMM002 INTO LS_ZILMM001
WITH KEY /BIC/ZSKUCODE =  LS_RESULT-/BIC/ZSKUCODE
/BIC/ZCITY_NAM =  LS_RESULT-/BIC/ZCITY_NAM
CALDAY L_MAX_DATE.
IF  SY-SUBRC 0.
   LS_RESULT-/BIC/ZESTNOW LS_ZILMM001-/BIC/ZESTNOW.
   LS_RESULT-/BIC/ZESTWAY LS_ZILMM001-/BIC/ZESTWAY.
   "库存
ENDIF.
*
READ TABLE LT_ZILPU002 INTO LS_ZILPU002 WITH KEY /BIC/ZSKUCODE =
LS_RESULT-/BIC/ZSKUCODE
 /BIC/ZCITY_NAM LS_RESULT-/BIC/ZCITY_NAM
  BINARY SEARCH.
  IF SY-SUBRC 0.
 LS_RESULT-/BIC/ZORQTY LS_ZILPU002-/BIC/ZORQTY.
ENDIF.
L_RECORD L_RECORD + 1.
LS_RESULT-RECORD L_RECORD.
APPEND LS_RESULT TO LT_RESULT_TMP5.
ENDLOOP.



RESULT_PACKAGE[] LT_RESULT_TMP5[].



*$*$ end of routine - insert your code only before this line   



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值