内部表是用来存放数据的,我们从DB里把数据取出来后就存在内部表里,然后读取出来,放到工作区域里进行处理。今天我们就来看看如何从内部表里把这些数据读取出来。
1,读单条数据,语法用READ语句
READ TABLE IT_EKKN INTO WA_EKKN WITH KEY EBELN = WA_DT200-EBELN.
(INDEX 99.)
(TRANSPORTING NO FIELDS.)
(BINARY SEARCH)
解释:
a,从内部表IT_EKKN读取EBELN等于WA_DT200-EBELN的数据放到WA_EKKN里,读取的是符合条件的第一条数据。
b,如果要读取指定的数据的话就用 INDEX。
c,如果只是要判断有没有符合的数据的话,可以加关键词TRANSPORTING NO FIELDS,当没有的时候,SY-SUBRC的值返回为4。
d,这里用的是 WITH KEY ,表示从第一条数据开始读取。如果用WITH TABLE KEY的话,就表示以其后的值作检索条件。
e,加了 BINARY SEARCH的话,就可以用二分法进行查询。速度为更快。
2,读多条数据,语法用LOOP语句
LOOP AT IT_EKBE INTO WA_EKBE. (WHERE EBELN = WA_DT200-EBELN)
(TRANSPORTING NO FIELDS.)
ENDLOOP.
从内部表IT_EKBE第一个数据开始读取,然后放到WA_EKBE,下在就可以对WA_EKBE里的数据进行处理,处理完了再次循环,然后再次处理。就可以把所有的数据都读取出来了。
下面我们 SAP培训一下LOOP里的处理命令,学好这个,你ABAP就学会了80%了。 |