Общие желаемые функции любого отчета - это «выравнивание столбцов», сортировка, фильтрация, промежуточные итоги, итоги и т. Д. Чтобы реализовать это с нуля, необходимо приложить много усилий по кодированию. Чтобы избежать этого, мы можем использовать концепцию под названием ABAP List Viewer (ALV).
В этом уроке вы узнаете:
- Простой отчет
- Заблокировать отчет
- Иерархические отчеты
- Варианты отображения
Каждый из этих отчетов содержит функциональные модули, которые помогают без особых усилий производить желаемый результат. Давайте посмотрим на них подробнее -
Простой отчет
Важными функциональными модулями в этом отчете являются:
- Reuse_alv_fieldcatalog_merge
- Reuse_alv_list_display
- Reuse_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. Таблицы:
- а. 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_LEND_B
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
- 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
- Вы можете предоставить опцию на экране выбора, чтобы выбрать, какой вариант отображения будет использоваться.
Общие функциональные модули, относящиеся к выбору / проверке вариантов отображения:
- Reuse_alv_variant_default_get
- Reuse_alv_variant_f4
- Reuse_alv_variant_existence
Это все, что касается программирования ABAP-ALV!