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

BC400_RU_ECC_2005

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

BC400

Урок: Экран выбора

Рисунок 147: Варианты

Созданные экраны выбора являются вариантами программы.

После запуска программы пользователь может загрузить варианты в соответствующий экран выбора для упрощения ввода повторяющихся идентичных или почти идентичных данных. Если ABAP-программа, в

которую внедрен экран выбора, планируется для выполнения в фоновом режиме, вариант необходимо включить в соответствующее фоновое задание, так как в фоновом режиме ввод пользователя невозможен.

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

Если варианты для программы уже определены, то на экране выбора появляется дополнительная кнопка с текстом “ Вызвать вариант... ”. При нажатии этой кнопки отображается список определенных вариантов выбора.

Для получения возможности определения собственного варианта пользователь должен быть наделен соответствующими полномочиями (в продуктивной системе). Также можно определить варианты в системе разработок и затем перенести их в продуктивную систему. Варианты с префиксом "CUS&" представляют собой системные варианты. Они переносятся как обычные объекты репозитария и являются не зависящими от манданта. Все другие варианты являются зависящими от манданта и должны переноситься отдельно. В ABAP-редакторе выберите Перейти к → Варианты для перехода к функции управления вариантами программы,

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

Для получения дополнительной информации о вариантах нажмите кнопку

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

 

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

261

06-04-2006

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

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

BC400

Опции ввода на экране выбора

Рисунок 148: Ввод отдельного значения (оператор PARAMETERS)

На рисунке выше показано использование и обработка во время выполнения переменной ввода, определенной с помощью оператора PARAMETERS. На основе определения такой переменной ввода в системе создается переменная и неявно генерируется экран выбора с соответствующей опцией ввода.

Переменная ввода определяется таким же образом, как и обычная переменная. Единственное различие состоит в том, что вместо DATA используется ключевое слово PARAMETERS.

Необходимо учитывать три особенности:

Имя переменной ввода может состоять не более чем из 8 символов.

Переменная не обязательно должна относиться к стандартным типам F, STRING и XSTRING.

Присвоение значения по умолчанию внедряется не дополнением

VALUE, а дополнением DEFAULT.

Значение по умолчанию, присвоенное посредством дополнения DEFAULT, или значения, присвоенные до вывода экрана выбора (INITIALIZATION), отображаются на экране выбора как значения по умолчанию, которые могут быть перезаписаны.

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

262

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

 

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

06-04-2006

BC400

Урок: Экран выбора

Рисунок 149: Ввод сложных ограничений (оператор SELECT-OPTIONS)

Критерии выбора определяются при помощи оператора

SELECT-OPTIONS name FOR data_object.

где name является именем критерия выбора, а data_object – уже определенной переменной. На основе такого определения в рамках программы создается внутренняя таблица с определенным именем (в данном случае so_car) и генерируется экран выбора с возможностью ввода данных для ограничения указанной переменной (в данном случае

wa_spfli-carrid).

При нажатии Выполнить записи пользователя переносятся в автоматически сгенерированную внутреннюю таблицу. Эта таблица всегда состоит из четырех столбцов: sign , option , low и high . На рисунке выше показано, какие записи создаются для тех или иных введенных пользователем значений:

Если введено значение "LH", то создается строка со значениями "I" (включительно), "EQ" (равно), "LH" и "пробел".

Если введен интервал "AA"-"DL", то создается строка со значениями

"I" (включительно), "BT" (между), "AA" и "DL".

Если "BA" вводится как отдельное значение, которое должно быть исключено, создается строка со значениями "E" (исключительно), "EQ" (равно), "BA" и "пробел".

 

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

263

06-04-2006

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

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

BC400

Как показано на рисунке, внутренняя таблица, в которой содержатся введенные критерии выбора, может использоваться для выбора данных из базы данных. Содержимое таблицы интерпретируется следующим образом:

Если I_1, ... , I_n и E_1, ... , E_m являются включающими/исключающими условиями внутренней таблицы, то для ограничения выбора данных используется следующее сложное условие:

( I_1 OR ... OR I_n ) AND ( NOT E_1 )

AND ...

AND ( NOT E_m )

Если таблица не заполнена в связи с отсутствием ограничений, то условия WHERE всегда относятся к соответствующему полю.

Рекомендация: Оператор IN также может использоваться в логических выражениях:

IF wa_spfli-carrid IN so_car.

При определении критерия выбора следует учитывать те же три особенности, что и для оператора PARAMETERS (см. выше).

Если внутренняя таблица критерия выбора заполняется с использованием дополнения DEFAULT или оператора APPEND до вывода экрана выбора (INITIALIZATION), то ее содержимое отображается на экране выбора в качестве предлагаемых условий, которые могут быть перезаписаны.

Более подробную информацию см. в документации по ключевым словам для

SELECT-OPTIONS.

264

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

 

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

06-04-2006

BC400

Урок: Экран выбора

Событие после экрана выбора

Рисунок 150: Событие AT SELECTION-SCREEN

Событие AT SELECTION-SCREEN на экране выбора может инициироваться как нажатием клавиши Enter, так и выбором Выполнить (F8). После выполнения определенного блока обработки инициируется следующее событие START-OF-SELECTION и, в случае выбора Выполнить, начинается соответствующая обработка. Однако при нажатии Enter снова появляется экран выбора.

 

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

265

06-04-2006

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

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

BC400

Рисунок 151: Диалоги при обнаружении ошибок в AT SELECTIONSCREEN

Перед обработкой блока AT SELECTION-SCREEN записи пользователя автоматически переносятся в соответствующие переменные в программе. Следовательно, в этом блоке обработки должны выполняться требуемые проверки ввода и полномочий. В случае отрицательного результата проверки пользователю может выдаваться сообщение об ошибке, после чего снова выводится экран выбора. Пользователь может ввести новые значения.

Однако при прерывании программы появится сообщение об ошибке в блоке

START-OF-SELECTION.

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

266

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

 

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

06-04-2006

BC400

Урок: Экран выбора

Рисунок 152: Пример синтаксиса: проверка полномочий с диалогом об ошибке

Более подробную информацию см. в документации по ключевым словам для

“AT SELECTION-SCREEN”.

 

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

267

06-04-2006

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

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

BC400

268

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

 

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

06-04-2006

BC400

Урок: Экран выбора

Упражнение 13: Экран выбора

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

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

использовать ABAP-оператор SELECT-OPTIONS для внедрения сложных критериев выбора на экране выбора

использовать сложные ограничения для выбора данных из базы данных

программировать диалоги при обнаружении ошибок с использованием стандартного экрана выбора

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

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

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

Задание 1:

Определение и использование критериев выбора

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

2.На экране выбора должна существовать возможность ввода сложных ограничений по номеру направления (CONNID).

Рекомендация: При присвоении типа авиакомпании и номеру направления должна использоваться ссылка на поля с такой же структурой. Это позволит пользователю получить контекстно-зависимую справку.

3.Ограничения, введенные пользователем, должны использоваться для выбора данных из таблицы базы данных SFLIGHT.

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

 

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

269

06-04-2006

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

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

BC400

Задание 2:

Внедрение проверки полномочий с диалогом при обнаружении ошибок на экране выбора

1.Измените программу так, чтобы в случае отсутствия полномочий на работу с данными введенной авиакомпании в списке выдавалось

соответствующее сообщение об ошибке, после чего снова отображался бы экран выбора для повторного ввода данных.

Рекомендация: Класс сообщений BC400 уже содержит подходящее сообщение, которое можно использовать.

270

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

 

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

06-04-2006

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