ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.04.2021
Просмотров: 768
Скачиваний: 3
46
Заметьте, что транзакция пока никак не связана с вызываемой программой. Связь
между кодом транзакции и программой будет настроена позже в свойствах
транзакции. Это значит, что вы можете вызывать программу с названием,
отличающимся от кода транзакции. Например, навигатор по объектам вызывается
кодом SE80.
В свойствах транзакции вы можете определить вызываемую программу. Введите
название «
ZY_*##_DYNPRO
» и номер экрана
100
. Проверьте и сохраните
Введите
свойства
47
транзакцию, активируйте все ваши разработки, если они все еще не были
активированы.
Чтобы протестировать программу, откройте новый режим и вызовите программу,
используя код транзакции. Вы увидите текст и два поля ввода. Первое поле снабжено
справкой по значению, а второе нет. При нажатии созданной кнопки, вы увидите
ошибку ABAP. Это логично, ведь вы определили следующим экраном экран 200, а его
все еще не существует.
Вернитесь в программу и переключитесь на вкладку
«Логика выполнения».
Здесь
отображается логика выполнения первого экрана, разделенная на этапы
«до
вывода»
и
«после ввода»
. Добавьте следующий код:
Почему этот код важен, можно показать очень легко в программе. Запустите
программу еще раз и протестируйте ее поведение. Вы заметите, что оба поля ввода
имеют справку по значению. Вторая справка формируется на основе того, что
введено в первое поле и показывает только рейсы, выполняемые выбранной
авиакомпанией.
Прежде чем закончить логику выполнения, разберемся со строкой состояния и
названием программы. Для этого уберите значок комментария около строки
«
MODULE
STATUS
_0100»
в логике выполнения и дважды нажмите на
«
STATUS_0100
». Появится вопрос, хотите ли вы создать новый модуль. Выберите
«Да»
.
Система автоматически предложит название для нового модуля. Название для PBO-
модуля нам подходит, а название нового include нет. Добавьте «
ZY_
» в начало
названия нового include. Нажав Enter, вы увидите сообщение о том, что
дополнительный include появился в программе.
Это логично, так как вы создаете новый include для строки состояния, и он должен
быть включен в программу. Дважды нажмите на модуль
STATUS_0100
, чтобы
перейти к его исходному коду.
Протестируйте и
получите ошибку
ABAP
Добавьте код
Разкомментируйте и
дважды нажмите
Переименуйте
include
48
Раскомментируйте обе строки
SET
и замените
«xxx»
на номер «
100
». Теперь вы
настроите панель статуса и строку заголовка для вашего экрана. Для этого дважды
щелкните на цифру
«100»
после «
PF-STATUS
». Система спросит, хотите ли вы
создать статус. Ответьте
«Да»
и введите краткое описание на следующем экране.
После появится следующее окно:
Здесь вы можете создавать, редактировать и удалять панель статуса своего экрана.
Вы можете изменить код, передаваемый каждой кнопкой программе. Кнопки, которым
никакой код не присвоен, впоследствии будут недоступны. Настройте кнопку
«Назад»,
добавив текст «
BACK
» в соответствующее поле. Сохраните панель статуса и
вернитесь к коду программу. Дважды щелкните на «
100
» после «
TITLEBAR
».
PF-STATUS
TITLEBAR
49
Заполните строку заголовка. Сохраните и активируйте все созданные объекты и
протестируйте программу. Она должна выглядеть схожим образом:
Теперь закончим логику выполнения. Перейдите к экрану «
100
» на вкладку
«ЛогикаВыполн.»
. Раскомментируйте строку «
USER_COMMAND_0100
» и дважды
щелкните по ней. Вам будет задан вопрос, хотите ли вы создать объект. Ответьте
«Да»
и исправьте название include: удалите последние 3 знака названия и добавьте
«
ZY_
» в начало.
Присвойте новый модуль своему пакету. На следующем шаге вы должны добавить
логику выполнения в этот модуль. В зависимости от значения «
ok_code
» программа
должна либо прекращать свою работу («
BACK
») либо считывать данные из таблицы
SPFLI
(«
SELECT
»). Добавьте инструкцию
«CASE»
:
USER_COMMAND
_0100
CASE
50
Сохраните, проверьте и активируйте все свои объекты.
Совет:
Заметьте, что инструкция CASE чувствительна к регистру. Это означает, что «back» и
«BACK» отличаются при использовании в инструкции CASE! Это довольно
распространенная ошибка.
Задание 3: Создание второго экрана
Краткое описание:
Создайте второй экран, чтобы отобразить сведения о рейсе.
Вы создали первый экран, чтобы пользователь мог выбрать авиарейс, но теперь
нужен второй, чтобы вывести туда сведения о нем.
Создайте экран с номером «
200
». Посмотрите задание 2, если не помните, как это
делается. Установите экран «
100
»
«следующим экраном».
Совет
Экран 200