*&---------------------------------------------------------------------*
*& Report Y_ABC_E02
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Y_ABC_E02.
DATA: g_doc_cont TYPE REF TO cl_gui_docking_container.
DATA: g_grid_left TYPE REF TO cl_gui_alv_grid.
DATA: g_grid_right TYPE REF TO cl_gui_alv_grid.
DATA: g_grid2 TYPE REF TO cl_gui_alv_grid.
START-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module PBO_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE pbo_0100 OUTPUT.
IF g_doc_cont IS INITIAL.
CREATE OBJECT g_doc_cont
EXPORTING
ratio = '95'
side = cl_gui_docking_container=>dock_at_left. " 1
PERFORM frm_alv_global_splitter_object
USING g_doc_cont
CHANGING g_grid_left g_grid_right g_grid2.
ENDIF.
ENDMODULE. " PBO_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Form ALV_GLOBAL_SPLITTER_OBJECT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PA_DCON text
* -->PA_TOP text
* -->PA_BOTTOM text
* -->PV_HEIGHT text
*----------------------------------------------------------------------*
FORM frm_alv_global_splitter_object USING
pv_dcont TYPE REF TO cl_gui_docking_container
CHANGING
cv_grid1 TYPE REF TO cl_gui_alv_grid
cv_grid2 TYPE REF TO cl_gui_alv_grid
cv_grid3 TYPE REF TO cl_gui_alv_grid.
DATA: lv_split TYPE REF TO cl_gui_splitter_container.
DATA: lv_split2 TYPE REF TO cl_gui_splitter_container.
*-- 分开
DATA: lv_t1 TYPE i VALUE 1.
DATA: lv_t2 TYPE i VALUE 2.
PERFORM frm_split_cont USING pv_dcont 2 1 CHANGING lv_split.
PERFORM frm_split_cont2 USING lv_split 1 1 1 2 CHANGING lv_split2.
PERFORM frm_split_set_grid USING lv_split2 1 1 CHANGING cv_grid1.
PERFORM frm_split_set_grid USING lv_split2 1 2 CHANGING cv_grid2.
PERFORM frm_split_set_grid USING lv_split 2 1 CHANGING cv_grid3.
lv_split->set_row_height( id = 1 height = 35 ).
lv_split2->set_column_width( id = 1 width = 60 ).
ENDFORM. "alv_splitter_object
*&---------------------------------------------------------------------*
*& Form FRM_SPLIT_CONT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_SPLITTER1PA_DCON text
* -->P_1 text
* -->P_2 text
*----------------------------------------------------------------------*
FORM frm_split_cont
USING pv_dco_cont TYPE REF TO cl_gui_docking_container
pv_c1 pv_c2
CHANGING pv_splitter TYPE REF TO cl_gui_splitter_container.
IF pv_dco_cont IS NOT INITIAL.
CREATE OBJECT pv_splitter
EXPORTING
parent = pv_dco_cont
rows = pv_c1
columns = pv_c2.
ENDIF.
ENDFORM. " FRM_SPLIT_CONT
*&---------------------------------------------------------------------*
*& Form frm_split_cont2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PV_SPLIT text
* -->PV_P1 text
* -->PV_P2 text
* -->PV_C1 text
* -->PV_C2 text
* <--PV_SPLITTER text
*----------------------------------------------------------------------*
FORM frm_split_cont2
USING pv_split TYPE REF TO cl_gui_splitter_container
pv_p1 pv_p2 pv_c1 pv_c2
CHANGING pv_splitter TYPE REF TO cl_gui_splitter_container.
IF pv_split IS NOT INITIAL.
CREATE OBJECT pv_splitter
EXPORTING
parent = pv_split->get_container( row = pv_p1 column = pv_p2 )
rows = pv_c1
columns = pv_c2.
ENDIF.
ENDFORM. " FRM_SPLIT_CONT
*&---------------------------------------------------------------------*
*& Form FRM_SPLIT_CONT_SET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_SPLITTER1 text
* -->P_1 text
* -->P_1 text
* <--P_PA_TOP1 text
*----------------------------------------------------------------------*
FORM frm_split_set_grid
USING pv_split TYPE REF TO cl_gui_splitter_container
p_v1
p_v2
CHANGING cv_grid TYPE REF TO cl_gui_alv_grid.
DATA: pv_cont TYPE REF TO cl_gui_container.
CALL METHOD pv_split->get_container
EXPORTING
row = p_v1
column = p_v2
RECEIVING
container = pv_cont.
IF sy-subrc = 0.
CREATE OBJECT cv_grid "创建第一个ALV,并放在容器中
EXPORTING
i_parent = pv_cont.
ENDIF.
ENDFORM. " FRM_SPLIT_CONT_SET