- •Что такое внутренняя таблицы, её тело и строка заголовка.
- •Определение внутренней таблицы со строкой заголовка используя 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.
Управление процессом обработки с помощью оператора sum.
Оператор sum используется для вычисления общих количеств для текущего значения уровня управления.
Синтаксис оператора:
at first/last/new/end of.
---
sum.
---
endat.
где --- — любое число строк программы
Оператор выполняет следующие действия:
находит все строки, у которых есть те же значения в пределах поля уровня управления и всех полей слева от него
суммирует каждый числовой столбец справа от уровня управления
помещает общие количества в соответствующие поля рабочей области
Управление процессом обработки с помощью оператора on change of / endon.
Оператор on change of аналогичен оператору at new. Синтаксис оператора:
on change of v1 [or v2 . . .].
---
[else.
---]
endon.
где:
v1 и v2 — имена переменных или Field String
. . . указывает, что может использоваться любое число or
--- — любое число строк программы
Особенности использования оператора on change of:
Если значение любой из переменных (v1, v2 и так далее) изменено от одного теста до следующего, выполняются операторы, следующие после on change of
Если никаких изменений не обнаружено и else определено, выполняются операторы после else
Оператор on change of отличается от at new следующим:
Он может использоваться в любой конструкции цикла, не только в loop at. Например, он может использоваться в select-endselect, do-enddo или while-endwhile, а также внутри события get
Один on change of может быть вызван изменением одного или более полей, названных следом и отделенных or. Эти поля могут быть элементарными полями или Field Strings. В пределах цикла эти поля не должны принадлежать циклу
При использовании в цикле изменение в поле слева от уровня управления не вызывает разрыв управления
При использовании в цикле поля справа все еще содержат свои оригинальные значения; они не изменены на нули или звездочки
Можно использовать else между on change of и endon
Можно использовать с циклом loop at it where . . .
Можно использовать sum c on change of (это суммирует все числовые поля кроме поля(ей), названного(ых) после of)
Любые изменения значений в пределах on change of сохраняются после endon. Содержимое строки заголовка не восстанавливается, поскольку оно используется для at и endat
Когда цикл начинает выполнение, система создает глобальное вспомогательное поле для каждого поля, указанного в операторе on change of. При создании этим полям присваиваются заданные по умолчанию начальные значения (пробелы или нули). Созданные поля освобождаются по завершении цикла. Каждый раз при выполнении on change of, содержимое его полей сравниваются с содержимым глобальных вспомогательных полей. Если они различны, то выполняется on change of, и вспомогательные поля обновляются новыми значениями. Если они совпадают, код в пределах on change of не выполняется. Поскольку глобальные вспомогательные поля не существуют вне цикла, нельзя использовать on change of за пределами цикла.
