ALV доклади в SAP Урок – ABAP List Viewer

Общите желани характеристики на всеки отчет са „подравняване на колони“, сортиране, филтриране, междинни суми, общи суми и т.н. За да се приложат тези от нулата, трябва да се положат много усилия за програмиране. За да избегнем това, можем да използваме концепция, наречена 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. Но в други случаи трябва да го създадем.

Забележка: Каталогът на полетата може да се попълни и ръчно чрез попълване на всички необходими подробности във вътрешната таблица

Важни параметри в са:

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_структура : име на таблицата с речник
  • Is_Layout : структура за задаване на оформлението на отчета
  • It_fieldcat : вътрешна таблица със списък на всички полета и техните атрибути, които трябва да бъдат отпечатани (тази таблица може да бъде попълнена автоматично от функцията)
  • It_events : вътрешна таблица със списък на всички възможни събития на ALV и съответните им имена на форми.

2. Таблици:

  • а. t_outtab : вътрешна таблица с данните за извеждане

REUSE_ALV_EVENTS_GET:

Връща таблица с възможни събития за тип списък

1. Внос:

Et_Events:Таблицата със събития се връща с всички възможни CALLBACK събития за посочения тип списък (колона „ИМЕ“). За да бъдат обработени събития от Обратното извикване, тяхното поле „ФОРМУЛЯР“ трябва да бъде попълнено. Ако полето е инициализирано, събитието се игнорира. Записът може да бъде прочетен от таблицата на събитията, полето „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.

Тази вътрешна таблица има три полета:

  1. Тип: 'H' – заглавка, 'S' – селекция, 'A' – действие
  2. Ключ: само когато типът е 'S'.
  3. Информация : текстът за печат

Доклад за блокиране

Това изглежда като прост отчет, но има функции само за сортиране и филтриране. Този отчет се използва, ако трябва да покажете повече от един отчет за изхода. Технически казано, ако имате множество вътрешни таблици с данни, които да се показват като отделни блокове, тогава отиваме за блоков отчет на 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

Износ:

  • I_CALLBACK_PROGRAM
  • I_CALLBACK_PF_STATUS_SET
  • I_CALLBACK_USER_COMMAND
  • IS_LAYOUT
  • It_fieldcat
  • It_events
  • 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
  • Можете да предоставите опция на екрана за избор, за да изберете какъв вариант на дисплея да се използва

Общите функционални модули, свързани с избора/валидирането на варианти на дисплея са

  1. Повторно използване_alv_variant_default_get
  2. Повторно използване_alv_variant_f4
  3. Повторно използване_alv_variant_existence

Това е всичко за ABAP – ALV програмиране!