Руководство для участников курса Версия курса 2й квартал 2005 г. Продолжительность курса 5 Дн. Номер материала 50072594
Скачать 38.91 Mb.
|
Глава 7: Подпрограммы в ABAP BC400 WRITE: / wa-carrid COLOR COL_KEY, wa-connid COLOR COL_KEY, wa-fldate COLOR COL_KEY, wa-seatsocc, wa-seatsmax, wa-percentage, ’%’. ENDLOOP. ENDFORM. " WRITE_LIST 218 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Подпрограммы Резюме по уроку Теперь вы сможете: • определять подпрограммы • вызывать подпрограммы • анализировать процесс выполнения подпрограмм в режиме отладки 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 219 Резюме по главе BC400 Резюме по главе Теперь вы сможете: • определять подпрограммы • вызывать подпрограммы • анализировать процесс выполнения подпрограмм в режиме отладки Дополнительная информация ... См. онлайн-документацию к соответствующим ABAP-операторам. 220 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 Глава 8 Введение в события ABAP Обзор главы См. резюме по урокам в рамках этого раздела. Цели главы Прослушав эту главу, вы сможете • описывать управляемую событием обработку исполняемой ABAP-программы • перечислять наиболее важные базовые события и пояснять цель их использования • использовать наиболее важные базовые события Содержание главы Урок: ABAP-события ..........................................................222 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 221 Глава 8: Введение в события ABAP BC400 Урок: ABAP-события Обзор урока На этом уроке описывается обработка исполняемой ABAP-программы на основе событий. Также рассматриваются наиболее важные базовые события, цели их использования и возможность применения в программах. Цели урока Прослушав этот урок, вы сможете • описывать управляемую событием обработку исполняемой ABAP-программы • перечислять наиболее важные базовые события и пояснять цель их использования • использовать наиболее важные базовые события Практический пример Экран выбора должен динамически (т. е. в зависимости от ситуации) заполняться значениями по умолчанию. 222 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: ABAP-события Цели и способы использования ABAP-событий Рисунок 125: Структуры и процедуры исполняемой ABAP-программы При запуске ABAP-программы все глобальные объекты данных программ сначала создаются в рабочей памяти (присвоение памяти). После этого исполняющая система последовательно инициирует различные события. Если для инициированного события в программе существует блок обработки, то последовательно выполняются операторы этого блока. На рисунке выше показаны базовые события, последовательность, в которой они инициируются, а также внедрение соответствующих блоков обработки в программу. Исполняемая ABAP-программа является совокупностью блоков обработки, которые выполняются при возникновении соответствующих событий. Результаты, полученные операторами WRITE, сначала сохраняются в буферах списков и отображаются на экране в виде списка только после завершения обработки блока START-OF-SELECTION. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 223 Глава 8: Введение в события ABAP BC400 Рисунок 126: Цель использования ABAP-событий Если в блоке INITIALIZATION переменным PARAMETERS присваиваются значения, то при отображении экрана выбора они выводятся в полях ввода как (изменяемые) значения по умолчанию. При помощи дополнения DEFAULT можно задать значение по умолчанию для соответствующего поля ввода в определении PARAMETERS. Однако вышеописанное присвоение значений в блоке INITIALIZATION может использоваться для присвоения другого значения по умолчанию (динамическое предварительное заполнение экрана выбора) динамическим способом (т. е. в зависимости от ситуации). На следующем рисунке показан пример программы с таким присвоением. Если пользователь с помощью кнопки F8 подтверждает данные на экране выбора, то введенные им значения переносятся в соответствующие внутренние программные переменные PARAMETERS, и инициируется событие AT SELECTION-SCREEN . Таким образом, соответствующий блок обработки может использоваться для проверки ввода или полномочий. Вывод сообщения типа "E" в этом блоке события (например, в случае отсутствия у пользователя необходимых полномочий) приведет к повторному выводу экрана выбора с сообщением об ошибке (что позволит повторить ввод данных). Эта процедура описывается более подробно на уроке, посвященном “ экрану выбора ”. 224 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: ABAP-события Если сообщение об ошибке в блоке AT SELECTION-SCREEN не выводится, то событие START-OF-SELECTION инициируется в качестве последующего события. В этом случае основная обработка программы должна происходить в соответствующем блоке обработки. Рисунок 127: Пример программы В этом примере показан экран выбора с полем ввода даты. При обычных обстоятельствах в качестве значения по умолчанию подставляется текущая дата (DEFAULT sy-datum). Однако при определенных условиях (IF) в качестве значения по умолчанию должна выводиться дата, соответствующая тому же дню следующей недели (pa_date = pa_date + 7.). На рисунке выше также показана реакция исполняющей системы в случае отсутствия блока обработки. Событие не приводит к выполнению каких-либо операторов, и сразу же инициируется следующее событие. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 225 Глава 8: Введение в события ABAP BC400 Рисунок 128: Характеристики блока события Блоки обработки не могут быть вложенными, поскольку это противоречит концепции ABAP-событий. Как было указано ранее, при отсутствии блока обработки какие-либо операторы не выполняются, и сразу же инициируется следующее событие. Управление инициированием событий и выполнением блоков обработки осуществляется исполняющей системой ABAP. Поэтому последовательность размещения блоков событий в программе не имеет значения. Если блоки в программу не внедрены, то все операторы неявно присваиваются стандартному блоку события START-OF-SELECTION . Это также является причиной выполнимости программ, представленных в предыдущих разделах настоящего курса. Кроме уже описанных базовых событий для исполняемых программ, существуют и другие события, используемые для решения различных задач. Например, существует событие AT LINE-SELECTION, которое инициируется двойным щелчком пользователя по списку. Это событие может использоваться, например, для вывода подробной информации по выбранной строке списка. Эта процедура описывается более подробно на уроке, посвященном “ спискам ”. Для получения дополнительной информации по “событиям” см. документацию ABAP. На рисунке ниже представлена общая структура исполняемой ABAP-программы. 226 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: ABAP-события Рисунок 129: Структура программы (обзор) В дополнение к уже описанным блокам событий, в программу можно внедрить другие блоки обработки. Например, подпрограмма ( FORM ... ENDFORM. ) представляет собой блок, выполняемый при возникновении “события”, инициируемого выражением PERFORM. При необходимости вывода экрана для пользователя, эта операция должна быть определена в программе заранее. Помимо формата, также требуется внедрить т.н. логику выполнения экрана. В ней определяются те внутренние программные блоки обработки (модули), которые должны быть выполнены на стадии подготовки к выводу экрана (например, считывание данных, которые должны отображаться на экране) или являться результатом операций, производимых пользователем на экране. Эти блоки называются обработкой экрана перед выводом (PBO) или обработкой после ввода (PAI). Эти процессы формируют логику выполнения экрана. Логика выполнения не содержит непосредственно ABAP-операторов, но в ней имеются ссылки на модули, включенные в программу в форме блоков обработки ( MODULE ... ENDMODULE. ). Программирование экрана рассматривается более подробно на другом уроке. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 227 Глава 8: Введение в события ABAP BC400 Резюме по уроку Теперь вы сможете: • описывать управляемую событием обработку исполняемой ABAP-программы • перечислять наиболее важные базовые события и пояснять цель их использования • использовать наиболее важные базовые события 228 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Резюме по главе Резюме по главе Теперь вы сможете: • описывать управляемую событием обработку исполняемой ABAP-программы • перечислять наиболее важные базовые события и пояснять цель их использования • использовать наиболее важные базовые события Дополнительная информация ... См. статью “Блоки событий” в онлайн-документации и документацию по ключевым словам для соответствующего ABAP-оператора. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 229 Резюме по главе BC400 230 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 Глава 9 Диалоги пользователя Обзор главы См. цели отдельных уроков в рамках этого раздела. Цели главы Прослушав эту главу, вы сможете • описывать атрибуты и преимущества ABAP-списков • внедрять заголовки списков и столбцов • внедрять многоуровневые списки • внедрять интерактивные списки • описывать свойства и преимущества экранов выбора • внедрять опции ограничения выбора данных на экране выбора • внедрять проверку ввода и полномочий с выводом диалога при обнаружении ошибок на экране выбора • перечислять атрибуты экранов и пояснять преимущества их использования • внедрять простые экраны с полями ввода и вывода и экранными кнопками, а также вызывать их из соответствующей программы • пояснять и внедрять внутреннюю программную обработку для вызовов экранов • внедрять GUI-заголовок • внедрять GUI-статус (строка меню, символьная строка инструментов и строка кнопок) для списка и экрана • выполнять ведение присвоения функциональных клавиш для экрана Содержание главы Урок: Списки ....................................................................233 Упражнение 12: Списки ..................................................247 Урок: Экран выбора ...........................................................255 Упражнение 13: Экран выбора .........................................269 Урок: Экран .....................................................................275 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 231 Глава 9: Диалоги пользователя BC400 Упражнение 14: Создание и вызов экрана ...........................303 Упражнение 15: Экраны: перенос данных ...........................309 Упражнение 16: Экраны: динамическое определение следующего экрана .......................................................................315 Урок: Интерфейс пользователя.............................................322 Упражнение 17: Создание интерфейса...............................335 232 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Списки Урок: Списки Обзор урока На этом уроке рассматриваются преимущества и различные функции ABAP-списка. Описывается внедрение процедуры, в рамках которой при двойном щелчке пользователя в основном списке на экран выводится вторичный список, содержащий информацию о той строке основного списка, которая была выбрана посредством щелчка (интерактивный список). Цели урока Прослушав этот урок, вы сможете • описывать атрибуты и преимущества ABAP-списков • внедрять заголовки списков и столбцов • внедрять многоуровневые списки • внедрять интерактивные списки Практический пример Необходимо написать программу, которая будет выводить специфичную для строки информацию во вторичном списке после выбора пользователем строки в основном списке. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 233 Глава 9: Диалоги пользователя BC400 Список Рисунок 130: Возможности списков Основной целью использования списка является вывод данных с минимальным программированием. В списках также учитываются особые требования к бизнес-данным: • Списки могут быть созданы на нескольких языках: если доступен соответствующий перевод, тексты и заголовки отображаются на языке входа в систему. • В списках могут содержаться денежные значения в требуемой валюте. При программировании списка доступны следующие возможности: • Экран: возможно добавление цветов и пиктограмм. • Принтеры • Интернет/интранет: возможно автоматическое преобразование в формат HTML. • Сохранение: списки можно сохранить как в пределах SAP-системы, так и вне ее (например, для дальнейшей обработки с использованием программы электронных таблиц). 234 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Списки Рисунок 131: Стандартные функции списков Стандартный GUI списка выполняет несколько функций: Можно настроить интерфейс списка по умолчанию в соответствии с имеющимися требованиями при помощи редактора меню. Более подробная информация представлена на уроке, в котором описывается “ интерфейс пользователя ”. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 235 Глава 9: Диалоги пользователя BC400 Рисунок 132: Заголовки списков и столбцов В каждом списке содержится отдельная строка с заголовком списка и не более четырех строк с заголовками столбцов. Если заголовок списка не определен, то в качестве заголовка используется заголовок программы (краткое описание). Перед начальным ведением заголовков сначала необходимо активировать программу. Затем следует создать список путем выполнения этой программы. После этого можно непосредственно выполнить ведение заголовков над списком путем выбора в меню Система → Список → Заголовок списка. При последующем запуске программы установленные заголовки будут появляться в списке автоматически. При необходимости изменения установленного заголовка (последующее ведение) снова выполнять программу и генерировать список не требуется. Вместо этого в редакторе, в который была загружена программа, следует перейти к среде ведения, используемой для изменения заголовков, путем выбора Перейти к → Текстовые элементы → Заголовки списка. 236 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Списки Рисунок 133: Многоязычность списков Текстовые элементы программы, включая заголовки, могут быть переведены на различные языки. При выполнении программы пользователем соответствующие текстовые элементы автоматически отображаются на языке входа в систему, выбранном этим пользователем (автоматический выбор языка). Для перевода текстовых элементов программы в ABAP-редакторе выберите Перейти к → Перевод. Символы текстовых переменных используются для форматирования текстов в теле списка на различных языках и автоматического выбора языка. Символ текстовой переменной состоит из трехзначного буквенно-цифрового идентификатора xxx и переводимого текста. Как и заголовки, эти символы относятся к текстовым элементам программы. Существует два способа определения символов текстовых переменных для программы. • в ABAP-редакторе выберите путь по меню Перейти к → Текстовые элементы → Символы текстовых переменных, либо • определите символ текстовой переменной в исходном тексте с использованием синтаксиса, описанного ниже, и дважды щелкните по его идентификатору (навигация вперед). 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 237 Глава 9: Диалоги пользователя BC400 В программе символ текстовой переменной вводится с использованием TEXT-xxx . При наличии соответствующего перевода (см. выше “перевод текстовых элементов”) в процессе выполнения текст вставляется на языке входа в систему пользователя. Для более понятного определения символа текстовой переменной вместо TEXT-xxx можно также использовать следующий синтаксис: ’...’(xxx) . В этом примере ’...’ должен являться текстом, соответствующим символу текстовой переменной на исходном языке программы. Рекомендация: Необходимо учесть, что текстовые элементы также должны быть активированы. Рисунок 134: Создание основного списка На рисунке выше показан процесс генерации основного списка, на основе которого затем будет создаваться вторичный список. Помимо оператора WRITE , для структурирования списка можно также использовать SKIP иULINE. Описание этих двух операторов см. в документации по ключевым словам ABAP. 238 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 06-04-2006 BC400 Урок: Списки Рисунок 135: Создание вторичного списка При выборе основного списка путем двойного щелчка или нажатия функциональной клавиши F2 инициируется ABAP-событие AT LINE-SELECTION . Если необходимо, чтобы список с требуемой подробной информацией (интерактивный список) появлялся на экране сразу после того, как он будет запрошен пользователем, его следует внедрить в программу в форме соответствующего блока обработки. В рамках этого блока может производиться считывание запрошенных пользователем данных и их вывод с использованием оператораWRITE. Вторичный список с выходными данными, которые “перезаписывают” данные из основного списка, генерируется автоматически. Путем нажатия кнопки с “зеленой стрелкой” или функциональной клавиши F3 можно вернуться к основному списку и выбрать другую строку. Рекомендация: Если в программу внедрен блок AT LINE-SELECTION , то над списком появляется кнопка с изображением лупы. Выделение строки списка и последующее нажатие этой кнопки приведет к тому же результату, что и двойной щелчок по строке списка. 06-04-2006 © 2006 г. SAP AG All rights reserved. Авторские права защищены. 239 |