ALV звіти в SAP Підручник – Переглядач списків ABAP
Загальними бажаними функціями будь-якого звіту є «вирівнювання за стовпцями», сортування, фільтрація, проміжні підсумки, підсумки тощо. Щоб реалізувати це з нуля, потрібно докласти багато зусиль у програмуванні. Щоб уникнути цього, ми можемо використовувати концепцію під назвою ABAP List Viewer (ALV).
Кожен із цих звітів надає функціональні модулі які допомагають отримати бажаний результат без особливих зусиль. Розглянемо їх докладніше –
Простий звіт
Важливі функціональні модулі в них звітом є -
- Повторне використання_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Повторне використання_alv_events_get
- Reuse_alv_grid_display
- Reuse_alv_commentary_write
REUSE_ALV_FIELDCATALOG_MERGE
Цей функціональний модуль використовується для заповнення каталогу полів, який є важливим для відображення даних у ALV.
Якщо вихідні дані отримані з однієї словникової таблиці та вибрано всі стовпці, тоді нам не потрібно створювати виключно каталог полів. Досить згадати назву таблиці як параметр (I_structure_name) у REUSE_ALV_LIST_DISPLAY. Але в інших випадках нам потрібно його створити.
Примітка: Fieldcatalog можна також заповнити вручну, заповнивши всі необхідні дані у внутрішній таблиці
Важливими параметрами є:
1. Експорт:
- I_program_name : ідентифікатор звіту
- I_internal_tabname : внутрішня таблиця виведення
- I_inclname : включити або назву звіту, де обробляються всі динамічні форми.
2. Змінюється
- ct_fieldcat : ан внутрішній стіл з типом SLIS_T_FIELDCAT_ALV, який оголошено в пулі типів SLIS.
REUSE_ALV_LIST_DISPLAY
Це функціональний модуль, який друкує дані.
Важливими параметрами є:
1. Експорт:
- I_callback_program : ідентифікатор звіту
- I_bypassing_buffer : 'X'
- I_buffer_active : ' '
- I_callback_pf_status_set : процедура, за допомогою якої користувач може встановити власний статус pf або змінити функціональність існуючого статусу pf.
- I_callback_user_command : процедура, де обробляються коди функцій.
- I_structure name : назва таблиці словника
- Is_Layout : структура для встановлення макета звіту
- It_fieldcat : внутрішня таблиця зі списком усіх полів та їхніх атрибутів, які потрібно надрукувати (цю таблицю можна заповнити функцією автоматично)
- It_events : внутрішня таблиця зі списком усіх можливих подій ALV і відповідних імен форм.
2. Таблиці:
- a. t_outtab : внутрішня таблиця з даними для виведення
REUSE_ALV_EVENTS_GET:
Повертає таблицю можливих подій для типу списку
1. Імпорт:
Et_Events :Повертається таблиця подій із усіма можливими подіями CALLBACK для вказаного типу списку (стовпець «NAME»). Для того, щоб події оброблялися функцією зворотнього виклику, необхідно заповнити їх поле «ФОРМА». Якщо поле ініціалізовано, подія ігнорується. Запис можна прочитати з таблиці подій, заповнити поле «FORM» і змінити запис за допомогою констант із пулу типів SLIS.
2. Експорт:
I_list_type: 0 = простий список REUSE_ALV_LIST_DISPLAY
1 = ієрархічно-послідовний список REUSE_ALV_HIERSEQ_LIST_DISPLAY
2 = простий список блокувань REUSE_ALV_BLOCK_LIST_APPEND
3 = ієрархічно-послідовний список блокувань REUSE_ALV_BLOCK_LIST_HS_APPEND
REUSE_ALV_GRID_DISPLAY
Нова функція з версії ABAP4.6 для відображення результатів у таблиці, а не попереднього перегляду.
Параметри: те саме, що reuse_alv_list_display
Примітка. Grid не може працювати з великими обсягами. Такі функції, як сортування, прокручування вниз, споживають багато ресурсів / часу, якщо обсяг даних для відображення великий. Немає чіткого визначення, щоб якщо обсяг даних дорівнював X, використовуйте список або сітку, але розробник повинен прийняти дзвінок на основі свого досвіду. Якщо ви не впевнені, краще вибрати список
REUSE_ALV_COMMENTARY_WRITE
Це використовується в події Top-of-page для друку заголовків та інших коментарів до списку.
Важливі параметри
- It_list_commentary : внутрішня таблиця із заголовками типу slis_t_listheader.
Ця внутрішня таблиця має три поля:
- Тип: 'H' – заголовок, 'S' – виділення, 'A' – дія
- Клавіша : лише тоді, коли типом є «S».
- Інформація: текст для друку
Звіт про блокування
Це виглядає як простий звіт, але цей звіт має лише функції сортування та фільтрації. Цей звіт використовується, якщо вам потрібно відобразити більше одного звіту на виході. Технічно кажучи, якщо у вас є кілька внутрішніх таблиць із даними, які відображаються як окремі блоки, тоді ми використовуємо звіт про блоки ALV.
Для створення цього звіту використовуються такі важливі функції:
- REUSE_ALV_BLOCK_LIST_INIT
- REUSE_ALV_BLOCK_LIST_APPEND
- REUSE_ALV_BLOCK_LIST_DISPLAY
REUSE_ALV_BLOCK_LIST_INIT
Цей функціональний модуль використовується для встановлення стану графічного інтерфейсу за замовчуванням тощо. Параметри подібні до тих, що використовуються в reuse_alv_list_display або reuse_alv_grid_display
REUSE_ALV_BLOCK_LIST_APPEND
Цей функціональний модуль додає дані до блоку.
Важливі параметри
1. Експорт:
- is_layout : налаштування макета для блоку
- it_fieldcat : каталог полів
- I_tabname : внутрішня назва таблиці з усіма можливими подіями
2.Таблиці:
- t_outtab : внутрішня таблиця з вихідними даними.
REUSE_ALV_BLOCK_LIST_DISPLAY
Цей функціональний модуль відображає список із даними, доданими згаданою вище функцією.
Параметри: усі параметри є необов’язковими.
Ієрархічні звіти
Ієрархічне відображення використовується для відображення пов’язаних даних. Як замовлення на продаж і деталі товару. Тут деталі замовлення на продаж можуть бути даними заголовка, тоді як елементи в замовленні на продаж можуть бути даними товару
Для цього використовується функціональний модуль
REUSE_ALV_HIERSEQ_LIST_DISPLAY
Експорт:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- IS_LAYOUT
- It_fieldcat
- Це_події
- I_tabname_header : Ім’я внутрішньої таблиці в програмі, що містить вихідні дані найвищого рівня ієрархії.
- I_tabname_item : назва внутрішньої таблиці в програмі, що містить вихідні дані найнижчого рівня ієрархії.
- Is_keyinfo : ця структура містить заголовок і назви полів таблиці елементів, які пов’язують дві таблиці (спільний ключ).
таблиці
- t_outtab_header : Таблиця заголовків із даними для виведення
- t_outtab_item : назва внутрішньої таблиці в програмі, що містить вихідні дані найнижчого рівня ієрархії.
Усі визначення внутрішніх таблиць, структур і констант оголошено в пулі типів під назвою SLIS. Ця внутрішня таблиця може бути заповнена автоматично за допомогою REUSE_ALV_FIELDCATALOG_MERGE'.
Варіанти відображення
- Варіанти відображення використовуються для встановлення властивостей за замовчуванням виводу alv, таких як критерії сортування, критерії фільтрації, загальні та проміжні підсумки тощо
- Варіанти відображення можуть бути індивідуальними та стандартними (стандартні варіанти можуть використовуватися будь-яким користувачем)
- Види варіантів відображення, які можна зберегти, контролюються параметром i_save, який передається у функціональних модулях reuse_alv_list_display / reuse_alv_grid_display
- Ви можете надати опцію на екрані вибору, щоб вибрати, який варіант відображення використовувати
Загальні функціональні модулі, пов’язані з вибором/підтвердженням варіантів відображення
- Повторне використання_alv_variant_default_get
- Повторне використання_alv_variant_f4
- Reuse_alv_variant_existence
Це все ABAP – Програмування ALV!