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

BC400_RU_ECC_2005

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

BC400

Урок: Списки

Рисунок 137: Простой пример синтаксиса

Показанная выше программа-образец имеет следующую функцию:

В основном списке выводится текст “ Основной список ” вместе с текущим значениемsy-lsind, равным нулю.

При выборе строки основного списка во вторичном списке появляется текст “ 1-ый вторичный список ” с текущим значением sy-lsind, равным единице.

При выборе строки из вторичного списка появляется второй вторичный список, в котором выводится текст “ 2-ой вторичный список ” с текущим значением sy-lsind, равным двум.

При выборе строки во втором вторичном списке значение sy-lsind увеличивается до 3, но следующий вторичный список не создается. Поэтому значениеsy-lsind автоматически уменьшается на одну единицу, и на экране снова отображается второй вторичный список.

 

© 2006 г. SAP AG All rights reserved. Авторские

241

06-04-2006

права защищены.

Глава 9: Диалоги пользователя

BC400

Рисунок 138: Пример использования вторичного списка

На рисунке выше показан пример программы, в которой используется основной и вторичный список:

Направления авиаперелетов с подробными данными должны отображаться в основном списке. Они считываются из таблицы базы данных SPFLI.

Во вторичном списке должно отображаться расписание рейсов для выбранного направления с соответствующими подробными данными. Они считываются из таблицы базы данных SFLIGHT.

Для выбора соответствующей информации для вторичного списка (после выбора строки в основном списке) выбранная строка или, по крайней мере, ключевые значения этой строки должны быть доступны для события AT LINE-SELECTION. Данная процедура показана на следующем рисунке.

242

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Списки

Рисунок 139: Буферизация специфичных для строки данных в скрытой области

Для получения доступа к ключевым значениям выбранной строки

после выбора строки основного списка следует внедрить описанную ниже процедуру:

Для каждой строки основного списка соответствующие ключевые значения хранятся в скрытой области в пределах программы.

При выборе строки данные, скрытые для этой определенной строки, снова становятся доступными.

Для сохранения специфичных для строки ключевых значений в скрытой области используется оператор HIDE (здесь: HIDE: wa_spfli-carrid, wa_spfli-connid.), который должен выполняться сразу после генерации каждой строки основного списка. После выбора строки соответствующие ключевые значения переносятся обратно в исходные поля (здесь: wa_spfli-carrid и wa_spfli-connid), и инициируется событие AT LINE-SELECTION. Эта процедура показана на рисунке ниже.

Рекомендация: Предварительный вывод полей HIDE с помощью оператора WRITE не требуется. Это означает, что с помощью оператора HIDE для каждой строки основного списка можно также сохранить информацию, которая не появляется в основном списке, в скрытой области. Поле HIDE может также являться “плоской” структурой.

 

© 2006 г. SAP AG All rights reserved. Авторские

243

06-04-2006

права защищены.

Глава 9: Диалоги пользователя

BC400

Рисунок 140: Поток данных для выбора строк

Рекомендация: В отличие от основных списков, вторичные списки не имеют фиксированных стандартных заголовков, поскольку эти заголовки могут присваиваться динамически. Следовательно, может возникнуть необходимость внедрения собственных заголовков с использованием операторов WRITE.

На следующем рисунке показан весь блок AT LINE-SELECTION программы-образца. В этом блоке данные (здесь: расписание рейсов) в основном считываются и выводятся с помощью скрытых значений, которые были перенесены обратно в исходные поля.

244

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Списки

Рисунок 141: Экран исходного текста (пример приложения)

Рекомендация: Программа-образец имеет имя

SAPBC400UDD_DETAIL_LIST и является компонентом пакета BC400.

 

© 2006 г. SAP AG All rights reserved. Авторские

245

06-04-2006

права защищены.

Глава 9: Диалоги пользователя

BC400

246

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Списки

Упражнение 12: Списки

Цели упражнения

Выполнив это упражнение, вы сможете

внедрять в программу вторичные списки

Практический пример

При выборе пользователем строки основного списка на экране должен появляться вторичный список с подробной информацией.

Задание 1:

Подготовка к генерации вторичного списка

1.Скопируйте программу ZBC400_##_SELECT_SFLIGHT или соответствующий шаблон SAPBC400DDS_AUTHORITY_CHECK в новую программу ZBC400_##_DETAIL_LIST.

2.Убедитесь в том, что соответствующие ключевые значения для создания вторичного списка будут доступны в программе после выбора строки основного списка (даты рейса).

