zoukankan      html  css  js  c++  java
  • ABAP分享十: 文件的上传 方法一

      前提条件:

    PARAMETERS P_files TYPE RLGRAP-FILENAME.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_files.

    一。文件的上传

    函数: WS_FILENAME_GET 获取文件名

    " MASK 函数 第一个逗号是标识逗号,后面每两个逗号为一组 前面为名字后面为格式(后缀名),结束加句号
    " 第一个逗号是显示什么,后面指扩展名是什么


    CALL FUNCTION 'WS_FILENAME_GET' " 函数已过时  但还可以继续使用
    EXPORTING
    * DEF_FILENAME = ' ' " 默认文件名称
    * DEF_PATH = ' ' " 默认文件路径
    MASK = ',Excel(*.xls),*.XLS,text.txt,*.txt.' " 用于本地的文件的获取
    MODE = 'O' " S 保存 O 打开
    TITLE = '打开文件' " 窗口的显示名称
    IMPORTING
    FILENAME = P_FILES.
    * RC =
    EXCEPTIONS
    INV_WINSYS = 1
    NO_BATCH = 2
    SELECTION_CANCEL = 3
    SELECTION_ERROR = 4
    OTHERS = 5
    .
    IF sy-subrc <> 0.
    * Implement suitable error handling here
    ENDIF.


    DATA LV_FILES TYPE STRING.
    LV_FILES = P_FILES. " 将文件名转换成string类型的变量
    * 文件的上传 TXT文件的上传

    CALL FUNCTION 'GUI_UPLOAD' " 获取文件内容到内表中  文本文件的读取 
    EXPORTING
    filename = LV_FILES " string类型 要将文件转换为string类型
    * 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 = GT_MATNRIAL    " 定义的接受内表,里面的变量与上传的文件的变量一致
    * CHANGING
    * ISSCANPERFORMED = ' '
    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
    .
    IF sy-subrc <> 0.
    * Implement suitable error handling here
    ENDIF.   

    "EXCEL文件的读取

       DATA: LT_RAW TYPE TRUXS_T_TEXT_DATA.
    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP' "获取文件的内容到内表中 excel文件
    EXPORTING
    * I_FIELD_SEPERATOR = 'X' " 判断是否具有表头
    * I_LINE_HEADER = X'
    i_tab_raw_data = LT_RAW " 系统自动的值,一般不用管理
    i_filename = P_FILES " 上传的文件路径
    TABLES
    i_tab_converted_data = GT_MATNRIAL " 显示内表
    * EXCEPTIONS
    * CONVERSION_FAILED = 1
    * OTHERS = 2
    .
    IF sy-subrc <> 0.
    * Implement suitable error handling here
    ENDIF.   

  • 相关阅读:
    webpack 打包报 ERROR in static/js/vendor.2eff2b5a1d36f4b7f033.js from UglifyJs
    常见重构技巧
    Java常见重构技巧
    Python写基于非线性优化的2D-SLAM系统(已开源)
    分享一个免费开源压缩视频软件!!!【视频压缩后质量还可以】
    AJAX之超时与网络异常处理
    HTTP
    Gin多次读取body
    高效的数据压缩编码方式 Protobuf
    TCP报文之-tcp dup ack 、tcp Out-of-Order
  • 原文地址:https://www.cnblogs.com/abapweb/p/13846295.html
Copyright © 2011-2022 走看看