Руководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594
Скачать 38.91 Mb.
|
Глава 9: Диалоги пользователя BC400 Для часто используемых функциональных клавиш можно определить кнопки в строке кнопок. Эти кнопки могут иметь пиктограммы, поясняющий текст или оба эти атрибута. Не совмещайте значения кнопок на строке кнопок с теми значениями, которые можно определить посредством редактора форматов на экране. Тем не менее, кнопки и функциональные клавиши, а также пункты меню в рамках статуса действуют аналогично кнопкам, находящимся непосредственно на экране. Нажатие этих кнопок приводит к вводу соответствующего кода функции в поле команды экрана, после чего происходит перенос значения из поля в программу и обработка PAI. Функции статуса списка, определяемые самостоятельно, являются исключением, поскольку при их выполнении инициируется ABAP-событие AT USER-COMMAND, в результате чего выполняется перенос соответствующего кода функции в системное поле sy-ucomm. Для получения дополнительной информации см. документацию по “AT USER-COMMAND” или курс BC405 (программирование списков). Рисунок 192: Определение ссылок на подобъекты доступного статуса Для просмотра всех подобъектов (строк меню, значений функциональных клавиш или строк кнопок), уже определенных для данной программы, можно использовать пиктограмму, показанную на рисунке выше (или клавишу F4). После выбора подобъекта создается ссылка на этот подобъект. Это означает, что этот же подобъект будет использоваться в локальном статусе. Однако все функции этого подобъекта для локального статуса автоматически определяются как неактивные (недоступные для выбора). После этого необходимо активировать функции, которые имеют значение в локальном статусе и должны быть определены как доступные. Эта ситуация иллюстрируется на следующем рисунке: 332 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Интерфейс пользователя Рисунок 193: Установка активности и неактивности различных функций в статусе Для определения функций как неактивных используется кнопка, показанная на рисунке выше. В данном примере ссылки на подобъекты статуса списка создаются при определении статуса экрана. Если в статусе экрана производится добавление нового кода функции SAVE в строку инструментов и меню Информация по рейсу, то появится сообщение о том, что в текущем статусе имеются ссылки на строку меню и строку инструментов статуса списка, и в оригинал были внесены изменения. После подтверждения сообщения, выведенного в диалоговом окне, производится добавление кода функции в строку меню или строку кнопок статуса списка. Однако в этих строках он выводится как неактивный. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 333 Глава 9: Диалоги пользователя BC400 334 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Интерфейс пользователя Упражнение 17: Создание интерфейса Цели упражнения Выполнив это упражнение, вы сможете • внедрять GUI-заголовок и GUI-статус в экраны программы Практический пример Необходимо интегрировать заголовок и статус в экраны (список и экран) программы ZBC400_##_DYNPRO_1. Задание 1: Внедрение GUI-статуса (и заголовка) для списка 1. Расширьте программу ZBC400_##_DYNPRO_1 или скопируйте шаблон SAPBC400UDS_DYNPRO_3 с присвоением ему нового имени ZBC400_##_DYNPRO_4 для дальнейшей обработки. 2. Создайте статус (тип: Статус диалога ) посредством навигации вперед: Присвойте этот статус списку при помощи соответствующего блока обработки в программе. Внедрите соответствующее присвоение и создайте статус посредством навигации вперед. Создаваемый статус должен соответствовать статусу стандартного списка. Далее загрузите его в свой статус в качестве шаблона. Измените имя первого меню Список на Бронирование. 3. Добавьте код функции SAVE. Пользователи должны иметь возможность доступа к этой функции посредством кнопки Сохранить в стандартной строке инструментов. Также должна существовать возможность выбора пункта Сохранить в меню Бронирование . В данном статусе, однако, этот код функции должен быть неактивным. Активируйте статус и программу. 4. Дополнительно: GUI-заголовок для списка Определите и присвойте заголовок для основного списка посредством навигации вперед. Задание 2: Внедрение GUI-статуса (и заголовка) для экрана 1. Создайте статус для экрана (вид: Статус диалога ) посредством навигации вперед: Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 335 Глава 9: Диалоги пользователя BC400 Для присвоения этого статуса экрану используйте соответствующую часть программы. Внедрите соответствующее присвоение и создайте статус посредством навигации вперед. 2. Создайте ссылку на созданный ранее статус списка. Активируйте коды функций BACK и SAVE в текущем статусе. 3. Дополнительно: GUI-заголовок для экрана Определите и присвойте заголовок для экрана посредством навигации вперед. 336 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Интерфейс пользователя Решение 17: Создание интерфейса Задание 1: Внедрение GUI-статуса (и заголовка) для списка 1. Расширьте программу ZBC400_##_DYNPRO_1 или скопируйте шаблон SAPBC400UDS_DYNPRO_3 с присвоением ему нового имени ZBC400_##_DYNPRO_4 для дальнейшей обработки. a) Этот шаг выполняется в соответствии с обычной процедурой. 2. Создайте статус (тип: Статус диалога ) посредством навигации вперед: Присвойте этот статус списку при помощи соответствующего блока обработки в программе. Внедрите соответствующее присвоение и создайте статус посредством навигации вперед. Создаваемый статус должен соответствовать статусу стандартного списка. Далее загрузите его в свой статус в качестве шаблона. Измените имя первого меню Список на Бронирование. a) В исходном тексте программы добавьте оператор SET PF-STATUS ’LIST’. в событие START-OF-SELECTION. Внимание: Текст между двумя апострофами необходимо вводить прописными буквами. b) Дважды щелкните по имени статуса в операторе SET PF-STATUS ’LIST’. c) Появится диалоговое окно с сообщением “Статус GUI-интерфейса ’СПИСОК’ не существует. Создать этот статус?” Выберите Да для подтверждения. d) Введите краткий текст. e) Выберите тип статуса Статус диалога. f) В редакторе меню выберите меню Дополнительная информация → Корректировка шаблона для загрузки стандартного статуса списка в качестве шаблона. g) Измените имя первого меню Список на имя Бронирование и подтвердите изменение в появившемся диалоговом окне. 3. Добавьте код функции SAVE. Пользователи должны иметь возможность доступа к этой функции посредством кнопки Сохранить в стандартной строке инструментов. Также должна существовать возможность выбора пункта Сохранить в меню Бронирование . В данном статусе, однако, этот код функции должен быть неактивным. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 337 Глава 9: Диалоги пользователя BC400 Активируйте статус и программу. a) В стандартной строке инструментов введите код функции SAVE над пиктограммой Сохранить и нажмите Enter. b) Дважды щелкните для открытия меню Бронирование, введите код функции SAVE и присвойте текст “Сохранить бронирование”. c) Выберите Активно <-> Неактивно для деактивации функции SAVE в этом статусе. d) Активируйте весь статус и программу. 4. Дополнительно: GUI-заголовок для списка Определите и присвойте заголовок для основного списка посредством навигации вперед. a) В блоке обработки START-OF-SELECTION добавьте оператор SET TITLEBAR ’LIST’. b) Создайте заголовок посредством навигации вперед и введите текст заголовка в диалоговом окне. c) Активируйте программу и интерфейс. Задание 2: Внедрение GUI-статуса (и заголовка) для экрана 1. Создайте статус для экрана (вид: Статус диалога ) посредством навигации вперед: Продолжение на следующей странице 338 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Интерфейс пользователя Для присвоения этого статуса экрану используйте соответствующую часть программы. Внедрите соответствующее присвоение и создайте статус посредством навигации вперед. a) Перейдите к режиму изменения экрана 100. В блоке PBO логики выполнения добавьте оператор MODULE STATUS_0100. b) Создайте модуль посредством навигации вперед: дважды щелкните по его имени; выберите Да для подтверждения параметров в диалоговом окне. В следующем диалоговом окне выберите Основная программа и добавьте следующий исходный текст (или удалите символы комментария около него): SET PF-STATUS ’DYNPRO’. c) Создайте статус посредством навигации вперед. (Дважды щелкните по имени статуса ’DYNPRO’.) Выберите Да для подтверждения появившегося диалогового окна. В следующем диалоговом окне введите краткий текст и выберите тип статуса Статус диалога. 2. Создайте ссылку на созданный ранее статус списка. Активируйте коды функций BACK и SAVE в текущем статусе. a) Щелкните по пиктограмме ссылки (или нажмите клавишу F4) для перехода строке меню. Создайте ссылку на существующую строку меню посредством двойного щелчка. b) Щелкните по пиктограмме ссылки (или нажмите клавишу F4) для перехода к функциональным клавишам. Создайте ссылку на существующие значения функциональных клавиш посредством двойного щелчка. c) Активируйте функции SAVE и BACK, для чего установите курсор на код функции в меню или на присвоении функциональных клавиш и нажмите кнопку Активно <-> Неактивно. d) Активируйте статус, экран и программу. 3. Дополнительно: GUI-заголовок для экрана Определите и присвойте заголовок для экрана посредством навигации вперед. a) В модуле STATUS_0100 добавьте оператор SET TITLEBAR ’DYNPRO’. b) Создайте заголовок посредством навигации вперед и введите текст заголовка в диалоговом окне. Продолжение на следующей странице 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 339 Глава 9: Диалоги пользователя BC400 c) Активируйте программу и интерфейс. Результат Выдержка из исходного текста SAPBC400UDS_DYNPRO_4: REPORT sapbc400uds_dynpro_4. START-OF-SELECTION. SET PF-STATUS ’LIST’. SET TITLEBAR ’LIST’. "optional SELECT carrid connid fldate bookid FROM sbook INTO CORRESPONDING FIELDS OF wa_sbook WHERE agencynum = pa_anum. AT LINE-SELECTION. *&--------------------------------------------------------------* *& Module STATUS_0100 OUTPUT * *&--------------------------------------------------------------* * text * *---------------------------------------------------------------* MODULE STATUS_0100 OUTPUT. SET PF-STATUS ’DYNPRO’. SET TITLEBAR ’DYNPRO’. "optional ENDMODULE. " STATUS_0100 OUTPUT *&--------------------------------------------------------------* *& Module CLEAR_OK_CODE OUTPUT * *&--------------------------------------------------------------* *& text * *---------------------------------------------------------------* MODULE clear_ok_code OUTPUT. CLEAR ok_code. ENDMODULE. " CLEAR_OK_CODE OUTPUT *&--------------------------------------------------------------* Продолжение на следующей странице 340 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Интерфейс пользователя *& Module USER_COMMAND_0100 INPUT * *&--------------------------------------------------------------* *& text * *&--------------------------------------------------------------* MODULE user_command_0100 INPUT. CASE ok_code. WHEN ’BACK’. SET SCREEN 0. WHEN ’SAVE’. MOVE-CORRESPONDING sdyn_book TO wa_sbook. MESSAGE i060(bc400). SET SCREEN 0. ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT Логика выполнения для экрана 100: PROCESS BEFORE OUTPUT. MODULE status_0100. MODULE clear_ok_code. PROCESS AFTER INPUT. MODULE user_command_0100. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 341 Глава 9: Диалоги пользователя BC400 Резюме по уроку Теперь вы сможете: • внедрять GUI-заголовок • внедрять GUI-статус (строка меню, символьная строка инструментов и строка кнопок) для списка и экрана • выполнять ведение присвоения функциональных клавиш для экрана 342 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Резюме по главе Резюме по главе Теперь вы сможете: • описывать атрибуты и преимущества ABAP-списков • внедрять заголовки списков и столбцов • внедрять многоуровневые списки • внедрять интерактивные списки • описывать свойства и преимущества экранов выбора • внедрять опции ограничения выбора данных на экране выбора • внедрять проверку ввода и полномочий с выводом диалога при обнаружении ошибок на экране выбора • перечислять атрибуты экранов и пояснять преимущества их использования • внедрять простые экраны с полями ввода и вывода и экранными кнопками, а также вызывать их из соответствующей программы • пояснять и внедрять внутреннюю программную обработку для вызовов экранов • внедрять GUI-заголовок • внедрять GUI-статус (строка меню, символьная строка инструментов и строка кнопок) для списка и экрана • выполнять ведение присвоения функциональных клавиш для экрана Дополнительная информация ... См. статью “События” в онлайн-документации и документацию по ключевым словам для соответствующего ABAP-оператора. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 343 Резюме по главе BC400 344 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 Глава 10 Повторно используемые компоненты Обзор главы См. цели отдельных уроков в рамках этого раздела. Цели главы Прослушав эту главу, вы сможете • выполнять поиск функциональных модулей • получать информацию о функциональных возможностях и способах использования функциональных модулей • вызывать функциональный модуль в программе • выполнять базовые шаги объектно-ориентированного программирования ABAP (создание инстанций и вызов методов) для использования классов и методов, имеющихся в стандартной SAP-системе • выводить внутреннюю таблицу на экран с использованием SAP Grid Control (ALV List Viewer) • находить подходящие BAPI • использовать вызовы BAPI в программе Содержание главы Урок: Работа с функциональными модулями ............................346 Упражнение 18: Использование функциональных модулей ......357 Урок: Работа с методами.....................................................364 Процедура: Вывод внутренней таблицы в ALV Grid Control на экране .......................................................................375 Упражнение 19: Использование методов.............................379 Урок: Работа с BAPI ...........................................................384 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 345 Глава 10: Повторно используемые компоненты BC400 Урок: Работа с функциональными модулями Обзор урока На этом уроке описывается поиск и использование функциональных модулей. В качестве примера выполняется вызов функционального модуля для инкапсуляции стандартного диалога и модуля в целях изменения записей в базе данных. Цели урока Прослушав этот урок, вы сможете • выполнять поиск функциональных модулей • получать информацию о функциональных возможностях и способах использования функциональных модулей • вызывать функциональный модуль в программе Практический пример В программу необходимо добавить определенную функцию. Эта функция, возможно, уже была реализована в виде функционального модуля, и если это так, то по возможности в программе следует использовать этот функциональный модуль. Работа с функциональными модулями Рисунок 194: Группа функций 346 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Работа с функциональными модулями Функциональный модуль представляет собой подпрограмму с определенной функцией, централизованно хранящуюся в библиотеке функций SAP-системы. Каждый функциональный модуль имеет интерфейс для импорта или экспорта параметров. Основная цель применения функциональных модулей заключается в их многократном использовании. Это означает, что один и тот же модуль может использоваться в программе несколько раз. Функциональные модули организованы в группы функций. Каждая группа функций представляет собой совокупность функциональных модулей, имеющих аналогичные функции и/или работающих с одними и теми же данными. Группа функций может содержать те же компоненты, что и исполняемая программа. Это следующие компоненты: Объекты данных Эти объекты являются глобальными в рамках группы функций, т.е. доступными и изменяемыми для всех функциональных модулей в пределах одной группы. Подпрограммы Вызов подпрограмм может выполняться из всех функциональных модулей в данной группе. Экраны Вызов экранов может выполняться из всех функциональных модулей в данной группе. Рисунок 195: Функциональный модуль 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 347 |