以前看到标准的ABAP程序中有些地方用到sort,后面也没跟internal table也没by,很困惑。今天特地研究一下他的用法。
sort在field group中,其实是根据header的字段将后面的dataset进行排序。废话少说看实例:
FIELD-GROUPS : header , person_sax, person_info.
DATA: name TYPE c LENGTH 10,
sex TYPE c,
country TYPE c LENGTH 10,
p_id TYPE n LENGTH 10.
INSERT: name sex INTO header,
country p_id INTO person_info.
name = 'Zhangsan'.
sex = 'M'.
EXTRACT person_sax.
country = 'China'.
p_id = '43143215'.
EXTRACT person_info.
country = 'UK'.
p_id = '65453542'.
EXTRACT person_info.
country = 'USA'.
p_id = '12334254'.
EXTRACT person_info.
name = 'Wangwu'.
sex = 'M'.
EXTRACT person_sax.
country = 'China'.
p_id = '0002365'.
EXTRACT person_info.
country = 'UK'.
p_id = '8566211'.
EXTRACT person_info.
country = 'USA'.
p_id = '8965897'.
EXTRACT person_info.
name = 'Lisi'.
sex = 'M'.
EXTRACT person_sax.
country = 'China'.
p_id = '9996234'.
EXTRACT person_info.
country = 'UK'.
p_id = '7435423'.
EXTRACT person_info.
country = 'USA'.
p_id = '45326534'.
EXTRACT person_info.
SORT.
LOOP .
AT FIRST.
WRITE:/ 'Personel information:'.
ENDAT.
AT person_info.
WRITE:/ name, sex, country, p_id.
ENDAT.
AT LAST.
ULINE.
WRITE:/ 'The end of list.'.
ENDAT.
ENDLOOP.