Глава 2. Два ALV GRID на одном экране. Часть 4
Цель данной главы - создать отчет с двумя ALV Grid.
§6. Класс представления заголовка и позиций
Необходимо создать следующие объекты:
Имя объекта |
Тип |
Назначение |
ZCL_MVC_002_HEAD_VIEW |
Класс |
Класс представления данных. |
ZCL_MVC_002_POSITIONS_VIEW |
Класс |
Класс представления данных. |
В транзакции SE24 создаем класс ZCL_MVC_002_HEAD_VIEW.
Рис. 1
Рис. 2
Рис. 3
Рис. 4
Рис. 5
Отличие от предыдущего примера в том, что CONTAINER будет создаваться в классе котроллер, а не в классе представления данных и отправляться как параметр IO_CONTAINER.
Рис. 6
Рис. 7
Рис. 8
METHOD zif_alv_grid_template~fill_fieldcatalog.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZST_MVC_002_HEAD_ALV'
CHANGING
ct_fieldcat = et_fieldcatalog
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
ENDMETHOD.
METHOD zif_alv_grid_template~fill_layout.
es_layout-cwidth_opt = abap_true.
es_layout-sel_mode = 'A'.
ENDMETHOD.
METHOD constructor.
CALL METHOD me->set_context
EXPORTING
it_outtab = it_outtab.
CHECK io_container IS BOUND.
CREATE OBJECT mo_alv_grid
EXPORTING
i_parent = io_container.
DATA: lt_fieldcatalog TYPE lvc_t_fcat.
CALL METHOD me->fill_fieldcatalog
IMPORTING
et_fieldcatalog = lt_fieldcatalog.
DATA: ls_variant TYPE disvariant.
ls_variant-report = i_repid.
DATA: ls_layout TYPE lvc_s_layo.
CALL METHOD me->zif_alv_grid_template~fill_layout
IMPORTING
es_layout = ls_layout.
mo_alv_grid->set_table_for_first_display(
EXPORTING
is_variant = ls_variant
i_save = 'A'
is_layout = ls_layout
i_bypassing_buffer = abap_true
CHANGING
it_outtab = mt_outtab
it_fieldcatalog = lt_fieldcatalog ).
CALL METHOD register_events.
CALL METHOD mo_alv_grid->refresh_table_display.
ENDMETHOD.
METHOD set_context.
mt_outtab = it_outtab.
ENDMETHOD.
METHOD free.
IF mo_alv_grid IS BOUND.
CALL METHOD mo_alv_grid->free.
FREE mo_alv_grid.
ENDIF.
ENDMETHOD.
В транзакции SE24 создаем класс ZCL_MVC_002_POSITIONS_VIEW.
Рис. 9
Рис. 10
Рис. 11
Рис. 12
Рис. 13
Рис. 14
Рис. 15
Рис. 16
METHOD zif_alv_grid_template~fill_fieldcatalog.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZST_MVC_002_POS_ALV'
CHANGING
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 1
Комментарий от
Анатолий Ермаков
| 16 января 2015, 16:03
- для 1-го грида ls_variant-handle = '1'.
- для 2-го грида ls_variant-handle = '2'.
Без этого выбор варианта в любом из гридов будет применяться и к другому.