1.工作区
1 *&---------------------------------------------------------------------* 2 *CORRESPONGDING关键字 3 *关键字MAPPING指定不同字段赋值 4 *关键字EXCEPT排除某个字段不赋值 5 *&---------------------------------------------------------------------* 6 ”1.工作区相同字段赋值 7 DATA:BEGIN OF ls_data1, 8 fd1 TYPE char10, 9 fd2 TYPE char10, 10 fd3 TYPE char10, 11 END OF ls_data1, 12 13 BEGIN OF ls_data2, 14 fd1 TYPE char10, 15 fd2 TYPE char10, 16 fd4 TYPE char10, 17 END OF ls_data2. 18 19 ls_data1 = VALUE #( fd1 = |First| 20 fd2 = |Second| 21 fd3 = |Third| ). 22 23 "相同字段赋值 24 ls_data2 = CORRESPONDING #( ls_data1 ). 25 WRITE:/ |FD1:|,ls_data2-fd1, |FD2:|,ls_data2-fd2, 26 |FD4:|,ls_data2-fd4. 27 28 "相同字段赋值基础上,指定把ls_data1-fd3赋值给ls_data2-fd4 29 ls_data2 = CORRESPONDING #( ls_data1 MAPPING fd4 = fd3 ). 30 WRITE:/ |FD1:|,ls_data2-fd1, |FD2:|,ls_data2-fd2, 31 |FD4:|,ls_data2-fd4. 32 33 "相同字段赋值的基础上,排除fd2不赋值(注:EXCEPT时是将EXCEPT的字段置为空而不是不赋值) 34 ls_data2 = CORRESPONDING #( ls_data1 EXCEPT fd2 ). 35 WRITE:/ |FD1:|,ls_data2-fd1, |FD2:|,ls_data2-fd2, 36 |FD4:|,ls_data2-fd4. 37 38 "相同字段赋值基础上,指定把ls_data1-fd3赋值给ls_data2-fd4,排除fd2不赋值 39 ls_data2 = CORRESPONDING #( ls_data1 MAPPING fd4 = fd3 EXCEPT fd2). 40 WRITE:/ |FD1:|,ls_data2-fd1, |FD2:|,ls_data2-fd2, 41 |FD4:|,ls_data2-fd4.
2.内表
1 DATA:lt_001 TYPE TABLE OF ACDOCA. 2 3 SELECT 4 bukrs, 5 belnr, 6 gjahr, 7 buzei, 8 FROM bseg 9 UP TO 3 ROWS 10 INTO TABLE @DATA(lt_besg). 11 12 lt_001 = CORRESPONDING #( lt_besg MAPPING rbukrs = bukrs 13 docln = buzei ).
3.RANGE表
1 RANGES:lr_rank FOR mara-matnr. 2 lr_rank[] = CORREPONGDING #(gt_data MAPPING low = matnr 3 EXCEPT * ). 4 lr_rank-sign = 'I'. 5 lr_rank-option = 'EQ'. 6 MODIFY lr_rank TRANSPORTING sign option WHERE low IS NOT INITIAL. 7 8 SORT lr_rank BY low. 9 DELETE ADJACENT DUPLICATES FROM lr_rank COMPARING low.