Дополнение transporting
Пример
Дополнение comparing
Пример
Без дополнений
Дополнение binary search
При использовании дополнения with key, желательно использовать дополнение binary search, которое использует алгоритм двоичного поиска вместо линейного просмотра таблицы и увеличивает производительность системы.
Если ни index, ни ключевое выражение не определены, будет искаться строка, которая соответствует заданным по умолчаниям значениям строки заголовка. Пустому значению в заданном по умолчанию ключевом столбце будет соответствовать любое значение. Системные переменные sy-subrc и sy-tabix будут иметь те же значения, что и в операторе read table с использованием ключевого выражения.
report ztx1108.
data: begin of it occurs 3,
f1(2) type n, "character field - part of default key
f2 type i, "numeric field - not part of default key
f3(2) type c, "character field - part of default key
f4 type p, "numeric field - not part of default key
end of it.
it-f1 = '10'. it-f3 = 'AA'. it-f2 = it-f4 = 1. append it.
it-f1 = '20'. it-f3 = 'BB'. it-f2 = it-f4 = 2. append it.
it-f1 = '30'. it-f3 = 'CC'. it-f2 = it-f4 = 3. append it.
sort it by f1 f3.
clear it.
it(2) = ' '. it-f3 = 'BB'.
read table it binary search.
write: / 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix,
/ 'f1=', it-f1, 'f2=', it-f2, 'f3=', it-f3, 'f4=', it-f4.
clear it.
it-f1 = '30'. it-f3 = 'AA'.
read table it binary search.
write: / 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix,
/ 'f1=', it-f1, 'f2=', it-f2, 'f3=', it-f3, 'f4=', it-f4.
sy-subrc = 0
sy-tabix = 2
f1= 20 f2= 2 f3= BB f4= 2
sy-subrc = 4
sy-tabix = 3
f1= 30 f2= 0 f3= AA f4= 0
comparing находит различия между информационными наполнениями рабочей области и строки, которая была найдена до того как помещена в рабочую область. Используйте это дополнение вместе с index или with key. Если, после того, как строка была найдена, информационные наполнения рабочей области полностью совпадает с найденной строкой, значение системной переменной sy-subrc будет 0. Если информационные наполнения будут различными, то sy-subrc будет 2, и информационные наполнения будут записаны поверх найденной строкой. Если строка не будет найдена, то sy-subrc будет> 2, и информационные наполнения останутся неизменными.
Формы для выражения сравнения в оператореread table
Cmpexp | Description Описание |
f1 f2 ... | После того, как строка найдена, значение f1 в найденной строке сравнивается со значением f1 в рабочей области. Затем значение f2 сравнивается со значением f2 в рабочей области, и так далее. Если они все равны, sy-subrc установлен в 0. Если хотя бы одно отличается, sy-subrc установлена в 2. |
all fields | Все поля сравниваются так же как и f1 f2.... |
no fields | Поля не сравниваются. Это – значение по умолчанию. |
report ztx1109.
data: begin of it occurs 3,
f1(2) type n,
f2 type i,
f3(2) type c,
f4 type p,
end of it,
wa like it.
it-f1 = '10'. it-f3 = 'AA'. it-f2 = it-f4 = 1. append it.
it-f1 = '20'. it-f3 = 'BB'. it-f2 = it-f4 = 2. append it.
it-f1 = '30'. it-f3 = 'CC'. it-f2 = it-f4 = 3. append it.
read table it index 2 comparing f1.
write: / 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix,
/ it-f1, it-f2, it-f3, it-f4.
read table it into wa index 1 comparing f2 f4.
write: /,
/ 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix,
/ it-f1, it-f2, it-f3, it-f4,
/ wa-f1, wa-f2, wa-f3, wa-f4.
it = wa.
read table it with key f3 = 'AA' comparing all fields.
write: /,
/ 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix,
/ it-f1, it-f2, it-f3, it-f4,
/ wa-f1, wa-f2, wa-f3, wa-f4.
sy-subrc = 2
sy-tabix = 2
20 2 BB 2
sy-subrc = 2
sy-tabix = 1
20 2 BB 2
10 1 AA 1
sy-subrc = 0
sy-tabix = 1
10 1 AA 1
10 1 AA 1
transporting используется для перемещения полей из найденной строки в рабочую область. Если это дополнение определено, только значения указанных компонентов будут перемещены в рабочую область. Если строка не найдена, transporting ничего не делает.