SAP Программирование отчетов ABAP
⚡ Умное резюме
Программирование отчетов на ABAP позволяет создавать исполняемые программы, которые выбирают, обрабатывают и отображают большие объемы данных. SAP Данные. На этой странице объясняется добавление заголовка отчета, экран выбора, последовательность событий, команды форматирования, интерактивные списки и логические базы данных.

Что такое программирование отчетов на ABAP?
SAPABAP поддерживает два типа программ – программы для создания отчетов и диалоговые программы. Программы для создания отчетов используются, когда необходимо отобразить большие объемы данных.
Назначение/использование программ отчетов
- Они используются, когда необходимо выбрать и обработать данные из нескольких таблиц перед их представлением.
- Используется, когда отчеты требуют особого формата.
- Используется, когда отчет необходимо загрузить с SAP на лист Excel для распределения.
- Используется, когда отчет необходимо отправить по почте конкретному лицу.
Важные моменты, на которые следует обратить внимание относительно программы отчетов
- Программы отчетов всегда являются исполняемыми программами. Тип программы всегда равен 1.
- Каждая программа отчетов соответствует определенному типу приложения, т. е. с продажами и дистрибуцией, FI – CO и т. д. Это также может быть перекрестное приложение, т. е. тип «*».
- Программирование отчетов — это программирование, управляемое событиями.
- Первой строкой программы отчетов всегда является Report. .
- Чтобы скрыть заголовок списка или название программы, необходимо добавить Нет стандартного заголовка страницы используется.
- Размер строки для конкретного отчета можно задать с помощью дополнения размер линии .
- Количество строк для конкретной страницы можно установить с помощью дополнения количество строк n(n1). N — количество строк на странице, а N1 — количество строк, зарезервированных для нижнего колонтитула страницы.
- Для отображения какой-либо информации или сообщения об ошибке мы добавляем в программу класс сообщений, используя дополнение: Идентификатор сообщения . Классы сообщений поддерживаются в SE91.
Поэтому идеальная программа отчетов должна начинаться с:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Программа для создания отчетов против программы для создания диалогов
Оба типа программ работают в одной системе, но решают противоположные задачи. Отчет считывает и отображает данные, а диалоговая программа позволяет пользователю управлять ими через экраны.
| Критерии | Отчет о программе | Диалоговая программа |
|---|---|---|
| Тип программы | Тип 1, исполняемый файл | Тип М, модульный пул |
| Автор | Название программы или код транзакции | Только код транзакции |
| Управление потоком | Такие события, как ИНИЦИАЛИЗАЦИЯ и НАЧАЛО ОТБОРА | Логика обработки экранных процессов с использованием модулей PBO и PAI. |
| Пользовательский ввод | Сгенерированный экран выбора | Экраны, разработанные в Screen Painter |
| Типичное использование | Отображение и загрузка больших объемов данных. | Создание и изменение бизнес-данных |
Экран выбора — это место, где отчет собирает необходимые данные, поэтому он будет описан далее.
Экран выбора
«Экран выбора» — это экран, на котором указываются входные значения, для которых должна выполняться программа.
Экран выбора обычно создается из
- Параметры
- Выбор-Параметры
Синтаксис
Selection-screen begin of screen <screen #> selection-screen begin of block <#> with frame title <text> ......... ......... selection-screen end of block <#> selection-screen end of screen <screen #>
Параметры
Параметры помогают осуществлять динамический выбор. Они могут вместить только одно значение за один цикл выполнения программы.
Синтаксис
Определение параметров как типа данных
Parameters p_id(30) type c.
Определение параметров, таких как поле таблицы.
Parameter p_id like <table name>-<field name>.
Параметрами могут быть как флажки, так и радиокнопки.
Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>. Parameters p_id2 radiobutton group <group name>.
Параметры могут быть списком.
Parameter p_id like <table name>-<field name> as listbox
Выберите параметры
Select-Option используется для ввода диапазона значений или набора значений в программу.
Синтаксис
select-options s_vbeln for vbak-vbeln.
На скриншоте показаны нижнее и верхнее поля ввода, которые генерирует выбранный вариант ответа, а также кнопка множественного выбора.
Вы также можете определить опцию выбора, например переменную
select-options s_vbeln for vbak-vbeln no intervals no-extension
После сбора входных данных программа реагирует на заданную последовательность событий.
События в программе отчетов ABAP
Программы отчетов ABAP программы, управляемые событиями. Различные события в программе отчета:
Загрузка программы
- Запускает связанное событие во внутреннем сеансе после загрузки программы типа 1, M, F или S.
- Также соответствующий блок обработки запускается один и только один раз для каждой программы и внутреннего сеанса.
- Блок обработки LOAD-OF-PROGRAM имеет примерно ту же функцию для ABAP-программа типа 1, M, F или S, как конструктор для классов в объектах ABAP.
Инициализация.
- Это событие выполняется до отображения экрана выбора.
- Инициализация всех значений.
- Вы можете назначить другие значения, отличные от значений по умолчанию на экране выбора.
- Вы можете заполнить экран выбора некоторыми значениями во время выполнения.
На экране выбора.
- Событие обрабатывается после обработки экрана выбора (в конце PAI).
- Здесь происходит проверка и проверка введенных значений.
Начало выбора.
- Здесь программа начинает выбирать значения из таблиц.
Конец выбора.
- После того, как все данные выбраны, это событие записывает данные на экран.
Интерактивные события
- Используется для интерактивной отчетности. Он используется для создания подробного списка из базового списка.
💡 Совет: Операторы, написанные без ключевого слова события, по умолчанию относятся к событию START-OF-SELECTION, поэтому отчет все равно будет запущен, даже если это событие отсутствует.
Пример: Простая программа для создания отчетов на ABAP.
Приведенная ниже программа объединяет данные о добавлениях, экран выбора и события в один рабочий отчет. Она считывает заголовки заказов на продажу из VBAK для чисел, введенных на экране выбора, и записывает их в виде списка.
REPORT z_sales_order_list NO STANDARD PAGE HEADING LINE-SIZE 80 LINE-COUNT 65(3) MESSAGE-ID zsd. TABLES: vbak. DATA: lt_vbak TYPE STANDARD TABLE OF vbak, ls_vbak TYPE vbak. * Selection screen SELECT-OPTIONS: s_vbeln FOR vbak-vbeln. PARAMETERS: p_erdat LIKE vbak-erdat. INITIALIZATION. p_erdat = sy-datum. AT SELECTION-SCREEN. IF p_erdat > sy-datum. MESSAGE e001(zsd). " Date must not lie in the future ENDIF. START-OF-SELECTION. SELECT * FROM vbak INTO TABLE lt_vbak WHERE vbeln IN s_vbeln AND erdat LE p_erdat. END-OF-SELECTION. LOOP AT lt_vbak INTO ls_vbak. WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr. HIDE ls_vbak-vbeln. ENDLOOP.
Следует отметить три детали. INITIALIZATION заполняет параметр даты до появления экрана выбора. AT SELECTION-SCREEN проверяет введенные данные и генерирует сообщение от класса ZSD. HIDE сохраняет порядковый номер каждой введенной строки, поэтому двойным щелчком можно создать из нее вторичный список, что и будет рассмотрено в следующем разделе.
Форматирование отчета
ABAP позволяет форматировать отчеты по желанию пользователя. Например, «Альтернативные строки» должны отображаться разными цветами, а строка «Итоги» должна отображаться желтым цветом.
Синтаксис
Format Color n Format Color n Intensified On
n может соответствовать различным числам
Обратите внимание, что помимо формата есть и другие дополнения.
FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF
Программирование интерактивных отчетов
- Использование интерактивного программирования позволяет пользователям активно управлять процессом извлечения и отображения данных.
- Используется для создания подробного списка на основе очень простого списка.
- Подробные данные записываются во вторичном списке.
- Вторичный список может либо полностью перекрывать первый экран, либо отображаться на новом экране.
- Вторичные списки сами по себе могут быть интерактивными.
- Первый список также может вызывать транзакцию.
- Проводятся различные мероприятия, связанные с интерактивным программированием.
Некоторые команды, используемые для интерактивного программирования
Hot Spot
Если навести указатель мыши на данные, отображаемые в отчете, курсор изменится на Руку с вытянутым указательным пальцем. Горячая точка может быть достигнута с помощью оператора FORMAT.
Syntax: Format Hotspot On (Off).
Спрятать
Эта команда поможет вам сохранить имена полей в зависимости от того, какое из них будет выполнять дальнейшую обработку, чтобы получить подробный список. Он записывается непосредственно после оператора WRITE для поля. Когда выбрана строка, значения автоматически заполняются переменными для дальнейшего использования.
Syntax: Hide <field-name>.
В отчетах, считывающих данные из множества таблиц, операторы SELECT можно заменить логической базой данных, как описано ниже.
Логические базы данных
- Вместо использования запросов «Выбрать» вы можете использовать логическую базу данных для получения данных для программы.
- Логические базы данных создаются транзакцией. SE36
- Имя логической базы данных может иметь длину до 20 символов. Оно может начинаться с префикса пространства имен.
- Данные выбираются другой программой, и доступ к ним можно получить с помощью GET. команда, которая помещает данные в рабочую область .
Преимущества логической базы данных по сравнению с обычными запросами Select.
- Он предлагает условия проверки, чтобы убедиться, что ввод правильный, полный и правдоподобный.
- Он содержит централизованную проверку авторизации для доступа к базе данных.
- Такие усовершенствования, как повышение производительности, немедленно применяются ко всем отчетам, использующим логическую базу данных.
Примечание. Из-за сложности логические базы данных в большинстве случаев не используются.
