Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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'.

Программа драйвера (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.

 

initialization.

p1 = 'Init'.

 

end-of-selection.

write: /(14) sy-uline,

/ 'End of program'.

 

top-of-page.

write: / 'This is My Title'.

skip.

This is My Title

p1 = INIT

--------------

End of program

Нельзя помещать вызов событий в операторы условий и цикла. Это вызовет ошибку!!! Пример неправильного вызова:

report ztx1704.

data f1.

 

start-of-selection.

f1 = 'A'.

 

if f1 = 'A'.

end-of-selection.

write: / f1.

endif.

У событий более высокий приоритет чем других операторов ABAP/4. Вы не должны помещать определения данных в пределах событий. Хотя это не вызывает синтаксическую ошибку, это – плохой стиль программирования. Все определения данных должны быть сделаны в начале программы.

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

  • exit
  • check
  • stop

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




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


Дата добавления: 2014-01-07; Просмотров: 919; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.