3.Для создания основного и вторичного списка в программу необходимо внедрить два функциональных блока.

Задание 2:

Создание вторичного списка

1.В первой строке вторичного списка выведите ключевую информацию из выбранного расписания рейсов. Ниже поместите горизонтальную линию и одну пустую строку.

2.Из таблицы базы данных SBOOK должны выбираться все записи о бронировании для выбранного расписания рейсов с последующим выводом во вторичном списке. Для вывода каждой записи о бронировании должны считываться только следующие поля:

BOOKID, CUSTOMID, CUSTTYPE, CLASS, ORDER_DATE, SMOKER, CANCELLED.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

247

06-04-2006

права защищены.

Глава 9: Диалоги пользователя

BC400

3.Дополнительно: Во вторичном списке выведите поля LOCCURAM

иLOCCURKEY: для этого необходимо использовать дополнение CURRENCY к оператору WRITE, которое позволит проверить, что сумма LOCCURAM отформатирована согласно валюте LOCCURKEY.

Рекомендация:

WRITE: wa_sbook-loccuram

CURRENCY wa_sbook-loccurkey, wa_sbook-loccurkey.

4. Дополнительно: Выведите поле BOOKID с использованием цвета

COL_KEY.

248

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

BC400

Урок: Списки

Решение 12: Списки

Задание 1:

Подготовка к генерации вторичного списка

1.Скопируйте программу ZBC400_##_SELECT_SFLIGHT или соответствующий шаблон SAPBC400DDS_AUTHORITY_CHECK в новую программу ZBC400_##_DETAIL_LIST.

a)Этот шаг выполняется в соответствии с обычной процедурой.

2.Убедитесь в том, что соответствующие ключевые значения для создания вторичного списка будут доступны в программе после выбора строки основного списка (даты рейса).

a)См. выдержку из исходного текста в примере решения.

3.Для создания основного и вторичного списка в программу необходимо внедрить два функциональных блока.

a)См. выдержку из исходного текста в примере решения.

Задание 2:

Создание вторичного списка

1.В первой строке вторичного списка выведите ключевую информацию из выбранного расписания рейсов. Ниже поместите горизонтальную линию и одну пустую строку.

a)См. выдержку из исходного текста в примере решения.

2.Из таблицы базы данных SBOOK должны выбираться все записи о бронировании для выбранного расписания рейсов с последующим выводом во вторичном списке. Для вывода каждой записи о бронировании должны считываться только следующие поля:

BOOKID, CUSTOMID, CUSTTYPE, CLASS, ORDER_DATE, SMOKER, CANCELLED.

a)См. выдержку из исходного текста в примере решения.

Продолжение на следующей странице

 

© 2006 г. SAP AG All rights reserved. Авторские

249

06-04-2006

права защищены.

Глава 9: Диалоги пользователя

BC400

3.Дополнительно: Во вторичном списке выведите поля LOCCURAM

иLOCCURKEY: для этого необходимо использовать дополнение CURRENCY к оператору WRITE, которое позволит проверить, что сумма LOCCURAM отформатирована согласно валюте LOCCURKEY.

Рекомендация:

WRITE: wa_sbook-loccuram

CURRENCY wa_sbook-loccurkey, wa_sbook-loccurkey.

a)См. выдержку из исходного текста в примере решения.

4.Дополнительно: Выведите поле BOOKID с использованием цвета

COL_KEY.

a)См. выдержку из исходного текста в примере решения.

Результат

Выдержка из исходного текста (без необязательных компонентов):

SAPBC400UDS_DETAIL_LIST

REPORT sapbc400uds_detail_list.

CONSTANTS actvt_display TYPE activ_auth VALUE ’03’.

DATA: wa_flight TYPE sbc400focc, wa_sbook TYPE sbook.

PARAMETERS pa_car TYPE s_carr_id.

START-OF-SELECTION.

AUTHORITY-CHECK OBJECT ’S_CARRID’

ID ’CARRID’ FIELD pa_car

ID ’ACTVT’ FIELD actvt_display.

CASE sy-subrc.

WHEN 0.

SELECT carrid connid fldate seatsmax seatsocc FROM sflight

INTO CORRESPONDING FIELDS OF wa_flight

WHERE carrid = pa_car.

Продолжение на следующей странице

250

© 2006 г. SAP AG All rights reserved. Авторские

 

права защищены.

06-04-2006

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