Для начала формируем шаблон формирования простейшего ALV grid.
[codesyntax lang=»abap»]
" Вынести в ТОП " Выходная таблица %Имя Выходной таблицы% уже должна быть объявлена в ТОП " Объект ALV Grid DATA go_%Имя ALV% TYPE REF TO cl_gui_alv_grid. *&---------------------------------------------------------------------* *& Form init_%Имя ALV% *&---------------------------------------------------------------------* * Изициализация ALV *----------------------------------------------------------------------* FORM init_%Имя ALV%. DATA ls_variant TYPE disvariant. DATA ls_layout TYPE lvc_s_layo. DATA lt_fieldcatalog TYPE lvc_t_fcat. IF go_%Имя ALV% IS NOT BOUND. " Создаем объект ALV CREATE OBJECT go_%Имя ALV% EXPORTING i_parent = cl_gui_container=>screen0 EXCEPTIONS error_cntl_create = 1 error_cntl_init = 2 error_cntl_link = 3 error_dp_create = 4 OTHERS = 5. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. " Создаем каталог полей PERFORM %Имя ALV%_fcat_prepare USING %Имя Выходной таблицы% CHANGING lt_fieldcatalog. ls_variant-report = sy-repid. ls_layout-zebra = abap_true. " Вывести ALV CALL METHOD go_%Имя ALV%->set_table_for_first_display EXPORTING is_variant = ls_variant i_save = 'X' i_default = 'X' is_layout = ls_layout CHANGING it_outtab = %Имя Выходной таблицы% it_fieldcatalog = lt_fieldcatalog EXCEPTIONS invalid_parameter_combination = 1 program_error = 2 too_many_lines = 3 OTHERS = 4. ELSE. go_%Имя ALV%->refresh_table_display( ). ENDIF. ENDFORM. "init_%Имя ALV% *&---------------------------------------------------------------------* *& Form %Имя ALV%_fcat_prepare *&---------------------------------------------------------------------* * Создаем каталог полей *----------------------------------------------------------------------* FORM %Имя ALV%_fcat_prepare USING it_outtab TYPE STANDARD TABLE CHANGING ct_fcat TYPE lvc_t_fcat. " Опсиать каталог полей FIELD-SYMBOLS <fs_fcat> LIKE LINE OF ct_fcat. DATA lo_salv_table TYPE REF TO cl_salv_table. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = lo_salv_table CHANGING t_table = ct_fcat ). ct_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog( r_columns = lo_salv_table->get_columns( ) " ALV Filter r_aggregations = lo_salv_table->get_aggregations( ) " ALV Aggregations ). CATCH cx_root. ENDTRY. LOOP AT ct_fcat ASSIGNING <fs_fcat>. CASE <fs_fcat>-fieldname. WHEN 'FIELD1'. ..... WHEN 'FIELD2'. ..... ENDCASE. ENDLOOP. ENDFORM. "%Имя ALV%_fcat_prepare
[/codesyntax]
Далее в коде вводим *alv [TAB].
Заполняем имя таблицы и имя ALV — и вуаля!