SPLITTER_CONTAINER
1. DOCKING 객체 변수 생성 (DOCKING CONTAINER 참조)
2. SPLITTER 객체 변수 생성
DATA : GC_SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER.
3. SPLITTER 객체 생성
CREATE OBJECT GC_SPLITTER
EXPORTING
* LINK_DYNNR =
* LINK_REPID =
* SHELLSTYLE =
* LEFT =
* TOP =
* WIDTH =
* HEIGHT =
* METRIC = cntl_metric_dynpro
* ALIGN = 15
PARENT = GC_DOCKING
ROWS = 2
COLUMNS = 1
* NO_AUTODEF_PROGID_DYNNR =
* NAME =
* 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.
4. CONTAINER 변수 생성
DATA : GC_CONTAINER1 TYPE REF TO CL_GUI_CONTAINER.
DATA : GC_CONTAINER2 TYPE REF TO CL_GUI_CONTAINER.
5. METHOD 호출 : SPLITTER에 각각의 CONTAINER 호출
CALL METHOD GC_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 1
COLUMN = 1
RECEIVING
CONTAINER = GC_CONTAINER1.
CALL METHOD GC_SPLITTER->GET_CONTAINER
EXPORTING
ROW = 2
COLUMN = 1
RECEIVING
CONTAINER = GC_CONTAINER2.
6. GRID 변수 생성
DATA : GC_GRID1 TYPE REF TO CL_GUI_ALV_GRID.
DATA : GC_GRID2 TYPE REF TO CL_GUI_ALV_GRID.
7. CONTAINER에 GRID 붙이기
CREATE OBJECT GC_GRID1
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = GC_CONTAINER1
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =
* I_FCAT_COMPLETE = SPACE
* 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.
CREATE OBJECT GC_GRID2
EXPORTING
* I_SHELLSTYLE = 0
* I_LIFETIME =
I_PARENT = GC_CONTAINER2
* I_APPL_EVENTS = space
* I_PARENTDBG =
* I_APPLOGPARENT =
* I_GRAPHICSPARENT =
* I_NAME =
* I_FCAT_COMPLETE = SPACE
* 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.
8. ALV 호출
FORM ALV_DISPLAY .
CALL METHOD GC_GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
IS_VARIANT = GS_VARIANT
I_SAVE = 'A'
* I_DEFAULT = 'X'
IS_LAYOUT = GS_LAYOUT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = GT_STUDENT
IT_FIELDCATALOG = GT_FIELDCAT1
IT_SORT = GT_SORT1
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CALL METHOD GC_GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
IS_VARIANT = GS_VARIANT
I_SAVE = 'A'
* I_DEFAULT = 'X'
IS_LAYOUT = GS_LAYOUT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = GT_STUDENT
IT_FIELDCATALOG = GT_FIELDCAT2
IT_SORT = GT_SORT2
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
- 필드 카탈로그, SORT, 레이아웃 변수 선언 (각각 지정하기)
DATA : GS_FIELDCAT TYPE LVC_S_FCAT.
DATA : GS_FIELDCAT1 TYPE LVC_T_FCAT.
DATA : GS_FIELDCAT2 TYPE LVC_T_FCAT.
DATA : GS_LAYOUT TYPE LVC_S_LAYO.
DATA : GS_SORT TYPE LVC_S_SORT.
DATA : GT_SORT1 TYPE LVC_T_SORT.
DATA : GT_SORT2 TYPE LVC_T_SORT.