Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAP(Контрольная работа №4).doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
318.46 Кб
Скачать
  1. Особенности оператора form.

Определения подпрограмм обычно размещают в конце программы после всех событий. Оператор form определяет конец предыдущего события и начало подпрограммы. Подпрограммы не могут быть вложены в события.

Синтаксис оператора form:

form s [tables t1 t2 ...]

[using u1 value(u2) ...]

[changing c1 value(c2) ...].

---

endform.

где:

s — имя подпрограммы

t1, t2, u1, u2, c1 и c2 — параметры

Особенности использования оператора form:

  • все дополнения являются опциями

  • если дополнения присутствуют, то они должны следовать строго в приведенном выше порядке, т.е.: tables, using, changing

  • каждое дополнение может быть определено только один раз

  • нельзя использовать запятые для отделения параметров

  • tables используется для передачи только внутренних таблиц — не таблиц базы данных

  • подпрограмма может вызывать другую подпрограмму

  • поддерживается рекурсия — подпрограмма может вызвать сама себя или другую подпрограмму, которая, в свою очередь, вызывает первую

  • определения подпрограмм не могут быть вложены (нельзя определить подпрограмму внутри другой подпрограммы)

  1. Синтаксис оператора perform.

Синтаксис оператора perform:

perform a) s

b) n of s1 s2 s3 ...

[tables t1 t2 ...]

[using u1 u2 ...]

[changing c1 c2 ...].

где:

s, s1, s2, s3 — имена подпрограмм

n — числовая переменная

a) и b) являются взаимоисключающими

tables, using и changing могут появиться или с a) или с b)

дополнение value() не может использоваться с perform

Используя синтаксис b), можно определить, какая из списка подпрограмм должна быть выполнена. Выполняется n-ая подпрограмма из списка имен подпрограмм. Например, если n = 2, то будет выполнена вторая подпрограмма из списка.

  1. Операторы, используемые для выхода из подпрограммы.

Из подпрограммы можно выйти в любое время с использованием следующих операторов:

  • exit

  • check

  • stop

Далее описывается эффект check и exit, если они закодированы в подпрограмме вне цикла. Эффект stop в подпрограммах не зависит от того, записан он в цикле или нет.

В подпрограммах:

  • check и exit вызывают немедленный выход из подпрограммы и переход к оператору, следующему за perform

  • stop немедленно завершает подпрограмму и вызывает переход непосредственно в событие end-of-selection

check, exit и stop не устанавливает значение sy-subrc.

  1. Определение глобальных переменных.

Глобальная переменная — та, которая определена за пределами подпрограммы при использовании операторов:

    • tables

    • data

К ней можно обратиться из любой точки в программе, в событии или в подпрограмме. Определения глобальных переменных лучше помещать вверху программы перед первой строкой выполняемого кода.

  1. Определение локальных переменных.

Локальная переменная — переменная, которая определяется в подпрограмме с использованием операторов:

  • local

  • data

  • statics

Она, как говорят, является локальной в подпрограмме.

Переменные, определенные с использованием local, доступны снаружи подпрограммы; переменные, определенные с использованием data или statics, — нет. Поэтому, если подпрограмма вызывает другую подпрограмму, переменные, определенные с использованием local, видимы изнутри вызванных подпрограмм, переменные, определенные с использованием data или statics — нет.

Для локальных переменных, определенных с использованием local или data, память распределяется при каждом вызове подпрограммы. Эта память освобождается при завершении работы подпрограммы, и поэтому значения в ее пределах теряются. Для локальных переменных, определенных с использованием statics память сохраняется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]