최종 작성일: 2024년 6월 25일
최종 목표: 엑셀 업로드 동작이 어떻게 돌아가는 지 확인하기
1) 메인화면 코드
REPORT ZEXCEL_UPLOAD_100 MESSAGE-ID ZM01.
INCLUDE ZTEST100_TOP. " 데이터 선언부, 전역변수
INCLUDE ZTEST100_SEL. "조회화면
INCLUDE ZTEST100_C01. "클래스 선언부
INCLUDE ZTEST100_F01. "PERFORM 구문을 모아놓을 곳. 실행 구문들
INCLUDE ZTEST100_I01. " process after input/INPUT 버튼을 클릭했을 때 동작 들
INCLUDE ZTEST100_O01. "process before output/출력전 과정으로 출력하기 전에 동작/OUTPUT 버튼 툴바, 타이틀 바, ALV 출력하는 곳
*PBO(PROCESS BEFORE OUTPUT), PAI(PROCESS AFTER INPUT) 외에 다른 인클루드문을 순서대로 선언해야 제대로 작동함
*&=====================================================================*
*& INITIALIZATION "ALV 화면 출력 전에 조회화면
*&=====================================================================*
INITIALIZATION.
PERFORM SET_FUNCTION_KEY. "1번째 실행
*&=====================================================================*
*& AT SELECTION-SCREEN
*&=====================================================================*
AT SELECTION-SCREEN.
PERFORM ACT_FUNCTION_KEY. "2번째 실행
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM GET_FILE_PATH.
*&=====================================================================*
*& START-OF-SELECTION
*&=====================================================================*
START-OF-SELECTION.
IF r1 = 'X'.
PERFORM CHECK_BEFORE_PROCESS.
* 파일 업로드 진행
PERFORM UPLOAD_FROM_EXCEL.
PERFORM GET_DATA.
ELSEIF r2 = 'X'.
PERFORM GET_NEEDED_DATA.
ELSEIF r3 = 'X'.
PERFORM DEL_DATA.
ENDIF.
*&=====================================================================*
*& END-OF-SELECTION
*&=====================================================================*
END-OF-SELECTION.
IF r1 ='X'.
CALL SCREEN 100.
ELSEIF r2 = 'X'.
IF GT_ZSCARR IS NOT INITIAL.
CALL SCREEN 100.
ELSE.
MESSAGE '조회할 데이터가 없습니다.' TYPE 'I'.
ENDIF.
ENDIF.
2) 첫번째 동작
2-1) PERFORM set_function_key
INITIALIZATION.
PERFORM SET_FUNCTION_KEY.
2-2) FORM set_function_key
FORM set_function_key .
*SMPL
G_FUNCTION_KEY-ICON_ID = ICON_XLS.
G_FUNCTION_KEY-ICON_TEXT = 'SAMPLE다운'.
G_FUNCTION_KEY-TEXT = 'SAMPLE다운'.
SSCRFIELDS-FUNCTXT_01 = G_FUNCTION_KEY.
G_FUNCTION_KEY-ICON_ID = ICON_ANNOTATION.
G_FUNCTION_KEY-ICON_TEXT = '노트생성'.
G_FUNCTION_KEY-TEXT = '노트생성'.
SSCRFIELDS-FUNCTXT_03 = G_FUNCTION_KEY.
ENDFORM.
화면 기준
2-3) FORM act_function_key
FORM act_function_key .
CASE SSCRFIELDS-UCOMM. " sscrefields-ucomm의 의미는 조회화면에서 내가 누른 버튼을 받아옴.
WHEN 'FC01'. "해당 버튼이 'FC01'일때
PERFORM EXCEL_DOWN_SMPL. "EXCEL_DOWN_SMPL 구문을 실행함.
ENDCASE.
ENDFORM.
3) 세번째 동작 - EXCEL_DOWN_SMPL.
FORM excel_down_smpl .
* 다운로드 양식 선택
LS_KEY-OBJID = 'ZTEST14_EXCEL01'. " 'ZTEST14_EXCEL01'이름의 파일을 다운받음
LS_KEY-RELID = 'MI'.
* 파일 경로 조회
PERFORM SET_DIRECTORY USING LS_KEY-OBJID.
* 엑셀 다운
PERFORM DOWNLOAD_EXCEL_SMPL USING LS_KEY-OBJID.
IF SY-SUBRC = 0.
MESSAGE '엑셀정상다운' TYPE 'S'.
ELSE.
MESSAGE '엑셀다운에러' TYPE 'S'.
ENDIF.
ENDFORM.
'SAP > ABAP' 카테고리의 다른 글
[WIP]Excel_Upload프로그램_프로그램 작동 로직(3/3) (0) | 2024.06.27 |
---|---|
[WIP]Excel_Upload프로그램_프로그램 작동 로직(2/3) (0) | 2024.06.25 |
CLASS (0) | 2024.06.25 |
Excel_Upload프로그램_Function Key 추가 (0) | 2024.06.17 |
Excel_Upload프로그램_기본 (0) | 2024.06.17 |