В случае когда в вашем ALV объекте сосредоточено большое количество полей, при определении форматов могут возникать трудности поиска необходимого поля. Чтобы облегчить данный поиск вы можете объединять поля в группы, выглядит это следующим образом:
Для объединения полей в группы необходимо для начала их создать. Класс через который происходит создание этих групп называется cl_salv_specific_groups. Получить ссылку на этот объект можно из класса cl_salv_functional_settings, в свою очередь ссылку на него можно получить из главного объекта ALV. После создания полей, для всех полей группы необходимо задать ее идентификатор. Пример того как это делается:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | REPORT ZALV_SPECIFIC_GROUPS. DATA:       gt_data      TYPE spfli_tab,  " Таблица с данными       go_fun_set   TYPE REF TO cl_salv_functional_settings,       go_specg     TYPE REF TO cl_salv_specific_groups,       go_columns   TYPE REF TO cl_salv_columns_list,       go_column    TYPE REF TO cl_salv_column_list,       go_alv       TYPE REF TO cl_salv_table. START-OF-SELECTION.   SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE gt_data.   " Фабричный метод возвращяет экзмепляр ALV объекта   TRY.       cl_salv_table=>factory(          IMPORTING            r_salv_table = go_alv          CHANGING            t_table = gt_data ).     CATCH cx_salv_msg .       MESSAGE 'Ошибка при создании ALV' TYPE 'E'.   ENDTRY.   " Подключаем стандартные функции   go_alv->set_screen_status( EXPORTING                               REPORT = 'SAPLSALV_METADATA_STATUS'                               pfstatus = 'SALV_TABLE_STANDARD'                               set_functions = CL_SALV_MODEL_BASE=>C_FUNCTIONS_ALL ).   go_fun_set = go_alv->get_functional_settings( ).   " Создаем группу полей.   go_specg = go_fun_set->get_specific_groups( ).   go_specg->add_specific_group( ID = '1' text = 'Данные отправления' ).   " Добавляем поля в группу   go_columns = go_alv->get_columns( ).   TRY.     go_column ?= go_columns->get_column( 'CITYFROM' ).     go_column->set_specific_group( '1' ).     go_column ?= go_columns->get_column( 'AIRPFROM' ).     go_column->set_specific_group( '1' ).   CATCH cx_salv_not_found.   ENDTRY.   " Отобразить ALV представление   go_alv->display( ). | 
