최초 작성일: 25.09.02
최종 작성일: 25.09.02
*&---------------------------------------------------------------------*
*& Report ZSAP04
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSAP05.
TABLES : SBOOK, SCUSTOM.
DATA : g_GRID1 TYPE REF TO cl_gui_alv_grid.
DATA : g_GRID2 TYPE REF TO cl_gui_alv_grid.
DATA : g_container1 TYPE REF TO cl_gui_custom_container.
DATA : g_container2 TYPE REF TO cl_gui_custom_container.
DATA : gt_sbook TYPE TABLE OF SBOOK.
DATA : gt_scustom TYPE TABLE OF Scustom.
SELECT-OPTIONS : S_CARRID FOR SBOOK-CARRID.
SELECT-OPTIONS : S_ID FOR Scustom-ID.
START-OF-SELECTION.
SELECT *
FROM SBOOK
WHERE CARRID IN @S_CARRID
INTO table @gt_sbook.
START-OF-SELECTION.
SELECT *
FROM Scustom
WHERE ID IN @S_ID
INTO table @gt_scustom.
END-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'GUI_STATUS_001'.
SET TITLEBAR 'GUI_TITLE_001'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module PBO_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE pbo_0100 OUTPUT.
CREATE OBJECT g_container1
EXPORTING
container_name = 'CONTAINER1'.
CREATE OBJECT g_container2
EXPORTING
container_name = 'CONTAINER2'.
CREATE OBJECT g_grid1
EXPORTING
i_parent = g_container1.
CREATE OBJECT g_grid2
EXPORTING
i_parent = g_container2.
CALL METHOD g_grid1->set_table_for_first_display
EXPORTING i_structure_name = 'sbook'
CHANGING
it_outtab = gt_sbook[].
CALL METHOD g_grid2->set_table_for_first_display
EXPORTING i_structure_name = 'scustom'
CHANGING
it_outtab = gt_scustom[].
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module EXIT INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE exit INPUT.
LEAVE TO SCREEN 0.
ENDMODULE.
[1단계]스크린 100번에 물리적인 영역 표시인 커스텀 컨트롤 그리기

[2단계]그 기초 위에 커스텀 컨테이너 클래스(CL_GUI_CUSTOM_CONTAINER)를 참조한 g_container 객체를 생성하고 연결
MODULE pbo_0100 OUTPUT.
CREATE OBJECT g_container1
EXPORTING
container_name = 'CONTAINER1'.
CREATE OBJECT g_container2
EXPORTING
container_name = 'CONTAINER2'.
[3단계]다시 그 위에 그리드 형태의 리스트를 만들어줄 ALV Grid 객체 'g_grid'를 모자 관계로 묶어줌
CREATE OBJECT g_grid1
EXPORTING
i_parent = g_container1.
CREATE OBJECT g_grid2
EXPORTING
i_parent = g_container2.
[4단계]실제 alv grid의 구조를 만들고 데이터를 뿌려주는 'set_table_for_first_disply' 메서도를 호출함
CALL METHOD g_grid1->set_table_for_first_display
EXPORTING i_structure_name = 'sbook'
CHANGING
it_outtab = gt_sbook[].
CALL METHOD g_grid2->set_table_for_first_display
EXPORTING i_structure_name = 'scustom'
CHANGING
it_outtab = gt_scustom[].
*리스트를 2개 만들어야 한다면 객체를 2개씩 만들면 되고, alv grid가 아닌 다른 객체를 새용하고 싶다면 해당 클래스를 찾아서 객체를 만든 다음 유사한 방식으로 연결해주면 됨
'SAP셀프스터디 > 삼성에서 ERP로 먹고사는 컨설턴트가 알려주는 ABAP of SAP' 카테고리의 다른 글
| Part 1 기본 프로그램 - 02. ABAP의 T코스(4/4) - Docking (0) | 2025.09.02 |
|---|---|
| Part 1 기본 프로그램 - 02. ABAP의 T코스(3/4) - splitter (0) | 2025.09.02 |
| 객체 지향 프로그래밍 (2) | 2025.09.01 |
| Part 1 기본 프로그램 - 02. ABAP의 T코스(1/4) (0) | 2025.09.01 |
| Part 1 기본 프로그램 - 01. Hello World는 사양합니다. (1/3) (2) | 2025.08.28 |