EXCEL 업로드를 사용하기 위해서는
정해진 양식의 EXCEL 파일로 데이터를 올려야지 오류가 나지 않고
SAP로 엑셀의 데이터가 저장된다.
프로그램마다 파일 양식을 기억하기 어렵기 때문에
해당 프로그램의 엑셀 양식을 다운받을 수 있게 할 수 있다.
프로그램 로직을 짜기 전에 우선적으로
티코드 SMW0에서 사용할 양식의 엑셀파일을 업로드 한다.
저장할 패키지를 선택한 후 다시 엔터를 누른다.
신규생성을 눌러 원하는 이름으로 파일을 업로드 해준다.
이렇게 지정해 놓은 경로에 SMW0에서 저장해 놓은 엑셀 양식을 다운 받을 수 있다.
참고로직
TABLES: SSCRFIELDS.
SELECTION-SCREEN FUNCTION KEY 1.
PARAMETERS : FILE TYPE RLGRAP-FILENAME .
AT SELECTION-SCREEN OUTPUT.
CONCATENATE ICON_IMPORT 'EXCEL' INTO SSCRFIELDS-FUNCTXT_01.
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'FC01'.
DATA : L_TITLENAME TYPE STRING,
L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_FULLPATH TYPE STRING,
L_RESULT TYPE I.
DATA: WWWDATA_ITEM LIKE WWWDATATAB,
L_FILE TYPE RLGRAP-FILENAME.
*엑셀로부터 값을 보관할 인터널 테이블
CLEAR : WWWDATA_ITEM, L_FILE.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = '엑셀양식' " Window Title
DEFAULT_EXTENSION = 'XLS' " Default Extension
DEFAULT_FILE_NAME = L_TITLENAME " Default File Name
* WITH_ENCODING =
FILE_FILTER = '*.xls' " File Type Filter Table
INITIAL_DIRECTORY = 'C:\' " Initial Directory
* PROMPT_ON_OVERWRITE = 'X'
CHANGING
FILENAME = L_FILENAME " 저장시 기본으로 나올 파필명
PATH = L_PATH " Path to File
FULLPATH = L_FULLPATH " Path + File Name
USER_ACTION = L_RESULT " User Action (C Class Const ACTION_OK, ACTION_OVERWRITE etc)
* FILE_ENCODING =
.
L_FILE = L_FULLPATH.
IF L_FILE IS NOT INITIAL.
CHECK L_FILE IS NOT INITIAL.
SELECT SINGLE *
INTO CORRESPONDING FIELDS OF WWWDATA_ITEM
FROM WWWDATA
WHERE OBJID = 'ZEXCEL'. "SMW0에서 저장한 엑셀 양식 이름
IF SY-SUBRC <> 0.
MESSAGE TEXT-E01 TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = WWWDATA_ITEM
DESTINATION = L_FILE
* IMPORTING
* RC =
* CHANGING
* TEMP =
.
ELSE.
FILE = 'C:\'.
ENDIF.
WHEN OTHERS.
ENDCASE.
SELECTION-SCREEN FUNCTION KEY 1.
PARAMETERS : FILE TYPE RLGRAP-FILENAME .
AT SELECTION-SCREEN OUTPUT.
CONCATENATE ICON_IMPORT 'EXCEL' INTO SSCRFIELDS-FUNCTXT_01.
AT SELECTION-SCREEN.
CASE SSCRFIELDS-UCOMM.
WHEN 'FC01'.
DATA : L_TITLENAME TYPE STRING,
L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_FULLPATH TYPE STRING,
L_RESULT TYPE I.
DATA: WWWDATA_ITEM LIKE WWWDATATAB,
L_FILE TYPE RLGRAP-FILENAME.
*엑셀로부터 값을 보관할 인터널 테이블
CLEAR : WWWDATA_ITEM, L_FILE.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = '엑셀양식' " Window Title
DEFAULT_EXTENSION = 'XLS' " Default Extension
DEFAULT_FILE_NAME = L_TITLENAME " Default File Name
* WITH_ENCODING =
FILE_FILTER = '*.xls' " File Type Filter Table
INITIAL_DIRECTORY = 'C:\' " Initial Directory
* PROMPT_ON_OVERWRITE = 'X'
CHANGING
FILENAME = L_FILENAME " 저장시 기본으로 나올 파필명
PATH = L_PATH " Path to File
FULLPATH = L_FULLPATH " Path + File Name
USER_ACTION = L_RESULT " User Action (C Class Const ACTION_OK, ACTION_OVERWRITE etc)
* FILE_ENCODING =
.
L_FILE = L_FULLPATH.
IF L_FILE IS NOT INITIAL.
CHECK L_FILE IS NOT INITIAL.
SELECT SINGLE *
INTO CORRESPONDING FIELDS OF WWWDATA_ITEM
FROM WWWDATA
WHERE OBJID = 'ZEXCEL'. "SMW0에서 저장한 엑셀 양식 이름
IF SY-SUBRC <> 0.
MESSAGE TEXT-E01 TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
KEY = WWWDATA_ITEM
DESTINATION = L_FILE
* IMPORTING
* RC =
* CHANGING
* TEMP =
.
ELSE.
FILE = 'C:\'.
ENDIF.
WHEN OTHERS.
ENDCASE.
Tags:
SAP ABAP