Общите желани характеристики на всеки отчет са "подравняване на колони", сортиране, филтриране, междинни суми, общи суми и т.н. За да ги приложите от нулата, трябва да се положат много усилия за кодиране. За да избегнем това, можем да използваме концепция, наречена ABAP List Viewer (ALV).
В този урок ще научите:
- Прост доклад
- Блокиране на доклад
- Йерархични доклади
- Показване на варианти
Всеки от тези отчети предоставя функционални модули, които помагат за получаването на желания резултат без много усилия. Нека ги разгледаме в детайли -
Прост доклад
Важните функционални модули в този отчет са -
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_alv_events_get
- Повторно използване_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. Маси:
- а. t_outtab: вътрешна таблица с данните за извеждане
REUSE_ALV_EVENTS_GET:
Връща таблица на възможните събития за тип списък
1. Внос:
Et_Events: Таблицата на събитията се връща с всички възможни събития CALLBACK за посочения тип списък (колона „ИМЕ“). За да бъдат обработени събития от Обратното обаждане, трябва да се попълни полето „ФОРМА“. Ако полето е инициализирано, събитието се игнорира. Записът може да се прочете от таблицата на събитията, полето „ФОРМА“ се попълва и записът се модифицира с помощта на константи от типовия пул 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_BLACK_ENDL
REUSE_ALV_GRID_DISPLAY
Нова функция от версия ABAP4.6, която показва резултатите в мрежа, а не във визуализация.
Параметри: същите като reuse_alv_list_display
Забележка: Решетката не може да се справи с големи обеми. Функции като сортиране, превъртане надолу отнема много ресурси / време, ако обемът на данните, които трябва да се покажат, е голям. Няма ясна дефиниция, така че ако количеството данни е 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
Този функционален модул се използва за задаване на GUI състояние по подразбиране и т.н. Параметрите са подобни на този, използван в 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
Export:
- I_CALLBACK_PROGRAM
- I_CALLBACK_PF_STATUS_SET
- I_CALLBACK_USER_COMMAND
- ИЗГРАЖДАНЕ
- It_fieldcat
- It_events
- I_tabname_header: Име на вътрешната таблица в програмата, съдържаща изходните данни от най-високото ниво на йерархия.
- I_tabname_item: Име на вътрешната таблица в програмата, съдържаща изходните данни на най-ниското ниво на йерархия.
- Is_keyinfo: Тази структура съдържа имената на полетата на заглавката и елементите, които свързват двете таблици (споделен ключ).
Маси
- t_outtab_header: Заглавна таблица с данни за извеждане
- t_outtab_item: Име на вътрешната таблица в програмата, съдържаща изходните данни на най-ниското ниво на йерархия.
Всички дефиниции на вътрешни таблици, структури и константи са декларирани в типов пул, наречен SLIS. Тази вътрешна таблица може да се попълва автоматично с помощта на REUSE_ALV_FIELDCATALOG_MERGE '.
Показване на варианти
- Вариантите на дисплея се използват за задаване на свойствата по подразбиране на алв изход като критерии за сортиране, критерии за филтриране, общо и междинно изчисление и т.н.
- Вариантите на дисплея могат да бъдат специфични за потребителя и стандартни (стандартните варианти могат да се използват от всеки потребител)
- Вид варианти на дисплея, които могат да бъдат запазени, се контролира от параметъра i_save, който се предава във функционалните модули reuse_alv_list_display / reuse_alv_grid_display
- Можете да предоставите опция на екрана за избор, за да изберете какъв вариант на дисплея да се използва
Общите функционални модули, свързани с избор / валидиране на варианти на дисплея, са
- Повторно използване_alv_variant_default_get
- Повторно използване_alv_variant_f4
- Повторно използване_alv_variant_existence
Това е всичко за програмирането на ABAP- ALV!