SAP Програмування звітів ABAP
⚡ Розумний підсумок
Програмування звітів ABAP створює виконувані програми, які вибирають, обробляють та відображають великі обсяги SAP дані. На цій сторінці пояснюється додавання заголовків звітів, екран вибору, послідовність подій, команди форматування, інтерактивні списки та логічні бази даних.

Що таке програмування звітів ABAP?
SAP-ABAP підтримує два типи програм – програми звітів та діалогові програми. Програми звітів використовуються, коли потрібно відобразити великі обсяги даних.
Призначення/Використання програм для звітів
- Вони використовуються, коли дані з кількох таблиць потрібно вибрати та обробити перед представленням.
- Використовується, коли звіти вимагають спеціального формату
- Використовується, коли звіт потрібно завантажити з SAP на аркуш Excel для розподілу.
- Використовується, коли звіт потрібно надіслати певній особі.
Важливі моменти щодо програми Report
- Програми звітів – це завжди виконувані програми. Тип програми завжди 1.
- Кожна програма звіту відповідає певному типу додатка, тобто або до Sales & Distribution, FI – CO тощо. Це також може бути Cross Application, тобто тип '*'.
- Програмування звітів – це програмування, кероване подіями.
- Першим рядком програми звіту завжди є звіт .
- Щоб приховати заголовок списку або назву програми доповнення Немає стандартного заголовка сторінки використовується.
- Розмір рядка для окремого звіту можна встановити за допомогою доповнення рядковий розмір .
- Кількість рядків для певної сторінки можна встановити за допомогою додавання кількість рядків n(n1). N — це кількість рядків для сторінки, а N1 — кількість рядків, зарезервованих для нижнього колонтитула сторінки.
- Щоб відобразити будь-яку інформацію чи повідомлення про помилку, ми додаємо до програми клас повідомлень за допомогою доповнення: Ідентифікатор повідомлення . Класи повідомлень підтримуються в SE91.
Тому ідеальна програма звіту повинна починатися з:
Report <report name> no standard page heading line-size <size> line-count <n(n1)> message-id <message class>.
Програма звітів проти програми діалогів
Обидва типи програм працюють в одній системі, проте вони вирішують протилежні проблеми. Звіт зчитує та відображає дані, тоді як діалогова програма дозволяє користувачеві керувати ними через екрани.
| Критерії | Програма звітів | Програма діалогу |
|---|---|---|
| Тип програми | Тип 1, виконуваний файл | Тип M, модульний пул |
| Розпочато | Назва програми або код транзакції | Тільки код транзакції |
| Управління потоком | Такі події, як ІНІЦІАЛІЗАЦІЯ та ПОЧАТОК ВИБОРУ | Логіка потоку екрану з модулями 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 має приблизно ту саму функцію для an Програма 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
Програмування інтерактивних звітів
- За допомогою інтерактивного програмування користувачі можуть активно контролювати пошук та відображення даних.
- Використовується для створення детального списку з дуже простого списку
- Детальні дані записуються у вторинний список.
- Додатковий список може або повністю перекривати перший екран, або його можна відобразити на новому екрані
- Самі вторинні списки можуть бути інтерактивними.
- Перший список також може називати транзакцію.
- Існують різні заходи, пов'язані з інтерактивним програмуванням.
Деякі команди, які використовуються для інтерактивного програмування
Hotspot
Якщо провести мишею над даними, що відображаються у звіті, курсор зміниться на руку з витягнутим вказівним пальцем. Гарячу точку можна створити за допомогою оператора FORMAT.
Syntax: Format Hotspot On (Off).
приховувати
Ця команда допоможе вам зберегти назви полів, на основі яких буде здійснюватися подальша обробка, щоб отримати детальний список. Він записується безпосередньо після оператора WRITE для поля. Коли вибрано рядок, значення автоматично заповнюються змінними для подальшого використання.
Syntax: Hide <field-name>.
Звіти, які зчитують багато таблиць, можуть замінити свої оператори SELECT логічною базою даних, описаною нижче.
Логічні бази даних
- Замість використання запитів «Вибір» ви можете використовувати логічну базу даних для отримання даних для програми.
- Логічні бази даних створюються транзакцією SE36
- Ім’я логічної бази даних може містити до 20 символів. Він може починатися з префікса простору імен.
- Дані вибираються іншою програмою, і можна отримати доступ до даних за допомогою GET команда, яка розміщує дані в робочій області .
Переваги логічної бази даних перед звичайними запитами Select.
- Він пропонує умови перевірки, щоб перевірити, чи вхідні дані правильні, повні та правдоподібні
- Він містить централізовані перевірки авторизації для доступу до бази даних
- Такі вдосконалення, як покращення продуктивності, негайно застосовуються до всіх звітів, які використовують логічну базу даних.
Примітка: через складність логічні бази даних у більшості випадків не використовуються
