본문 바로가기

SAP ABAP 개발 및 설명/인사 마스터만들기

인사마스터 ALV 프로젝트 ver 2 (TOP문 , 메인프로그램)

메인 프로그램


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에서 선언해주는 부분.

 

 

반응형