오늘은 스터디 4주차 리뷰를 진행하도록 하겠습니다.
그리고 어제로써 스터디가 종료되었는데요, 여러분들이랑 함께해서 너무 좋았고, 행복했습니다 :)
아참, 팽수보시나요? 요즘 팽수에 푹 빠졌는데.. 너무 귀엽더라고요 말도 재치있게 잘하고
쓸데없는 잡담이었습니다 ㅎㅎ. 리뷰를 진행할게요 ^^*
4주차 리뷰
- 프로그램 수정/저장
- Tabstrip
- Tabstrip 심화
4주차의 내용은 3주차 진행했던 프로그램 수정/저장은 이전 시간에 했던 것을 복습하고 추가로 수정, 저장, Data changed에 대해 더 알아보았고, Tabstrip을 진행하였습니다.
Toolbar 수정(edit) 버튼 on/off 기능
수정 버튼을 통해 데이터 수정 on/off 기능을 활용하고 스탠다드 툴바 역시 활성화하여 사용을 할 수 있습니다. 그러기 위해선 먼저 set_ready_for_input 에서 비활성 OFF: 0 먼저 입력해야겠죠?
CREATE GUID 생성
테이블 저장 시 고유한(Unique) key를 생성할 수 있는 방법이 있었죠?
테이블에 고유한 역할을 할 '필드추가' 및 GUID TYPE 설정 그리고 저장 로직에 고유한 GUID를 생성해서
매핑 시켜주어야 합니다 ^^
Tabstrip 실습
Tabstrip은 처음 접하면 햇갈릴 수는 있으나, 한번 제대로 배워놓으면 어렵지 않은 개념입니다.
Tabstrip 심화
Tabstrip을 구성하는 건 어렵지 않으나, 탭안에 여러개의 GRID가 있을 시에 각 영역과 역할에 따른 DATA 선언을 잘 해놓는게 중요합니다. 안그러면 데이터를 구성할 때 많이 햇갈릴 수 있어요.
INCLUDE TOP
DATA : G_GRID_110_1 TYPE REF TO CL_GUI_ALV_GRID,
G_GRID_110_2 TYPE REF TO CL_GUI_ALV_GRID,
G_GRID_110_3 TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER_110_1 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_CUSTOM_CONTAINER_110_2 TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
G_CUSTOM_CONTAINER_110_3 TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
DATA: GT_FIELDCAT_110_1 TYPE LVC_T_FCAT,
GT_FIELDCAT_110_2 TYPE LVC_T_FCAT,
GT_FIELDCAT_110_3 TYPE LVC_T_FCAT.
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT,
GT_SORT TYPE LVC_T_SORT,
GS_SORT TYPE LVC_S_SORT,
GS_VARIANT TYPE DISVARIANT,
GS_STABLE TYPE lvc_s_stbl,
GS_LAYOUT TYPE LVC_S_LAYO.
"항공사 수
DATA: BEGIN OF GS_LIST_110_1.
DATA:
NAME TYPE CHAR20,
CNT TYPE I,
END OF GS_LIST_110_1,GT_LIST_110_1 LIKE STANDARD TABLE OF GS_LIST_110_1.
"항공사 현황
DATA: BEGIN OF GS_LIST_110_2.
DATA:
NAME TYPE CHAR2,
MEMO TYPE CHAR20,
END OF GS_LIST_110_2,GT_LIST_110_2 LIKE STANDARD TABLE OF GS_LIST_110_2.
"항공사 총 누적수익합계
DATA: BEGIN OF GS_LIST_110_3.
DATA:
NAME TYPE CHAR20,
AMT(16) TYPE P DECIMALS 2,
END OF GS_LIST_110_3,GT_LIST_110_3 LIKE STANDARD TABLE OF GS_LIST_110_3.
MAIN SCREEN 100
MODULE SET_ALV_0110 OUTPUT.
IF G_CUSTOM_CONTAINER_110_1 IS INITIAL.
PERFORM CREATE_ALV_0110.
ELSE.
PERFORM REFRESH_ALV USING: G_GRID_110_1,
G_GRID_110_2,
G_GRID_110_3.
ENDIF.
ENDMODULE.
PERFORM CREATE_ALV_0110
FORM CREATE_ALV_0110 .
PERFORM SET_GRID_110.
PERFORM SET_LAYOUT.
PERFORM SET_FIELDCAT_110_1.
PERFORM SET_FIELDCAT_110_2.
PERFORM SET_FIELDCAT_110_3.
GS_LAYOUT-GRID_TITLE = '항공사 수'.
CALL METHOD G_GRID_110_1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BYPASSING_BUFFER = 'X'
IS_VARIANT = GS_VARIANT
I_SAVE = 'A'
IS_LAYOUT = GS_LAYOUT
IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
CHANGING
IT_OUTTAB = GT_LIST_110_1 "<--------TOP
IT_FIELDCATALOG = GT_FIELDCAT_110_1
IT_SORT = GT_SORT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
GS_LAYOUT-GRID_TITLE = '항공사 현황'.
CALL METHOD G_GRID_110_2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BYPASSING_BUFFER = 'X'
IS_VARIANT = GS_VARIANT
I_SAVE = 'A'
IS_LAYOUT = GS_LAYOUT
IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
CHANGING
IT_OUTTAB = GT_LIST_110_2 "<--------TOP
IT_FIELDCATALOG = GT_FIELDCAT_110_2
IT_SORT = GT_SORT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
GS_LAYOUT-GRID_TITLE = '항공사 수익현황'.
CALL METHOD G_GRID_110_3->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_BYPASSING_BUFFER = 'X'
IS_VARIANT = GS_VARIANT
I_SAVE = 'A'
IS_LAYOUT = GS_LAYOUT
IT_TOOLBAR_EXCLUDING = GT_EXCLUDE
CHANGING
IT_OUTTAB = GT_LIST_110_3 "<--------TOP
IT_FIELDCATALOG = GT_FIELDCAT_110_3
IT_SORT = GT_SORT
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
ENDFORM.
PERFORM SET_GRID_110
FORM SET_GRID_110 .
"SCREEN1
CREATE OBJECT g_custom_container_110_1
EXPORTING
container_name = 'CON_110_1'.
IF sy-subrc <> 0.
MESSAGE a000(tree_control_msg).
ENDIF.
CREATE OBJECT g_grid_110_1
EXPORTING
i_parent = g_custom_container_110_1.
"SCREEN 2
CREATE OBJECT g_custom_container_110_2
EXPORTING
container_name = 'CON_110_2'.
IF sy-subrc <> 0.
MESSAGE a000(tree_control_msg).
ENDIF.
CREATE OBJECT g_grid_110_2
EXPORTING
i_parent = g_custom_container_110_2.
"SCREEN 3
CREATE OBJECT g_custom_container_110_3
EXPORTING
container_name = 'CON_110_3'.
IF sy-subrc <> 0.
MESSAGE a000(tree_control_msg).
ENDIF.
CREATE OBJECT g_grid_110_3
EXPORTING
i_parent = g_custom_container_110_3.
ENDFORM.
PERFORM SET_FILEDCAT_0110_1
PERFORM SET_FILEDCAT_0110_2
PERFORM SET_FILEDCAT_0110_3
FORM SET_FIELDCAT_110_1 .
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'NAME'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_1.
GS_FIELDCAT-FIELDNAME = 'CNT'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_1.
ENDFORM.
FORM SET_FIELDCAT_110_2 .
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'NAME'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_2.
GS_FIELDCAT-FIELDNAME = 'MEMO'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_2.
ENDFORM.
FORM SET_FIELDCAT_110_3 .
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'NAME'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_3.
GS_FIELDCAT-FIELDNAME = 'AMT'.
APPEND GS_FIELDCAT TO GT_FIELDCAT_110_3.
ENDFORM.
PERFORM SET_LAYOUT
FORM SET_LAYOUT .
GS_LAYOUT-NO_TOOLBAR = 'X'.
GS_LAYOUT-SMALLTITLE = 'X'.
GS_LAYOUT-NO_HEADERS = 'X'.
ENDFORM.
SUBSCREEN 생성 및 세팅
CON_110_1 , CON_110_2, CON_110_3
여러분 4주차 동안 고생많았습니다. 여러분 모두 다 올해 더 잘되실꺼에요.
'SAP > SAP ABAP 스터디' 카테고리의 다른 글
ABAP 스터디 1주차 학습내용 (7) | 2021.06.10 |
---|---|
SAP ABAP [ 6월 스터디 모집 ] (21) | 2021.06.07 |
ABAP 스터디 결과물 정리 (0) | 2021.04.13 |
ABAP 스터디 3주차 리뷰 (0) | 2021.04.11 |
SAP ABAP 스터디 2주차 리뷰 (1) | 2021.04.05 |
댓글