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

В ABAP/4 есть одиннадцать различных событий, они категоризированы согласно тому, как они вызываются.

События ABAP/4:

Категория

Events

Driver

initialization

at selection-screen

start-of-selection

get end-of-selection

User

at line-selection

at pfn at user-command

Program

top-of-page end-of-page

  1. Операторы, используемые для прекращения событий.

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

  • exit

  • check

  • stop

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

Во всех событиях:

  • check немедленно прекращает текущее событие и вызывает переход к следующему событию (или действию, такому как отображение экрана выбора или списка вывода)

  • stop немедленно останавливает текущее событие и осуществляет переход к событию end-of-selection. Выполнение оператора stop в пределах end-of-selection прекращает событие. Он не вызывает бесконечный цикл

В событиях, которые происходят перед start-of-selection:

  • exit и check ведут себя одинаково — они оба немедленно прекращают события и вызывают переход к следующему событию (или действию, такому как отображение экрана выбора)

В start-of-selection и событиях, которые происходят после него:

  • exit заканчивает отчет и отображает список вывода. Существует единственное исключение — в пределах top-of-page оператор exit ведет себя как check

  • check прекращает событие и вызывает переход к следующему событию (или действию, такому как отображение списка вывода)

check, exit и stop не устанавливают значение sy-subrc. Если нужно установить это значение, можно присвоить числовое значение этой переменной перед остановкой.

  1. Типы подпрограмм.

Подпрограмма (subroutine) — раздел многократного использования кода. Она похожа на минипрограмму, которую можно вызвать из другого пункта программы. В ее пределах можно определять переменные, выполнять операторы, вычислять результаты и производить вывод. Для определения подпрограммы используются оператор form — для указания начала подпрограммы, и endform — для указания конца подпрограммы. Имя подпрограммы не может превысить 30 символов.

Для вызова подпрограммы используется оператор perform.

Есть два типа подпрограмм:

  • внутренние подпрограммы (Internal subroutines)

  • внешние подпрограммы (External subroutines)

  1. Определение и вызов внутренних подпрограмм.

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

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

form s [tables t1 t2 ...]

[using u1 value(u2) ...]

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

---

endform.

где:

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

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

tables определяет внутренние таблицы, которые должны быть переданы как параметры

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

дополнение value может быть применено к любым переменным, которые передаются с использованием using или changing

--- — любое число строк программы

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

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

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

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

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

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

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

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

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

Синтаксис оператора 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, то будет выполнена вторая подпрограмма из списка.

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