Руководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594
Скачать 38.91 Mb.
|
Глава 9: Диалоги пользователя BC400 Рисунок 144: Использование критериев выбора На рисунке выше показано использование критериев выбора, с помощью которых вводятся сложные записи. На каждом экране выбора содержится пиктограмма информации (также называемая пиктограммой “ справки по экрану ”). Она используется для просмотра дополнительной информации. Более подробное описание определения критериев выбора с использованием оператора SELECT-OPTIONS будет приведено далее в этом разделе. 258 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран выбора Рисунок 145: Семантическая информация о глобальных типах на экране выбора Если поле ввода имеет тип элемент данных, то на экране выбора становится доступной следующая дополнительная семантическая информация: • Для описания поля ввода на экране выбора (текст критерия выбора) может быть скопировано полное название поля элемента данных (см. рисунок ниже). • Документация элемента данных становится автоматически доступной в качестве справки по вводу (справка F1). • Если с элементом данных связано средство поиска, то оно становится доступным в качестве справки по вводу (справка F4). (Средство поиска является независимым объектом словаря, который используется для просмотра списка допустимых значений ввода (возможно, с дополнительной информацией), из которого затем можно выбрать одно значение для ввода.) Если поле ввода является полем структуры, которое, в свою очередь, определяется с использованием элемента данных, то на экране выбора также будет доступна вышеописанная семантическая информация элемента данных. Если поле структуры также копируется в средство поиска, то информация из средства поиска элемента данных “перезаписывается”. Более подробная информация содержится в онлайн-документации ABAP-словаря. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 259 Глава 9: Диалоги пользователя BC400 Рисунок 146: Тексты критериев выбора По умолчанию имена полей ввода на экране выбора появляются в порядке их описания. Однако они могут быть заменены на соответствующий текст критерия выбора, который затем может быть переведен на любой требуемый язык. Во время выполнения тексты критериев выбора отображаются на языке входа в систему пользователя (автоматический выбор языка). Аналогично заголовкам списков и символам текстовых переменных, тексты критериев выбора относятся к текстовым элементам программы. Для их вызова в ABAP-редакторе выберите путь по меню Перейти к → Текстовые элементы → Тексты критериев выбора. Перевод может быть выполнен с использованием пути по меню Перейти к → Перевод. Если в поле ввода прямо или косвенно вводится элемент данных, то можно скопировать полное имя поля из одного из текстов, который содержится в словаре (“ссылка на словарь”). Это позволяет стандартизировать используемые тексты. 260 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран выбора Рисунок 147: Варианты Созданные экраны выбора являются вариантами программы. После запуска программы пользователь может загрузить варианты в соответствующий экран выбора для упрощения ввода повторяющихся идентичных или почти идентичных данных. Если ABAP-программа, в которую внедрен экран выбора, планируется для выполнения в фоновом режиме, вариант необходимо включить в соответствующее фоновое задание, так как в фоновом режиме ввод пользователя невозможен. Специфичные для программы варианты определяются при запуске программы, создании и сохранении экрана выбора (экранная кнопка с изображением дискеты). Также для варианта можно определить различные атрибуты. Если варианты для программы уже определены, то на экране выбора появляется дополнительная кнопка с текстом “ Вызвать вариант... ”. При нажатии этой кнопки отображается список определенных вариантов выбора. Для получения возможности определения собственного варианта пользователь должен быть наделен соответствующими полномочиями (в продуктивной системе). Также можно определить варианты в системе разработок и затем перенести их в продуктивную систему. Варианты с префиксом "CUS&" представляют собой системные варианты. Они переносятся как обычные объекты репозитария и являются не зависящими от манданта. Все другие варианты являются зависящими от манданта и должны переноситься отдельно. В ABAP-редакторе выберите Перейти к → Варианты для перехода к функции управления вариантами программы, где можно выполнить последующее ведение вариантов с учетом требуемых значений и атрибутов. Затем выберите Инструментальные средства → Запрос на перенос для указания подлежащих переносу вариантов и запроса на перенос. Перенос выполняется после деблокирования запроса. Для получения дополнительной информации о вариантах нажмите кнопку Информация об атрибутах вариантов на экране. После этого можно выполнить ведение атрибутов варианта. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 261 Глава 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" и "пробел". 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 263 Глава 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 снова появляется экран выбора. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 265 Глава 9: Диалоги пользователя BC400 Рисунок 151: Диалоги при обнаружении ошибок в AT SELECTION- SCREEN Перед обработкой блока AT SELECTION-SCREEN записи пользователя автоматически переносятся в соответствующие переменные в программе. Следовательно, в этом блоке обработки должны выполняться требуемые проверки ввода и полномочий. В случае отрицательного результата проверки пользователю может выдаваться сообщение об ошибке, после чего снова выводится экран выбора. Пользователь может ввести новые значения. Однако при прерывании программы появится сообщение об ошибке в блоке START-OF-SELECTION. На следующем рисунке показан пример простой программы с проверкой полномочий и выводом диалогового сообщения об ошибке на экране выбора. 266 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран выбора Рисунок 152: Пример синтаксиса: проверка полномочий с диалогом об ошибке Более подробную информацию см. в документации по ключевым словам для “AT SELECTION-SCREEN”. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 267 Глава 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. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 269 Глава 9: Диалоги пользователя BC400 Задание 2: Внедрение проверки полномочий с диалогом при обнаружении ошибок на экране выбора 1. Измените программу так, чтобы в случае отсутствия полномочий на работу с данными введенной авиакомпании в списке выдавалось соответствующее сообщение об ошибке, после чего снова отображался бы экран выбора для повторного ввода данных. Рекомендация: Класс сообщений BC400 уже содержит подходящее сообщение, которое можно использовать. 270 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран выбора Решение 13: Экран выбора Задание 1: Определение и использование критериев выбора 1. Скопируйте программу ZBC400_##_DETAIL_LIST или соответствующий шаблон SAPBC400UDS_DETAIL_LIST в новую программу ZBC400_##_SEL_SCREEN. a) Этот шаг выполняется в соответствии с обычной процедурой. 2. На экране выбора должна существовать возможность ввода сложных ограничений по номеру направления (CONNID). Рекомендация: При присвоении типа авиакомпании и номеру направления должна использоваться ссылка на поля с такой же структурой. Это позволит пользователю получить контекстно-зависимую справку. a) См. выдержку из исходного текста в примере решения. 3. Ограничения, введенные пользователем, должны использоваться для выбора данных из таблицы базы данных SFLIGHT. a) См. выдержку из исходного текста в примере решения. Задание 2: Внедрение проверки полномочий с диалогом при обнаружении ошибок на экране выбора 1. Измените программу так, чтобы в случае отсутствия полномочий на работу с данными введенной авиакомпании в списке выдавалось соответствующее сообщение об ошибке, после чего снова отображался бы экран выбора для повторного ввода данных. Рекомендация: Класс сообщений BC400 уже содержит подходящее сообщение, которое можно использовать. a) См. выдержку из исходного текста в примере решения. Результат Выдержка из исходного текста: SAPBC400UDS_SEL_SCREEN REPORT sapbc400uds_sel_screen. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 271 Глава 9: Диалоги пользователя BC400 CONSTANTS actvt_display TYPE activ_auth VALUE ’03’. DATA: wa_flight TYPE sbc400focc, wa_sbook TYPE sbook. PARAMETERS pa_car LIKE wa_flight-carrid. SELECT-OPTIONS so_con FOR wa_flight-connid. * First event processed after leaving the selection screen AT SELECTION-SCREEN. AUTHORITY-CHECK OBJECT ’S_CARRID’ ID ’CARRID’ FIELD pa_car ID ’ACTVT’ FIELD actvt_display. IF sy-subrc NE 0. * Return to selection screen and display message in status bar MESSAGE e045(bc400) WITH pa_car. ENDIF. START-OF-SELECTION. SELECT carrid connid fldate seatsmax seatsocc FROM sflight INTO CORRESPONDING FIELDS OF wa_flight WHERE carrid = pa_car AND connid IN so_con wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax. WRITE: / wa_flight-carrid, wa_flight-connid, wa_flight-fldate, wa_flight-seatsocc, wa_flight-seatsmax, wa_flight-percentage, ’%’. HIDE: wa_flight-carrid, wa_flight-connid, wa_flight-fldate. ENDSELECT. IF sy-subrc NE 0. WRITE ’Requested data not found !’. ENDIF. CLEAR wa_flight. AT LINE-SELECTION. IF sy-lsind = 1. Продолжение на следующей странице 272 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран выбора WRITE: / wa_flight-carrid, wa_flight-connid, wa_flight-fldate. ULINE. SKIP. SELECT bookid customid custtype class order_date smoker cancelled loccuram loccurkey FROM sbook INTO CORRESPONDING FIELDS OF wa_sbook WHERE carrid = wa_flight-carrid AND connid = wa_flight-connid AND fldate = wa_flight-fldate. WRITE: / wa_sbook-bookid color col_key, wa_sbook-customid, wa_sbook-custtype, wa_sbook-class, wa_sbook-order_date, wa_sbook-smoker, wa_sbook-cancelled, wa_sbook-loccuram CURRENCY wa_sbook-loccurkey, wa_sbook-loccurkey. ENDSELECT. ENDIF. CLEAR wa_flight. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 273 Глава 9: Диалоги пользователя BC400 Резюме по уроку Теперь вы сможете: • описывать свойства и преимущества экранов выбора • внедрять опции ограничения выбора данных на экране выбора • внедрять проверку ввода и полномочий с выводом диалога при обнаружении ошибок на экране выбора 274 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Экран Урок: Экран Обзор урока На этом уроке рассматривается процесс разработки и программирования простых экранов с полями ввода/вывода и экранными кнопками. Цели урока Прослушав этот урок, вы сможете • перечислять атрибуты экранов и пояснять преимущества их использования • внедрять простые экраны с полями ввода и вывода и экранными кнопками, а также вызывать их из соответствующей программы • пояснять и внедрять внутреннюю программную обработку для вызовов экранов Практический пример Необходимо разработать программу с выводом на экран данных, которые требуется изменить. Кроме того, соответствующие функции программы должны быть доступными при помощи кнопок. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 275 |