2-1. DOCK Container 생성
CREATE OBJECT go_dock
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_top
extension = 1000
CREATE OBJECT go_split
EXPORTING
parent = go_dock
rows = 2 " 몇 개의 행으로 나눌 것인지.
columns = 1 " 몇 개의 열로 나눌 것인지.
get_container
* split container에 container에 올리기.
CALL METHOD go_split->get_container
* 첫번째 row의 첫번째 열을 go_top과 연결하겠다는 구문
EXPORTING
row = 1
column = 1
RECEIVING
container = go_top.
CALL METHOD go_split->get_container
* 2번쨰 row의 첫번째 열을 go_top과 연결하겠다는 구문
EXPORTING
row = 2
column = 1
RECEIVING
container = go_bot.
set_row_height
CALL METHOD go_split->set_row_height
EXPORTING
id = 1
height = 50 " %로 옴.
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
해당 컨데이터는 두개의 행과 한개의 열로 분리했기 때문에 SET_ROW_HEIGHT를 사용하여 행의 높이를 설정하는것입니다. (두개의 행으로 나눴으니 순서대로 ID = 1, 2 이다)
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_top.
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_bot.
DATA: go_dock TYPE REF TO cl_gui_docking_container,
go_dock2 TYPE REF TO cl_gui_docking_container,
go_split TYPE REF TO cl_gui_splitter_container,
go_top TYPE REF TO cl_gui_container,
go_bot TYPE REF TO cl_gui_container,
go_right TYPE REF TO cl_gui_container.
* docking1
CREATE OBJECT go_dock
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_left
extension = 1000
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* docking2
CREATE OBJECT go_dock2
EXPORTING
repid = sy-repid
dynnr = sy-dynnr
side = cl_gui_docking_container=>dock_at_right
extension = 1000
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_split
EXPORTING
parent = go_dock
rows = 2 " 몇 개의 행으로 나눌 것인지.
columns = 1 " 몇 개의 열로 나눌 것인지.
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* split container에 container에 올리기.
CALL METHOD go_split->get_container
* 첫번째 행의 첫번째 열을 go_top과 연결하겠다는 구문
EXPORTING
row = 1
column = 1
RECEIVING
container = go_top. " go_dock2
CALL METHOD go_split->get_container
* 2번쨰 row의 첫번째 열을 go_top과 연결하겠다는 구문
EXPORTING
row = 2
column = 1
RECEIVING
container = go_bot.
* row 높이 설정.
CALL METHOD go_split->set_row_height
EXPORTING
id = 1
height = 70 " %로 옴.
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
* ALV GIRD와 연결
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_top
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.
* 여기서 이제 set_table_for~~
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_bot
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.
벨로그는 abap syntax를 지원하지 않아서 부득이하게 sql 언어 형식으로 작성된 점 이해해주세여~.