Класс CL_GUI_SPLITTER_CONTAINER

By: Execution Blog | 1 Дек 2017

Класс, позволяющий, разделить область контейнера на подобласти, в каждой из которых можно вывести отдельную таблицу.

Для использования объекта класса cl_gui_splitter_container нужно определить следующие данные:

DATA: gc_custom_control_name TYPE scrfname VALUE 'CNTNR',
       gr_custom_container    TYPE REF TO cl_gui_custom_container,
       gr_ccontainer1         TYPE REF TO cl_gui_container,
       gr_ccontainer2         TYPE REF TO cl_gui_container,
       gr_splitter            TYPE REF TO cl_gui_splitter_container,
       gr_alvgrid1            TYPE REF TO cl_gui_alv_grid,
       gr_alvgrid2            TYPE REF TO cl_gui_alv_grid,
       gt_fieldcat            TYPE lvc_t_fcat,
       gs_layout              TYPE lvc_s_layo.

 

  • Как и в предыдущем примере на вновь созданном экране нарисуем область контейнера (custom control) и присвоим ему имя ‘CNTNR’.
  • Создадим объект класса cl_gui_custom_container:
CREATE OBJECT gr_custom_container
     EXPORTING
       container_name = gc_custom_control_name.
  • Создадим объект класса cl_gui_splitter_container
CREATE OBJECT gr_splitter
     EXPORTING
       rows    = 2
       columns = 1
       parent  = gr_custom_container.

Конструктору объекта класса cl_gui_splitter_container нужно указать на сколько строк и колонок мы хотим разделить область контейнера, ассоциированного с объектом gr_custom_container. В нашем случае это будет две области, расположенные одна под другой.

  • Закрепим первую (верхнюю) подобласть за подконтейнером gr_ccontainer1, указав координаты (1,1):
gr_ccontainer1 = gr_splitter->get_container( row = 1  column = 1 ).

Укажем созданному объекту gr_alvgrid1, подконтейнер для вывода:

CREATE OBJECT gr_alvgrid1
       EXPORTING
         i_parent = gr_ccontainer1.

Аналогично и для второй подобласти:

gr_ccontainer2 = gr_splitter->get_container( row = 2  column = 1 ).
 CREATE OBJECT gr_alvgrid2
       EXPORTING
         i_parent = gr_ccontainer2.
Поделиться