Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 11 День 11 Внутренние таблицы 2011.doc
Скачиваний:
3
Добавлен:
20.11.2019
Размер:
379.39 Кб
Скачать

Дополнение comparing

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 используется для перемещения полей из найденной строки в рабочую область. Если это дополнение определено, только значения указанных компонентов будут перемещены в рабочую область. Если строка не найдена, transporting ничего не делает.

Формы для выражения transporting в операторе read table

texp

Описание

f1 f2 ...

После того, как строка найдена, значение f1 в найденной строке накладывается на значение f1 в рабочей области. Затем значение f2 накладывается на значение f2 в рабочей области, и так далее. Только компоненты, перечисленные после transporting будут перемещены. Все другие компоненты остаются неизменными.

All fields

Все поля транспортируются. Это – значение по умолчанию, и имеет тот же самый эффект как дополнение transporting.

no fields

Никакие поля не транспортируются. Ни одно из полей в рабочей области не изменено.

Это дополнение полезно, если Вы хотите только проверить на существование строки во внутренней таблице, не нарушая информационные наполнения строки заголовка. Например, прежде, чем добавить строку, Вы хотели бы определить, существует ли уже такая строка во внутренней таблице.