TYPES: //定义结构体
BEGIN OF S_PRIC,
MATERIAL TYEP /BIO/0IMATERIAL,
PURCH_ORG TYPE /BIO/0IPURCH_ORG,
/BIC/ZDP_SCAT TYPE /BIC/0IZDP_SCAT,
END OF S_PRIC.
BEGIN OF S_MAT
MATERIAL TYPE /BIO/0IMATERIAL,
MAT_GROUP TYPE /BIO/0IMATL_GROUP,
END OF S_MAT.
DATA: //定义内表 的结构与结构体一致
T_PRIC TYPE STANDARD TABLE OF S_PRIC .
T_MAT TYPE STANDARD TABLE OF T_MAT.
FIELDS-SYMBOLS: //定义指针指向结构体
<PRIC> TYPE S_PRIC,
<MAT> TYPE S_MAT.
DATA: zdata TYPE ZSETVAL //定义一个字段
SELECT SINGLE MMVAL FROM ZDBW_MM_SETING
INTO zdata WHERE MMSET = 'NPRC_JZDAT'. //将seting表中的mmval字段插到zdata字段中
SELECT MATERIAL PURCH_ORG /BIC/ZDP_SCAT
INTO CORRESPONDING FIELDS OF TABLE T_PRIC
FROM /BIC/AZDPN_O8100
FOR ALL ENTRIES IN SOURCE_PACKAGE
WHERE MATERIAL = SOURCE_PACKAGE-MATERIAL
AND PURCH_ORG = SOURCE_PACKAGE-PURCH_ORG
AND /BIC/ZDP_SCAT = SOURCE_PACKAGE-/BIC/ZDP_SCAT
AND CALMONTH = zdata+0.
SELECT MATERIAL MAT_GROUP
INTO CORRESPONDING FIELDS OF TABLE T_MAT
FROM /BIO/PMATERIAL
FOR ALL ENTRIES IN SOURCE_PACKAGE
WHERE MATERIAL = SOURCE_PACKAGE-MATERIAL
AND OBJVERS = 'A'.
SORT T_MAT BY MATERIAL. 将T_MAT内表中按物料排序
LOOP AT SOURCE_PACKAGE ASSINGING <SOURCE_FIELDS>.
//将内表中的数据读出来用指针来实现,而指针定义于结构体
READ TABLE T_PRIC ASSIGNING <PRIC> WITH KEY
MATERIAL = <SOURCE_FIELDS>-MATERIAL
PURCH_ORG = <SOURCE_FIELDS>-PURCH_ORG
/BIC/ZDP_SCAT = <SOURCE_FIELDS>-/BIC/ZDP_SCAT BINARY SEARCH. //BINARY SEARCH :二分搜索法法
IF-SUBRC = 0.
DELETE SOUCE_PACKAGE.
ELSE.
READ TABLE T_MAT ASSIGNING <MAT> WITH KEY
MATERIAL = <SOURCE_FIELDS>-MATERIAL BINARY SEARCH.
........
........
........
ENDLOOP