
- •Что такое внутренняя таблицы, её тело и строка заголовка.
- •Определение внутренней таблицы со строкой заголовка используя begin of и like.
- •Определение внутренней таблицы без строки заголовка.
- •Когда выделяется память для внутренней таблицы.
- •Порядок добавления строк во внутреннюю таблицу.
- •Добавление данных во внутреннюю таблицу, используя оператор append, формат оператора, пример использования.
- •Особенности дополнения occurs.
- •Операторы, используемые для чтения данных из внутренней таблицы, их форматы.
- •Чтение данных из внутренней таблицы используя оператор loop at, формат оператора.
- •Работа операторов exit, continue и check внутри цикла loop at/endloop.
- •Чтение единственной строки, используя оператор read table, формат оператора.
- •Дополнение index оператора read table, его особенности.
- •Дополнение with key keyexp оператора read table, его особенности.
- •Дополнение binary search оператора read table, его особенности.
- •Дополнение comparing оператора read table, его особенности.
- •Дополнение transporting оператора read table, его особенности.
- •Формы для выражения transporting в операторе read table:
- •Сортировка внутренней таблицы используя оператор sort, его дополнения и особенности.
- •Особенности дополнения as text.
- •Оператор тела таблицы, получение информации о внутренней таблице.
- •Оператор describe table, его описание и особенности работы.
- •Оператор append lines, его описание и особенности работы.
- •Оператор insert lines, его описание и особенности работы.
- •Оператор editor-call, его описание и особенности работы.
- •Оператор insert, его описание и особенности работы.
- •Оператор modify, его описание и особенности работы.
- •Оператор free, его описание и особенности работы.
- •Оператор delete, его описание и особенности работы.
- •Оператор clear, его описание и особенности работы.
- •Оператор refresh, его описание и особенности работы.
- •Оператор append sorted by, его описание и особенности работы.
- •Оператор collect, его описание и особенности работы.
- •Копирование информации из одной внутренней таблицы в другую.
- •Оператор select … into table, дополнения, особенности оператора.
- •Запишите различные формы оператора select для заполнения внутренней таблицы в порядке убывания эффективности оператора.
- •Управление процессом обработки с помощью оператора at first / endat.
- •Управление процессом обработки с помощью оператора at last / endat.
- •Управление процессом обработки с помощью оператора at new / endat.
- •Управление процессом обработки с помощью оператора at end of / endat.
- •Управление процессом обработки с помощью оператора sum.
- •Управление процессом обработки с помощью оператора on change of / endon.
Работа операторов exit, continue и check внутри цикла loop at/endloop.
для изменения обработки цикла чтения из внутренних таблиц показано в таблице:
Оператор |
Эффект |
exit |
Немедленно заканчивает цикл (обработка продолжается оператором после endloop) |
Continue |
Немедленно передает управление на endloop, обходя все последующие операторы в пределах цикла. Следующая строка читается из внутренней таблицы, и обработка продолжается от вершины цикла. Если нет больше строк для чтения, обработка продолжается первым оператором после endloop |
Check exp |
Если exp — истина, обработка продолжается, как будто этот оператор не был выполнен. Если exp — ложь, его эффект такой же, как и от continue |
Чтение единственной строки, используя оператор read table, формат оператора.
Для определения местоположения и чтения единственной строки из внутренней таблицы используют оператор read table. Он читает единственную строку, которая соответствует определенным критериям, и помещает ее в рабочую область.
Синтаксис оператора read table:
read table it [into wa] [index i | with key keyexp [binary search] ]
[comparing cmpexp]
[transporting texp].
где:
it — имя внутренней таблицы
wa — имя рабочей области
i — целочисленный literal, константа или переменная, представляющая относительный номера ряда. Например, 1 означает первую строку в таблице, 2 означает вторую и так далее
keyexp — выражение, представляющее значение, которое будет найдено
cmpexp — выражение сравнения, представляющее тест, который будет выполнен на найденной строке
texp — выражение, представляющее поля, которые будут транспортироваться в рабочую область после того, как строка будет найдена
(если определены и comparing, и transporting, то comparing должно быть на первом месте)
Дополнение index оператора read table, его особенности.
Внутренний индекс строки таблицы — номер строки. Например, первая строка в таблице имеет индекс 1, вторая — индекс 2 и так далее. Если в операторе read table определено дополнение index i, система читает i-ую строку из внутренней таблицы и помещает ее в рабочую область. Например,
read table it index 7.
читает седьмую строку из внутренней таблицы и помещает ее в строку заголовка.
Если чтение было успешным (i-ая строка существует), sy-subrc устанавливается в нуль, а sy-tabix — в i.
Дополнение index в операторе read table определяет местонахождение
единственной строки по ее относительному номеру ряда.
Дополнение with key keyexp оператора read table, его особенности.
Если определено with key keyexp, система находит строку, которая соответствует ключевому выражению и помещает ее в строку заголовка. Используя keyexp, можно определить единственную строку, которая будет прочитана. Если выражению соответствует более одной строки, то возвращается первая найденная (с самым малым индексом).
Ключевые выражения и их эффекты:
Keyexp |
Эффект |
c1 = v1 c2 = v2 ...
|
Определяет местоположение первой строки во внутренней таблице, где у компоненты c1 есть значение v1 и у компоненты c2 есть значение v2 и т.д. v1 — литерал, константа или переменная |
(f1) = v1 (f2) = v2 ... |
То же, что и выше, но f1 является переменной, содержащей имя компоненты, которая будет сравнена. Значение в f1 должно быть в верхнем регистре. Если f1 — пробел, сравнение проигнорировано |
= wa |
wa — рабочая область, идентичная по структуре строке внутренней таблицы. Это ключевое выражение определяет местоположение первой строки во внутренней таблице, чье содержимое точно равно содержимому wa. Пробелы обработаны как значения, которые будут найдены; они не соответствуют никакому значению, кроме пробелов |
wa |
wa — рабочая область, идентичная или короче, чем структура внутренней таблицы. Если у wa есть n полей, поля wa должны соответствовать первым n полям строки внутренней таблицы. Это ключевое выражение определяет местоположение первой строки во внутренней таблице, чьи первые n полей соответствуют содержимому wa. Пробелы обработаны как значения, которые будут найдены; они не соответствуют никакому значению, кроме пробелов. |