Приме использования дополнения index

Дополнение index

Чтение единственной строки используя оператора read table

Использование exit, continue, stop, и check

Таблица показывает работу операторов exit, continue, и check внутри цикла loop at/endloop.

Оператор Действие оператора
exit Немедленно заканчивает цикл и осуществляется переход на оператор после endloop.
Continue Осуществляет переход на следующую итерацию цикла, минуя все операторы, стоящие после Continue.
Check exp Если exp – истина, обработка продолжается, как будто этот оператор не был выполнен. Если exp – ложь, осуществляется переход на следующую итерацию цикла как и в операторе continue.

Чтобы определить положение и прочитать единственную строку от внутренней таблицы, используется ооператор read table. Он читает единственную строку, которая соответствует определенным критериям и помещает её в рабочую область.

read table it [into wa ] [index i | with key keyexp [binary search] ] [comparing cmpexp ] [transporting texp ].

· it – название внутренней таблицы.

· wa – название рабочей области.

· i – целочисленное значение номера строки в таблице. Например, 1 – первая строка в таблице, 2 – вторая, и так далее.

· keyexp – выражение, определяющее значение, которое будет найдено.

· cmpexp – выражение сравнения, определяющее тест, который будет выполнен на найденной строке.

· texp – выражение, представляющее поля, которые будут перемещаться в рабочую область после того, как строка была найдена.

· Если и comparing и transporting определены, comparing должно быть на первом месте.

Особенности оператора:

· у wa должна быть та же самая структура как строка тела.

· wa может быть строкой заголовка, или Field String, имеющей ту же самую структуру как строка в теле.

· Если Вы не определяете рабочую область, по умолчанию система использует строку заголовка. Например, read table it into it читает одну строке из внутренней таблицы it и помещает её в заголовок it. Эквивалентный оператор – read table it.

Внутренний индекс строки таблицы – номер строки. Например, первая строка в таблице – индекс 1, вторая – индекс 2, и так далее. В операторе read table, если index i определен, система восстанавливает i строку из внутренней таблицы и помещает её в рабочую область. Например, read table it index 7 читает седьмую строку из внутренней таблицы и помещает её в строку заголовка.

Если чтение было успешно (то есть, если i строка существует), sy-subrc установлен на нуль, и sy-tabix установлен в i.

report ztx1106.

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.

write: / 'sy-subrc =', sy-subrc,

/ 'sy-tabix =', sy-tabix,

/ it-f1, it-f2, it-f3, it-f4.

read table it into wa index 1.

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.

read table it index 4.

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 = 0

sy-tabix = 2

20 2 BB 2

sy-subrc = 0

sy-tabix = 1

20 2 BB 2

10 1 AA 1

sy-subrc = 4

sy-tabix = 0

20 2 BB 2

10 1 AA 1


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



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