Шаблоны кода

Для начала формируем шаблон формирования простейшего 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 — и вуаля!