메인 프로그램
REPORT ZR08_0010 MESSAGE-ID ZM08.
INCLUDE ZR08_0010_TOP.
INCLUDE ZR08_0010_CO1.
INCLUDE ZR08_0010_PBO.
INCLUDE ZR08_0010_PAI.
INCLUDE ZR08_0010_F01.
INITIALIZATION.
AT SELECTION-SCREEN.
START-OF-SELECTION.
*인사데이터 조회
PERFORM GET_DATA.
*도메인 데이터 조회
PERFORM GET_DOMAIN_DATA.
END-OF-SELECTION.
call screen 100.
FORM get_data .
CLEAR GT_DISP.
SELECT *
FROM ZT08_0010
INTO CORRESPONDING FIELDS OF TABLE GT_DISP
WHERE EMPNO IN s_EMPNO
AND DEPT IN s_DEPT
AND ENTDT IN s_ENTDT
AND GRADE IN s_GRADE
AND STATUS IN s_STATUS.
ENDFORM.
FORM get_domain_data .
DATA LV_LINE TYPE I.
SELECT * FROM dd07t
INTO CORRESPONDING FIELDS OF TABLE lt_domain
WHERE DOMNAME IN ( 'Z_DEPT08', 'ZDGRADE08', 'ZDSTATUS08' )
AND ddlanguage = sy-langu.
LOOP AT GT_DISP INTO GS_DISP. "필드심볼없을때 사용가능한 구문"
lv_line = sy-tabix .
READ TABLE LT_DOMAIN WITH KEY domname = 'Z_DEPT08' domvalue_l = gs_DISP-DEPT .
IF sy-subrc = 0.
gs_DISP-DEPT_T = lt_domain-ddtext.
ENDIF.
READ TABLE lt_domain WITH KEY domname = 'ZDGRADE08' domvalue_l = gs_DISP-GRADE.
IF sy-subrc = 0.
gs_DISP-GRADE_T = lt_domain-ddtext.
ENDIF.
READ TABLE lt_domain WITH KEY domname = 'ZDSTATUS08' domvalue_l = gs_DISP-STATUS.
IF sy-subrc = 0.
gs_DISP-STATUS_T = lt_domain-ddtext.
ENDIF.
GS_DISP-STAT = ICON_LED_GREEN.
MODIFY GT_DISP FROM GS_DISP INDEX LV_LINE .
ENDLOOP .
ENDFORM.
TOP문
TABLES : ZT08_0010,DD07T.
DATA : BEGIN OF GS_DISP.
INCLUDE STRUCTURE ZT08_0010.
DATA : STAT TYPE ICON-ID, "아이콘 필드에 있는 아이콘을 추가해주기"
DEPT_T TYPE DD07T-DDTEXT,
GRADE_T TYPE DD07T-DDTEXT,
STATUS_T TYPE DD07T-DDTEXT,
RESULT TYPE CHAR200, "CHAR 200자리의 RESULT 필드 생성."
EMPNO_BACKUP TYPE ZT08_0010-EMPNO, "임시의 EMPNO작업을 위해 사용"
END OF GS_DISP.
DATA : GT_DISP LIKE TABLE OF GS_DISP.
DATA : CON1_REF TYPE REF TO CL_GUI_CUSTOM_CONTAINER. "컨테이너 객체 생성"
DATA : g_grid TYPE REF TO Cl_GUI_ALV_GRID.
DATA : OK_CODE TYPE SY-UCOMM.
"필드 카탈로그 선언" - 테이블과 스트럭쳐 둘다 타입을 잠조해서
DATA : gt_fieldcat TYPE lvc_t_fcat.
DATA : gs_fieldcat TYPE lvc_s_fcat.
*레이아웃 선언
DATA : gs_layout type lvc_s_layo.
*도메인 정보를 가지기 위한 데이터 선언[WA를만들지 않기 위해 헤더라인을 통해 작업]
DATA : lt_domain TYPE TABLE OF dd07t WITH HEADER LINE.
DATA : GT_EXCLUDE TYPE TABLE OF SY-UCOMM.
************************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN:SKIP 1.
SELECT-OPTIONS:
s_EMPNO FOR ZT08_0010-EMPNO,
s_DEPT FOR ZT08_0010-DEPT,
s_ENTDT FOR ZT08_0010-ENTDT,
s_GRADE FOR ZT08_0010-GRADE,
s_STATUS FOR ZT08_0010-STATUS.
SELECTION-SCREEN:SKIP 1.
SELECTION-SCREEN: END OF BLOCK b1.
▪ TOP문의 데이터 선언. GS_ITAB
▪ ZT08_0010의 테이블 구조를 참조.
-STAT -> 신호등을 위해서 녹/황/ 적 색의 신호등 표시를 위해 선언
-DEPT_T / GRADE_T/ STATUS_T -> 도메인의 VALUE RANGE를 위해 선언
-RESULT -> ALV 그리드 상에서 결과 메시지 창을 위해 선언
-EMPNO_BACKUP -> 신규사원번호 채번을 위해서 임시의 EMPNO 작업을 위해 사용한 것
▪GT_EXCLUSIVE
-GT_EXCLUSIVE는 마지막에 T-CODE를 생성후 DISPLAY / EDIT 모드에 따라서 저장 등 버튼의 표현 유무를 위해 사용하는 것. -> 스크린의 PBO에서 선언해주는 부분.
반응형
'SAP ABAP 개발 및 설명 > 인사 마스터만들기' 카테고리의 다른 글
인사마스터 ALV 프로젝트 ver 2 (PBO) (0) | 2020.10.09 |
---|---|
인사마스터 ALV 프로젝트 ver 2 (CLASS문) (0) | 2020.10.02 |
인사마스터 ALV 프로젝트 ver 1.3 (0) | 2020.09.17 |
인사마스터 ALV 프로젝트 ver 1.2 (0) | 2020.09.16 |
인사마스터 ALV 프로젝트 ver 1.1 (0) | 2020.09.12 |