Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Что такое событие. Основные события.

Событие (event) — тэг, который идентифицирует раздел кода. Раздел кода, связанный с событием, начинается с имени события и заканчивается тогда, когда встречается имя следующего события. Основные события:

Initialization

Start-of-selection

End-of-selection

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

 

3. Программа драйвера.

Программа драйвера (driver program) — это программа, которая управляет другой (управляемой, driven) программой. SAP поставляет программы драйвера вместе с системой R/3. Вы поставляете управляемую (driven) программу.

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

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

Затем программа драйвера выполняет следующую последовательность шагов:

§ Она вызывает событие initialization, вызывая к выполнению код, принадлежащий initialization. Если Вы не закодировали событие initialization в своей программе, программа драйвера пропускает этот шаг

§ Она отображает экран выбора (selection screen) для Вашей программы (экран выбора — экран, который содержит входные поля для Ваших операторов parameter). Если у Вашей программы нет экрана выбора, она пропускает этот шаг

§ Она вызывает событие start-of-selection, вызывая к выполнению код, принадлежащий этому событию. Если Вы не закодировали событие start-of-selection в своей программе, она пропускает этот шаг

§ Она вызывает событие end-of-selection в Вашей программе, выполняя весь код, принадлежащий ему. Если Вы не закодировали end-of-selection, она пропускает этот шаг

§ Она отображает пользователю список вывода (list)

 

Порядок выполнения событий, определенный программой драйвера.

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

Report ztx1702.

Data f1 type i value 1.

End-of-selection.

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

Start-of-selection.

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

9 f1 = 99.

Initialization.

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

Add 1 to f1.

1. f1 = 1

2. f1 = 2

3. f1 = 99

 

§ При запуске ztx1702 программа драйвера стартует первой

§ Она вызывает событие initialization

§ Выполняется код, связанный с initialization (строки 12 и 13). Выводится значение f1, и к нему добавляется 1. Затем управление возвращается к программе драйвера

§ Программа драйвера ищет экран выбора. Его нет в этой программе, поэтому она ищет событие start-of-selection. Она находит его в строке 7 и выполняет переход к строке 8 программы ztx1702. Выполняются строки 8 и 9, и затем управление возвращается к драйверу

§ Затем программа драйвера ищет событие end-of-selection. Найдя его в строке 4, она передает управление строке 5 программы ztx1702. Событию end-of-selection принадлежит только строка 5, поэтому она выполняется, и затем управление возвращается к драйверу

§ Затем драйвер выводит пользователю список вывода

 

5. События 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

 

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

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

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. Если нужно установить это значение, можно присвоить числовое значение этой переменной перед остановкой.

 

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

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

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

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

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

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

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

Определения подпрограмм обычно размещают в конце программы после всех событий. Оператор 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, то будет выполнена вторая подпрограмма из списка.





Поделиться с друзьями:


Дата добавления: 2017-01-21; Мы поможем в написании ваших работ!; просмотров: 776 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2487 - | 2329 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.