안녕하세요, 여러분
스터디 2주차 리뷰를 시작하겠습니다.
2주차에는 '화면'을 많이 다뤘습니다. ALV구조와 스크린1000번에서 작업해줘야 하는 리포트프로그램 구조에 대해서 알아보았고, 각 화면에 대한 PAI와 PBO를 알아보았습니다.
다룬 내용들 =>
화면 구성
1. 리포트프로그램 구조
- SELECT-OPTION ( PARAMETER & SELECTION-OPTION)
- SELECTION-SCREEN
- AT SELECTION-SCREEN (PAI)
- AT SELECTION-SCREEN OUTPUT (PBO)
2. ALV 구조
- GRID, CONTAINER ex) g_grid , g_container
- LAYOUT
- VARIENT
- FIELDCATALOG(필드카탈로그) ex) GT_FIELDCAT
- ITAB(인터널테이블) ex) GT_LIST
그리고 GRID EVENT에 대해 알아보았습니다.
SELECTION-SCREEN 구조
PARAMETER & SELECT-OPTION : 리포트프로그램에서 파라미터 인수 값을 받기위한 작업 구문 형태
PARAMETER : 단일 변수 값 , SELECT-OPTION : 두 개의 변수 값
PARAMETER는 TYPE 기준으로 선언하며,SELECT-OPION FOR 문 같은 경우 참조하는 테이블을 먼저 선언해줘야 에러가 발생하지 않습니다 ^^*
그리고 SELECT-OPTION에서 받는 파라미터는 2개 이상이기 때문에
쿼리문 SELECT FROM WHERE 에서 EQ가 아니라 IN 으로 해줘야 합니다.
추가적인 내용과 예제소스코드를 첨부하였습니다. 참고해주세요.
ALV 구조
ALV 를 화면에 나타나기 위해선 여러 구성요소들이 있습니다.
ALV구성요소 =>
GRID
CONTAINER
화면생성
ITAB(인터널테이블)
필드카탈로그
레이아웃(Layout)
Varient
ALV 생성 메소드 ex) set_table_for_first_display
1. Global Data INCLUDE TOP - GRID와 CONTAINER 선언
DATA : G_GRID TYPE REF TO CL_GUI_ALV_GRID,
G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
ALV를 보여줄 화면 PBO에 선언한 데이터 생성(CREATE)
CONTAINER는 보여줄 화면에 사용자제어 NAME 'CTRL1' 일치하여야 합니다.
2. 필드카탈로그(FieldCatalog) , ITAB(인터널테이블)
필드 카탈로그는 ALV에 조회할 데이터의 컬럼들을 결정해줍니다. 그리고 필드카탈로그는 LVC_T_FCAT 을 참조합니다.
INCLUDE TOP
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
GS_FIELDCAT TYPE LVC_S_FCAT.
DATA: BEGIN OF GS_LIST.
DATA:
CARRID LIKE SFLIGHT-CARRID ,
CONNID LIKE SFLIGHT-CONNID ,
.
.
.
KOREA_DATE(8) TYPE N,
END OF GS_LIST,GT_LIST LIKE STANDARD TABLE OF GS_LIST.
관련 펑션 REUSE_ALV_FIELDCATALOG_MERGE
I_INTERNAL_TABNAME = 에 Dictionary 구조체 또는 인터널테이블의 정보를 입력하면 Field catalog를 가져올 수 있습니다. 단, GS_LIST에 들어있는 DATA형식들이 LIKE문으로 선언이 되어야하며 Dictionary를 참조할 경우도 TYPE이 아니라 LIKE 형태로 바꿔줘야 합니다. TYPE으로 사용할 것이라면 C,I,등 기본타입은 됩니다.
그리고 필드카탈로그는 90개가 넘어가면 자동으로 보여주지 않습니다. 또 키 필드를 자동으로 열고정을 해줍니다.
관련 정보는 펑션에 F1을 누르면 볼 수 있습니다.
3. ALV 생성 메소드
최초로 ALV DISPLAY 생성하는 메소드 1 번만 실행이 됩니다.
INCLUDE TOP
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
GT_SORT TYPE LVC_T_SORT,
GS_VARIANT TYPE DISVARIANT,
GS_LAYOUT TYPE LVC_S_LAYO,
GT_EXCLUDE TYPE UI_FUNCTIONS.
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
IS_VARIANT = GS_VARIENT (용자가 화면에 보여지는 필드들을 수정하였을 경우 이를 저장하기 위해 사용)
I_SAVE = 'A' ( A: 전체사용가능 X: Global layout만 U: 특정 유저만 SPACE: 레이아웃 저장 안함 )
IS_LAYOUT = GS_LAYOUT (레이아웃에 다양한 옵션 정보를 담고 있습니다( COLORLINE , CELLTAB, 등 )
IS_TOOLBAR_EXCLUDING = GT_TOOLBAR (보여지는 툴바를 컨트롤 하는 정보를 담고 있습니다)
CHANGING
IT_OUTTAB = GT_LIST (인터널테이블 정보)
IT_FIELDCATALOG = GT_FIELDCAT ( 펑션 MERGE에서 받아온 GT_FILEDCAT 정보 )
IT_SORT = GT_SORT ( ALV 정렬에 대한 정보 )
아참 METHOD나 FUNCTION에서 EXCEPTIONS 예외처리문입니다.
VARIENT
LAYOUT
TOOLBAR
SORT
사용방법들은 별도의 상세 포스팅으로 소개해드리겠습니다 :)
고생많으셨습니다.
감사합니다.
'SAP > SAP ABAP 스터디' 카테고리의 다른 글
ABAP 스터디 결과물 정리 (0) | 2021.04.13 |
---|---|
ABAP 스터디 3주차 리뷰 (0) | 2021.04.11 |
SAP ASE License update (0) | 2021.04.03 |
스터디 1주차 리뷰 (2) | 2021.03.28 |
SAP ABAP 스터디 1주차 (5) | 2021.03.22 |
댓글