*&---------------------------------------------------------------------**& 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
09-25 03:42
查看更多