*&---------------------------------------------------------------------**& Report ZDEMO14*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*REPORT zdemo14.DATA:gs_bin TYPE tbl1024, gt_bin LIKE TABLE OF gs_bin.DATA:gv_filename TYPE string, gv_filelength TYPE i, gv_i TYPE i, gv_header TYPE xstring, gv_string TYPE xstring.PERFORM get_filename USING gv_filename.CHECK gv_filename IS NOT INITIAL.CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = gv_filename filetype = 'BIN' IMPORTING filelength = gv_filelength header = gv_header TABLES data_tab = gt_bin EXCEPTIONS file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 OTHERS = 17.CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING input_length = gv_filelength IMPORTING buffer = gv_string TABLES binary_tab = gt_bin EXCEPTIONS failed = 1 OTHERS = 2.CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING bin_filesize = gv_filelength filename = 'D:\20200921.xls' filetype = 'BIN' TABLES data_tab = gt_bin EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 OTHERS = 22.IF sy-subrc 0.* Implement suitable error handling hereENDIF.*&---------------------------------------------------------------------**& Form get_filename*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->PV_PATH text*----------------------------------------------------------------------*FORM get_filename USING pv_path TYPE string.. DATA : lv_file_filter TYPE string. DATA : ls_filetable TYPE file_table, lt_filetable TYPE filetable. DATA : lv_rc TYPE i. DATA : lv_user_action TYPE i. lv_file_filter = '(*.xlsx;*.xls)|*.xlsx;*.xls|'. cl_gui_frontend_services=>file_open_dialog( EXPORTING window_title = 'Select file' file_filter = lv_file_filter CHANGING file_table = lt_filetable rc = lv_rc user_action = lv_user_action ). CHECK lv_user_action EQ 0. CHECK lt_filetable[] IS NOT INITIAL. READ TABLE lt_filetable INTO ls_filetable INDEX 1. pv_path = ls_filetable-filename.ENDFORM. "get_filename