안녕하세요. 엑셀파일 업로드후 인터널테이블에 담아야 하는 로직을 만들어야 하는데..
솔직히 처음이라서요.....
해당로직을 구현한 간단한 소스나 샘플 좀 보여주시면 감사하겠습니다.
펑션으로 하던 class구현하던 상관없습니다.
최신기술이면 더 좋겠지만서도..
오늘도 즐코딩 되십시오..
안녕하세요. 엑셀파일 업로드후 인터널테이블에 담아야 하는 로직을 만들어야 하는데..
솔직히 처음이라서요.....
해당로직을 구현한 간단한 소스나 샘플 좀 보여주시면 감사하겠습니다.
펑션으로 하던 class구현하던 상관없습니다.
최신기술이면 더 좋겠지만서도..
오늘도 즐코딩 되십시오..
도배해서 죄송합니다.
DATA : l_filename TYPE string,
l_filetype TYPE char10 VALUE 'ASC',
l_upload_flag TYPE c.
DATA : lv_price(13) TYPE c,
lv_retval(13) TYPE c.
CLEAR: g_datfm, g_dcpfm, l_upload_flag.
"사용자 셋팅 조회.
SELECT SINGLE datfm dcpfm
FROM usr01
INTO (g_datfm, g_dcpfm)
WHERE bname = sy-uname.
l_filename = "Upload File".
IF l_filename EQ ''.
MESSAGE s044.
EXIT.
ENDIF.
CLEAR g_excel.
SEARCH l_filename FOR '.xls'.
IF sy-subrc EQ 0.
g_excel = 'E'.
ELSE.
MESSAGE s000 WITH 'select a excel file...'.
EXIT.
ENDIF.
IF g_excel = ' '.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_filename
filetype = l_filetype
has_field_separator = 'X'
TABLES
data_tab = gt_upload_item "업로된 파일의 내용이 저장되는 Itab
EXCEPTIONS
* conversion_error = 1
file_open_error = 2
file_read_error = 3
* invalid_table_width = 4
invalid_type = 5
no_batch = 6
unknown_error = 7
gui_refuse_filetransfer = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE s000 WITH 'upload failed!'.
LEAVE TO LIST-PROCESSING.
ENDIF.
ELSE.
DATA: gt_excl LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE,
l_ln TYPE i,
l_col LIKE alsmex_tabline-col,
l_upload_data_cnt TYPE i,
l_str TYPE string,
l_ln_cnt TYPE string,
l_row TYPE i.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 0
text = 'prepare uploading...'.
* EXCEPTIONS
* OTHERS = 1.
FIELD-SYMBOLS <fs>.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = gs_scr0210-p_fname
i_begin_col = 1
i_begin_row = 2
i_end_col = 100
i_end_row = 65536
TABLES
intern = gt_excl
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE s000 WITH 'upload failed!'.
LEAVE TO LIST-PROCESSING.
ELSE.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = 0
text = 'prepare uploading...'.
* EXCEPTIONS
* OTHERS = 1.
SORT gt_excl BY row col.
DESCRIBE TABLE gt_excl LINES l_upload_data_cnt.
l_row = 1.
LOOP AT gt_excl.
l_col = gt_excl-col + 1.
l_item_seq = gt_excl-row.
l_ln = l_ln + 1.
l_str = l_row.
CONCATENATE l_str' records uploaded... ' INTO l_str
SEPARATED BY space.
** Uploading Progress
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = l_ln
text = l_str.
* EXCEPTIONS
* OTHERS = 1.
***
ASSIGN COMPONENT l_col OF STRUCTURE gt_upload_item TO <fs>.
IF sy-subrc = 0.
<fs> = gt_excl-value.
ENDIF.
AT END OF row.
APPEND gt_upload_item.
CLEAR gt_upload_item.
l_row = l_row + 1.
ENDAT.
ENDLOOP.
ENDIF.
ENDIF.
* ENDIF.