Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 17 День 17 События и подпрограммы 2011.doc
Скачиваний:
20
Добавлен:
24.11.2019
Размер:
177.66 Кб
Скачать

17

Модуляризация: События и Подпрограммы (День 17)

Вопросы:

  • типы модулей, доступных в ABAP/4

  • события ABAP/4

  • события initialization, start-of-selection, и end-of-selection

  • внутренние и внешние подпрограммы

  • глобальные, локальные и статические переменные и рабочие области таблицы

  • использование exit, check, и stop в пределах событий и подпрограмм

1. Модули в abap/4

Модуль (modularization unit) – оболочка, в которую Вы можете поместить код. Он позволяет выделять группу строк программы от остальных, и затем выполнять их в определенное время. Программы в пределах модуля действуют как подпрограммы, которую можно вызвать из другой программы.

ABAP/4 содержит три типа модулей:

  • События

  • Подпрограммы

  • Функциональные модули

1. Events (События).

Программы ABAP/4 управляемы событиями.

Событие (event) – тэг, который идентифицирует раздел кода. Раздел кода, связанный с событием, начинается с названия события и заканчивается тогда, когда начинается следующее событие. Основные события – initialization, start-of-selection, и end-of-selection. Названия события – зарезервированные слова. Вы не можете создать новые события. Вы можете только использовать существующие.

Три основных события

report ztx1701.

initialization.

write / '1'.

start-of-selection.

write / '2'.

end-of-selection.

write / '3'.

1

2

3

Программа драйвера (driver program) – программа, которая управляет другой программой. Программы драйвера находятся в системе R/3. Когда Вы запускаете свою программу, сначала начинает работать программа драйвера, которая управляет событиями в Вашей программе.

Код, связанный с событием, вызван оператором в программе драйвера. События вызываются программой драйвера в предопределенной последовательности.

Порядок выполнения событий определен программой драйвера, а не Вашей программой. Поэтому, Вы можете записывать события в любом порядке, однако порядок выполнения событий будет одним и тем же. Порядок событий в Вашей программе не имеет значения; они будут всегда вызываться в той последовательности, в которой записаны в программе драйвера.

report ztx1702.

data f1 type i value 1.

end-of-selection.

write: / '3. f1 =', f1.

start-of-selection.

write: / '2. f1 =', f1.

f1 = 99.

Initialization.

write: / '1. f1 =', f1.

add 1 to f1.

1. f1 = 1

2. f1 = 2

3. f1 = 99

Последовательность выполнения всегда – initialization, start-of-selection, end-of-selection. Также есть другие события; некоторые происходят после initialization, некоторые происходят между start-of-selection и end-of-selection.

Программисты обычно записывают события в порядке их выполнения.

Есть одиннадцать различных событий в 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

События драйвера вызваны программой драйвера. Пользовательские события вызваны пользователем через пользовательский интерфейс. События программы – вызванные изнутри Вашей программы.

Использование событий с оператором write. У событий есть два необычных эффекта при использовании их с оператором write:

  • Если у программы будет экран выбора, и оператор write записан перед событием start-of-selection то Вы не будете видеть вывод.

  • Новое событие всегда начинает новую строку в выводе.

Событие top-of-page. Выполняется в начале страницы.

Событие start-of-selection. Выполняется в начале выбора.

report ztx1703 no standard page heading.

parameters p1(8).

write: / 'p1 =', p1.