Igor_34_rus написал(а):
sorted - всегда отсортирована.(Лучше если надо много раз читать)
standard - будет сортироваться при первом обращении к ключу, после изменения данных в таблице.(Лучше если надо быстро набросать и циклом пробежаться )
у меня что-то standard не сортируется:
Code:
data: BEGIN OF data_struc,
a type i,
b TYPE text20,
END OF data_struc.
Data tab1 like STANDARD TABLE OF data_struc WITH NON-UNIQUE key a.
Data tab2 like SORTED TABLE OF data_struc WITH NON-UNIQUE key a.
data_struc-a = 5.
data_struc-b = 'five'.
insert data_struc into table tab1.
insert data_struc into table tab2.
data_struc-a = 6.
data_struc-b = 'six'.
insert data_struc into table tab1.
insert data_struc into table tab2.
data_struc-a = 4.
data_struc-b = 'four'.
insert data_struc into table tab1.
insert data_struc into table tab2.
data_struc-a = 6.
data_struc-b = 'six'.
insert data_struc into table tab1.
insert data_struc into table tab2.
"Начальное заполнение:
write: / 'standard table tab1:'.
LOOP AT tab1 INTO data_struc.
write: / data_struc-a,'-',data_struc-b.
ENDLOOP.
write: / 'sorted table tab2:'.
LOOP AT tab2 INTO data_struc.
write: / data_struc-a,'-',data_struc-b.
ENDLOOP.
uline.
"поменяем данные
READ TABLE tab1 INTO data_struc WITH TABLE KEY a = 4.
data_struc-b = 'four_modif'.
MODIFY tab1 FROM data_struc INDEX sy-tabix.
*
READ TABLE tab2 INTO data_struc WITH TABLE KEY a = 4.
data_struc-b = 'four_modif'.
MODIFY tab2 FROM data_struc INDEX sy-tabix.
"Обратимся по ключу
READ TABLE tab1 INTO data_struc WITH TABLE KEY a = 4.
READ TABLE tab2 INTO data_struc WITH TABLE KEY a = 4.
"выведем измененные данные
write: / 'standard table tab1:'.
LOOP AT tab1 INTO data_struc.
write: / data_struc-a,'-',data_struc-b.
ENDLOOP.
write: / 'sorted table tab2:'.
LOOP AT tab2 INTO data_struc.
write: / data_struc-a,'-',data_struc-b.
ENDLOOP.
вывод:
Code:
standard table tab1:
5 - five
6 - six
4 - four
6 - six
sorted table tab2:
4 - four
5 - five
6 - six
6 - six
----------------------------------------------------------------------------------------
standard table tab1:
5 - five
6 - six
4 - four_modif
6 - six
sorted table tab2:
4 - four_modif
5 - five
6 - six
6 - six