开始例程
*$*$ begin of global - insert your declaration only below this line *-*
... "insert your code here
"/BIC/AZCSTORE00
TYPES: BEGIN 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.
DATA: LT_STORE TYPE TY_T_STORE,
LS_STORE TYPE TY_S_STORE.
"/BIC/PZMATERIAL
TYPES: BEGIN 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.
DATA: LT_ZMATERIAL TYPE TY_T_ZMATERIAL,
LS_ZMATERIAL TYPE TY_S_ZMATERIAL.
DATA: L_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
TYPES: BEGIN 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.
DATA: LT_STORE TYPE TY_T_STORE,
LS_STORE TYPE TY_S_STORE.
"/BIC/PZMATERIAL
TYPES: BEGIN 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.
DATA: LT_ZMATERIAL TYPE TY_T_ZMATERIAL,
LS_ZMATERIAL TYPE TY_S_ZMATERIAL.
DATA: L_MAX_DATE TYPE D,
L_MIN_DATE TYPE D.
*$*$ end of global - insert your declaration only before this line *-*
*************************************** 取罗莱店铺
DATA: LT_STORE1 TYPE STANDARD TABLE OF /BIC/AZISDDD0100 WITH NON-UNIQUE
DEFAULT KEY.
DATA: LT_STORE2 TYPE STANDARD TABLE OF /BIC/AZISDDD0100 WITH NON-UNIQUE
DEFAULT KEY.
"蓝鼎渠道
DATA: LS_STORE1 TYPE /BIC/AZISDDD0100.
TYPES: BEGIN 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.
DATA: LT_ZILMM001 TYPE STANDARD TABLE OF TY_ZILMM001.
DATA: LT_ZILMM002 TYPE STANDARD TABLE OF TY_ZILMM001.
DATA: LS_ZILMM001 LIKE LINE OF LT_ZILMM001.
DATA: LT_ZILPU002 TYPE STANDARD TABLE OF /BIC/AZILPU00200 WITH
NON-UNIQUE DEFAULT KEY.
DATA: LS_ZILPU002 TYPE /BIC/AZILPU00200.
DATA: LT_RESULT_TMP1 TYPE STANDARD TABLE OF /BIC/AZILSD00200 WITH
NON-UNIQUE DEFAULT KEY.
DATA: LT_RESULT_TMP2 LIKE LT_RESULT_TMP1.
DATA: LT_RESULT_TMP LIKE LT_RESULT_TMP1.
DATA: LS_RESULT_TMP TYPE /BIC/AZILSD00200,
LS_RESULT_TMP1 TYPE /BIC/AZILSD00200,
LS_RESULT_TMP2 TYPE /BIC/AZILSD00200.
DATA: LT_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.
DATA: LS_RESULT TYPE _ty_s_TG_1,
LS_RESULT_TMP3 TYPE _ty_s_TG_1,
LS_RESULT_TMP4 TYPE _ty_s_TG_1.
DATA: ZZSLPX 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>.
CLEAR: LS_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.
.
****************取滚动十四天销售*******************
REFRESH: LT_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.
CLEAR: ZZSLPX,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.
CLEAR: ZZSLPX,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.
CLEAR: LS_RESULT, LS_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.
CLEAR: LS_RESULT_TMP, LS_RESULT,LS_RESULT_TMP4, RESULT_PACKAGE,
LS_ZILMM001,LS_ZILPU002, LT_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.
****取销量库存订货*************
CLEAR: LT_RESULT_TMP5, 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 = 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.
CLEAR: LS_RESULT_TMP, LS_RESULT,LS_RESULT_TMP4, RESULT_PACKAGE,
LS_ZILMM001,LS_ZILPU002, LT_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