728x90
반응형
스플릿은 한 컨테이너를 여러개로 나눠서 다른 ALV 화면을 보여줄수 있는 기능이다. 일반 ALV에선 CUSTOM CONTAINER를 사용했지만 스플릿 ALV에서는 SPLIT CONTAINER를 사용한다.
[초기화면 구성]
TABLES SCARR.
SELECT-OPTIONS: s_carrid FOR scarr-carrid.
셀렉트 옵션에서 사용하는 필드의 테이블은 TABLES로 선언 되어야한다. STRUCTURE로 사용되기 때문이다.
[실행화면 구성]
셀렉트옵션에 값을 입력하고 실행하면 해당하는 데이터가 나오게 하기 위해 테이블 SCARR를 참조하는 INTERNAL TABLE과 STRUCTURE를 선언해주고 INTERNAL TABLE에 SCARR의 데이터를 넣어준다.
셀렉트옵션은 범위값이기 때문에 WHERE조건에서 IN으로 조건을 준다.
DATA: gs_tab TYPE scarr,
gt_tab TYPE TABLE OF scarr.
SELECT * FROM scarr
INTO TABLE gt_tab
WHERE carrid IN s_carrid.
[화면 ALV 구성]
ALV를 출력해줄 화면을 하나 생성해준다. 화면에는 컨테이너를 그려준다.
컨테이너는 하나기때문에 컨테이너 변수 하나만 선언해주고 컨테이너를 구분해줄 2개의 SPLIT변수와 ALV는 총 3개가 나와야하므로 그리드 변수는 세개를 선언해준다.
DATA: g_custom_con TYPE REF TO cl_gui_custom_container,
g_split1 TYPE REF TO cl_gui_easy_splitter_container,
g_split2 TYPE REF TO cl_gui_easy_splitter_container,
g_alv1 TYPE REF TO cl_gui_alv_grid,
g_alv2 TYPE REF TO cl_gui_alv_grid,
g_alv3 TYPE REF TO cl_gui_alv_grid.
실행했을때 ALV가 보여야하므로 PBO에 ALV를 구현하는 로직을 넣어준다.
CHECK g_custom_con IS INITIAL.
CREATE OBJECT g_custom_con
EXPORTING
container_name = 'HD_CON'.
CREATE OBJECT g_split1
EXPORTING
parent = g_custom_con
orientation = cl_gui_easy_splitter_container=>orientation_vertical.
CREATE OBJECT g_split2
EXPORTING
parent = g_split1->bottom_right_container
orientation = cl_gui_easy_splitter_container=>orientation_vertical.
CREATE OBJECT g_alv1
EXPORTING
i_parent = g_split1->top_left_container.
CREATE OBJECT g_alv2
EXPORTING
i_parent = g_split2->top_left_container.
CREATE OBJECT g_alv3
EXPORTING
i_parent = g_split2->bottom_right_container.
각 ALV GRID에 출력될 내용을 구현해준다. OUTTAB
에는 어떤 INTERNAL TABLE을 보여줄건지, 보여줄 INTERNAL TABLE을 입력한다. ALV를 SCARR 테이블의 전체를 보여주면 되기때문에 STRUCTURE_NAME
에 테이블 이름을 넣어줬지만 몇몇 특정 필드들만 보여주고 싶다면 수동으로 필드 카탈로그를 구성한뒤에 메소드 호출부분에 필드 카탈로그 이름을 입력해주면 된다.
CALL METHOD g_alv1->set_table_for_first_display
EXPORTING
i_structure_name = 'SCARR'
CHANGING
it_outtab = gt_tab.
CALL METHOD g_alv2->set_table_for_first_display
EXPORTING
i_structure_name = 'SCARR'
CHANGING
it_outtab = gt_tab.
CALL METHOD g_alv3->set_table_for_first_display
EXPORTING
i_structure_name = 'SCARR'
CHANGING
it_outtab = gt_tab.
728x90
반응형
'ABAP' 카테고리의 다른 글
ALV 7 (0) | 2023.02.16 |
---|---|
ALV 6 (필드카탈로그 구성) (0) | 2023.02.16 |
ALV 4 (Layout) (0) | 2023.02.16 |
ALV 3 (Hotspot) (0) | 2023.02.16 |
ALV 2 (이벤트) (0) | 2023.02.16 |
댓글