Chinaunix首页 | 论坛 | 博客
  • 博客访问: 506388
  • 博文数量: 199
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1902
  • 用 户 组: 普通用户
  • 注册时间: 2020-05-14 13:25
个人简介

代码5S

文章分类

全部博文(199)

文章存档

2021年(5)

2020年(194)

我的朋友

分类: 其他平台

2020-09-21 10:04:06

*&---------------------------------------------------------------------*
*& 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 here
ENDIF.


*&---------------------------------------------------------------------*
*&      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
阅读(4462) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~