Дополнение 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 ничего не делает.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: