ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.04.2021

Просмотров: 770

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 

46 

 

 
Заметьте,  что  транзакция  пока  никак  не  связана  с  вызываемой  программой.  Связь 
между  кодом  транзакции  и  программой  будет  настроена  позже  в  свойствах 
транзакции.  Это  значит,  что  вы  можете  вызывать  программу  с  названием, 
отличающимся  от  кода  транзакции.  Например,  навигатор  по  объектам  вызывается 
кодом SE80.  
 

 

 
В  свойствах  транзакции  вы  можете  определить  вызываемую  программу.  Введите  
название  «

ZY_*##_DYNPRO

»  и  номер  экрана 

100

.  Проверьте  и  сохраните 

Введите 

свойства 


background image

 

47 

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

«Логика  выполнения».

 

Здесь 

отображается  логика  выполнения  первого  экрана,  разделенная  на  этапы 

«до 

вывода»

 

и 

«после ввода»

. Добавьте следующий код: 

 

 

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

MODULE 

STATUS

_0100»

 

в  логике  выполнения  и  дважды  нажмите  на 

«

STATUS_0100

».  Появится  вопрос,  хотите  ли  вы  создать  новый  модуль.  Выберите 

«Да»

.  

 

 

 
Система автоматически предложит название для нового модуля. Название для  PBO-
модуля  нам  подходит,  а  название  нового  include  нет.  Добавьте  «

ZY_

»  в  начало 

названия  нового  include.  Нажав  Enter,  вы  увидите  сообщение  о  том,  что 
дополнительный include появился в программе. 
 
Это  логично,  так  как  вы  создаете  новый  include  для  строки  состояния,  и  он  должен 
быть  включен  в  программу.  Дважды  нажмите  на  модуль 

STATUS_0100

,  чтобы 

перейти к его исходному коду. 

Протестируйте и 

получите ошибку 

ABAP 

Добавьте код 

Разкомментируйте и 

дважды нажмите 

Переименуйте 

include 


background image

 

48 

 

 
Раскомментируйте  обе  строки 

SET

 

и  замените 

«xxx»

 

на  номер  «

100

».  Теперь  вы 

настроите  панель  статуса  и  строку  заголовка  для  вашего  экрана.  Для  этого  дважды 
щелкните  на  цифру 

«100»

 

после  «

PF-STATUS

».  Система  спросит,  хотите  ли  вы 

создать  статус.  Ответьте 

«Да»

 

и  введите  краткое  описание  на  следующем  экране. 

После появится следующее окно: 
 

 

 
Здесь вы можете создавать, редактировать и удалять панель статуса своего экрана. 
Вы можете изменить код, передаваемый каждой кнопкой программе. Кнопки, которым 
никакой код не присвоен, впоследствии будут недоступны. Настройте кнопку 

«Назад»,

 

добавив  текст  «

BACK

»  в  соответствующее  поле.  Сохраните  панель  статуса  и 

вернитесь к коду программу. Дважды щелкните на «

100

» после «

TITLEBAR

». 

 

PF-STATUS 

TITLEBAR 


background image

 

49 

 

 
 
 
Заполните  строку  заголовка.  Сохраните  и  активируйте  все  созданные  объекты  и 
протестируйте программу. Она должна выглядеть схожим образом: 
 

 

 
Теперь  закончим  логику  выполнения.  Перейдите  к  экрану  «

100

»  на  вкладку 

«ЛогикаВыполн.»

.  Раскомментируйте  строку  «

USER_COMMAND_0100

»  и  дважды 

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

«Да»

 

и исправьте название include: удалите последние 3 знака названия и добавьте 

«

ZY_

» в начало.  

 

 

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

ok_code

» программа 

должна либо прекращать свою работу («

BACK

») либо считывать данные из таблицы 

SPFLI

 

SELECT

»). Добавьте инструкцию 

«CASE»

 

USER_COMMAND

_0100 

CASE  


background image

 

50 

 

Сохраните, проверьте и активируйте все свои объекты. 
 
Совет: 
Заметьте, что инструкция CASE чувствительна к регистру. Это означает, что «back» и 
«BACK»  отличаются  при  использовании  в  инструкции  CASE!  Это  довольно 
распространенная ошибка. 
 

Задание 3: Создание второго экрана 

Краткое описание:

 

Создайте второй экран, чтобы отобразить сведения о рейсе. 

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

200

».  Посмотрите  задание  2,  если  не  помните,  как  это 

делается. Установите экран «

100

» 

«следующим экраном».

  

Совет 

Экран 200