Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

BC400_RU_ECC_2005

.pdf
Скачиваний:
1462
Добавлен:
21.05.2015
Размер:
40.8 Mб
Скачать

BC400

Урок: Экран

Рисунок 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]