与本地机交互的function

 1:获取本地文件目录

  CALL FUNCTION 'ws_filename_get'
    EXPORTING
      mask             = ',*.txt,*.*.'
      mode             = 'o'
      title            = text-i02
    IMPORTING
      filename         = p_file
    EXCEPTIONS
      inv_winsys       = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.

2:函数控制弹出窗口

CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
      EXPORTING
        titel     = '下载文件'
        textline1 = '数据库错误!没有模板,请重新上载模板!'
      EXCEPTIONS
        OTHERS    = 1.

 

3:得到本地SAPGUI_WORKDIR ( sap下载文件标准存放路径 )

  CALL METHOD cl_gui_frontend_services=>get_sapgui_workdir
    CHANGING
      sapworkdir            = g_workdir
*    EXCEPTIONS
*      GET_SAPWORKDIR_FAILED = 1
*      CNTL_ERROR            = 2
*      ERROR_NO_GUI          = 3
*      NOT_SUPPORTED_BY_GUI  = 4
*      others                = 5

 

4:下载excel模板到 filename 对应的文件路径下

 CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      bin_filesize                    = length
      filename                        = l_filename
      filetype                        = 'BIN'
    IMPORTING
      filelength                      = length
    TABLES
      data_tab                        = data_container
*     FIELDNAMES                      =
   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

 

5:在SAPGUI中显示进度指示条

 CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = 1
      text       = '正在生成EXCEL文件,请稍候'.

 

6:删除系统中指定 filename文件

 CALL FUNCTION 'WS_FILE_DELETE'
    EXPORTING
      file   = l_filename
    EXCEPTIONS
      OTHERS = 1.

 

7:上载文件,把txt文件内容读入内表

 CALL FUNCTION 'GUI_UPLOAD'                                 "将TXT读入内表
      EXPORTING
        filename                      = g_file
*   FILETYPE                      = 'ASC'
       has_field_separator           = 'X'
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
*   CODEPAGE                      = ' '
*   IGNORE_CERR                   = ABAP_TRUE
*   REPLACEMENT                   = '#'
*   CHECK_BOM                     = ' '
*   VIRUS_SCAN_PROFILE            =
*   NO_AUTH_CHECK                 = ' '
IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
      TABLES
        data_tab                      = t_itab
     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

在JavaScript中,由于同源策略的限制,浏览器默认情况下是不允许直接从脚本访问本地文件系统的。但可以通过以下几种方式本地文件进行有限的交互: 1. **File API**: - 使用`FileReader`或`Blob`对象读取文件内容。例如: ```javascript const fileInput = document.getElementById('file-input'); fileInput.addEventListener('change', function(e) { const file = e.target.files[0]; const reader = new FileReader(); reader.onload = function(event) { console.log('File content:', event.target.result); }; reader.readAsText(file); }); ``` 2. **HTML5 File System API (已废弃)**: 这个API已被现代浏览器弃用,但在某些旧版本的浏览器中可能会支持。它提供了一个模拟的文件系统接口,允许存储少量数据。然而,它不适用于大量数据,并且不是跨平台的。 3. **Web Workers**: 可以使用Web Workers在后台线程上处理大文件,避免阻塞主线程。但它们不能直接访问DOM,所以你需要把文件读取到内存中(如Blob)再传递给Worker。 4. **Node.js (服务器端)**: 如果你在服务器环境中,可以使用Node.js的`fs`模块操作本地文件。Node.js环境下的JavaScript具有对文件系统更全面的操作权限。 5. **使用IndexedDB 或 Web SQL Database (已废弃)**: 这些数据库技术可以在浏览器中存储结构化的数据,类似关系型数据库,但通常用于长期存储而非临时交互。 6. **Web Storage (localStorage, sessionStorage)**: 适合存储少量文本数据,不适合大文件。 7. **使用 Electron 或 NW.js (桌面应用框架)**: 如果你想创建桌面应用程序,这些框架允许你绕过浏览器的同源策略,直接操作本地文件。 记住,安全性和隐私是重要的考量,所以在实际应用中,对于敏感数据,最好还是通过HTTP/HTTPS等标准协议传输,而不是直接访问本地文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值