BC400_RU_ECC_2005
.pdfBC400 |
Урок: Экран |
Рисунок 181: Предотвращение случайных кодов функций
Для устранения описанной выше нежелательной реакции программы необходимо обеспечить отсутствие случайно перенесенных кодов функций в экранном поле команды. Для этого имеется две возможности:
•инициализация внутренней переменной ok_code в PBO-модуле перед переносом поля на экран;
•добавление вспомогательного поля в обработку PAI, копирование в это поле значение переменной ok_code и немедленная инициализация ok_code.
|
© 2006 г. SAP AG All rights reserved. Авторские |
301 |
06-04-2006 |
права защищены. |
Глава 9: Диалоги пользователя |
BC400 |
302 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Экран |
Упражнение 14: Создание и вызов экрана
Цели упражнения
Выполнив это упражнение, вы сможете
•создавать экраны
•вызывать существующие экраны из программы
Практический пример
Программа SAPBC400UDT_DYNPRO позволяет просмотреть все бронирования одним турагентством в виде списка. Эту программу необходимо расширить следующим образом:
При двойном щелчке по строке появляется экран, содержащий поля просмотра и ввода для соответствующей записи бронирования. После каждой операции пользователя на экране программа осуществляется возврат к основному списку.
Задание 1:
Создание и вызов экрана
1.Скопируйте шаблон SAPBC400UDT_DYNPRO в новую программу
ZBC400_##_DYNPRO_1.
2.Ознакомьтесь с программой. Протестируйте программу с использованием номера турагентства 1##, где ## является номером группы.
3.Измените программу так, чтобы при выборе пользователем строки из основного списка (двойным щелчком или при помощи F2) вызывался экран. Создайте этот экран (номер экрана 100) с использованием навигации вперед.
4.При указании атрибутов присвойте номер экрана 0 в качестве номера следующего экрана для обеспечения возврата пользователя к основному списку после выполнения любой операции на экране 100.
Задание 2:
Размещение и ведение элементов экрана
1.Создайте на экране поля ввода/вывода для данных бронирования. Для присвоения типов полей используйте структуру SDYN_BOOK ABAP-словаря. Необходимо включить следующие поля:
Продолжение на следующей странице
|
© 2006 г. SAP AG All rights reserved. Авторские |
303 |
06-04-2006 |
права защищены. |
Глава 9: Диалоги пользователя |
BC400 |
Ключевые поля таблицы бронирования CARRID, CONNID, FLDATE и BOOKID необходимо скопировать вместе с названиями полей. Это относится и к полям CUSTOMID (номер клиента) и LOCCURAM (сумма).
Поле LOCCURKEY (код валюты) необходимо скопировать без названия поля. Оно появляется справа от поля суммы.
2.Выполните ведение атрибутов элементов экрана:
Поля CARRID, CONNID, FLDATE, BOOKID и CUSTOMID должны отображаться как поля вывода (атрибут Поле вывода).
В поле LOCCURAM соответствующее значение из программы должно отображаться как изменяемое (атрибуты Поле ввода + Поле вывода).
Поле кода валюты LOCCURKEY должно отображаться как неизменяемое поле только для просмотра без “рамки поля” (атрибут
Только вывод).
304 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Экран |
Решение 14: Создание и вызов экрана
Задание 1:
Создание и вызов экрана
1.Скопируйте шаблон SAPBC400UDT_DYNPRO в новую программу
ZBC400_##_DYNPRO_1.
a)Этот шаг выполняется в соответствии с обычной процедурой.
2.Ознакомьтесь с программой. Протестируйте программу с использованием номера турагентства 1##, где ## является номером группы.
a)Этот шаг выполняется в соответствии с обычной процедурой.
3.Измените программу так, чтобы при выборе пользователем строки из основного списка (двойным щелчком или при помощи F2) вызывался экран. Создайте этот экран (номер экрана 100) с использованием навигации вперед.
a)См. выдержку из исходного текста в примере решения.
b)Создайте экран с использованием навигации вперед: дважды щелкните по значению 100 в операторе CALL SCREEN 100..
4.При указании атрибутов присвойте номер экрана 0 в качестве номера следующего экрана для обеспечения возврата пользователя к основному списку после выполнения любой операции на экране 100.
a)Выполните ведение атрибутов экрана в соответствии с требованиями.
Задание 2:
Размещение и ведение элементов экрана
1.Создайте на экране поля ввода/вывода для данных бронирования. Для присвоения типов полей используйте структуру SDYN_BOOK ABAP-словаря. Необходимо включить следующие поля:
Ключевые поля таблицы бронирования CARRID, CONNID, FLDATE и BOOKID необходимо скопировать вместе с названиями полей. Это относится и к полям CUSTOMID (номер клиента) и LOCCURAM (сумма).
Продолжение на следующей странице
|
© 2006 г. SAP AG All rights reserved. Авторские |
305 |
06-04-2006 |
права защищены. |
Глава 9: Диалоги пользователя |
BC400 |
Поле LOCCURKEY (код валюты) необходимо скопировать без названия поля. Оно появляется справа от поля суммы.
a)Перейдите к графическому редактору форматов.
b)Используйте ключ Словарь/Программа.
c)Введите SDYN_BOOK.
d)Нажмите кнопку Вызов из словаря.
e)Выберите требуемые поля.
f)Для поля “LOCCURKEY” выберите опцию без текста.
g)Для подтверждения нажмите Enter и перетащите эти поля на экран.
2.Выполните ведение атрибутов элементов экрана:
Поля CARRID, CONNID, FLDATE, BOOKID и CUSTOMID должны отображаться как поля вывода (атрибут Поле вывода).
В поле LOCCURAM соответствующее значение из программы должно отображаться как изменяемое (атрибуты Поле ввода + Поле вывода).
Продолжение на следующей странице
306 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Экран |
Поле кода валюты LOCCURKEY должно отображаться как неизменяемое поле только для просмотра без “рамки поля” (атрибут
Только вывод).
a)Для перехода к атрибутам поля дважды щелкните по элементу экрана или используйте кнопку Список элементов.
Результат
Выдержка из исходного текста: SAPBC400UDS_DYNPRO_1
REPORT sapbc400uds_dynpro_1.
CONSTANTS actvt_display TYPE activ_auth VALUE ’03’.
PARAMETERS pa_anum TYPE sbook-agencynum.
* workarea for SELECT DATA wa_sbook TYPE sbook.
START-OF-SELECTION.
SELECT carrid connid fldate bookid
FROM sbook
INTO CORRESPONDING FIELDS OF wa_sbook
WHERE agencynum = pa_anum.
AUTHORITY-CHECK OBJECT ’S_CARRID’
ID ’CARRID’ FIELD wa_sbook-carrid
ID ’ACTVT’ FIELD actvt_display.
IF sy-subrc = 0.
WRITE: / wa_sbook-carrid COLOR col_key, wa_sbook-connid COLOR col_key, wa_sbook-fldate COLOR col_key, wa_sbook-bookid COLOR col_key,
ENDIF.
ENDSELECT.
AT LINE-SELECTION.
CALL SCREEN 100.
|
© 2006 г. SAP AG All rights reserved. Авторские |
307 |
06-04-2006 |
права защищены. |
Глава 9: Диалоги пользователя |
BC400 |
308 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |
BC400 |
Урок: Экран |
Упражнение 15: Экраны: перенос данных
Цели упражнения
Выполнив это упражнение, вы сможете
•заполнять поля экрана данными из программы
Практический пример
Экран программы ZBC400_##_DYNPRO должен отображать подробные данные выбранной записи бронирования. Необходимо обеспечить возможность изменения данных пользователем в программе после выхода из экрана.
Задание 1:
Подготовка
1.Расширьте программу ZBC400_##_DYNPRO_1 или скопируйте шаблон SAPBC400UDS_DYNPRO_1 с присвоением ему нового имени ZBC400_##_DYNPRO_2 для дальнейшей обработки.
2.Для создания рабочей области в программе используйте оператор TABLES. Эта рабочая область будет использоваться в качестве интерфейса экрана. Она должна иметь то же имя, что и структура, используемая на экране.
3.Проверьте доступность ключевых полей выбранной записи бронирования при выборе пользователем строки основного списка
(HIDE).
Задание 2:
Проверка полномочий и сбор данных перед вызовом экрана
1.Требуется изменить программу для обеспечения возможности изменения данных в базе данных. Проверьте, что обработка экрана возможна только при наличии у пользователя полномочий на изменение данных выбранной авиакомпании. Если пользователь не имеет полномочий, выполняется возврат к основному списку с выводом сообщения 047 класса BC400. Используется вид сообщения "S".
При наличии у пользователя необходимых полномочий выполняется считывание выбранных записей (всех полей) из таблицы базы данных SBOOK в рабочей области wa_sbook. При этом единичном доступе
Продолжение на следующей странице
|
© 2006 г. SAP AG All rights reserved. Авторские |
309 |
06-04-2006 |
права защищены. |
Глава 9: Диалоги пользователя |
BC400 |
также осуществляется сбор информации об отсутствующих данных бронирования и проверка актуальности данных, доступных для вывода на экран.
2.Непосредственно перед вызовом экрана соответствующие данные копируются из wa_sbook в рабочую область TABLES для их автоматического переноса в экран.
310 |
© 2006 г. SAP AG All rights reserved. Авторские |
|
права защищены. |
06-04-2006 |