abap WS_FILENAME_GET 设置选择导入文件格式

  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      DEF_FILENAME     = P_INPUT
      DEF_PATH         = C_INPUT
      MASK             = ',xlsx,*.xlsx,xls,*.xls'
      MODE             = '0'
      TITLE            = '选择采购价格导入文件'
    IMPORTING
      FILENAME         = P_INPUT2
    EXCEPTIONS
      INV_WINSYS       = 1
      NO_BATCH         = 2
      SELECTION_CANCEL = 3
      SELECTION_ERROR  = 4
      OTHERS           = 5.

,xlsx,*.xlsx,xls,*.xls

,xlsx,*.xlsx
,xls,*.xls

ABAP 中获取文件路径的方法主要依赖于用户交互或系统服务。以下是几种常见的实现方式: 1. **使用 `WS_FILENAME_GET` 函数选择本地文件并获取路径** 此方法允许用户通过弹出窗口选择一个文件,并返回该文件的完整路径。适用于需要手动选择文件的场景,例如导入数据或配置文件。 ```abap DATA: p_file TYPE string. CALL FUNCTION 'WS_FILENAME_GET' EXPORTING DEF_FILENAME = '' DEF_PATH = '' MASK = ',EXCEL.XLS,*.XLSX,*.XLS,TEXT.TXT,*.TXT.' MODE = 'O' TITLE = '选择文件' IMPORTING FILENAME = p_file EXCEPTIONS INV_WINSYS = 1 NO_BATCH = 2 SELECTION_CANCEL = 3 SELECTION_ERROR = 4 OTHERS = 5. IF sy-subrc <> 0. " 错误处理逻辑 ENDIF. ``` 上述代码中,`p_file` 将包含用户所选文件的完整路径 [^1]。 2. **使用 `CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG` 方法选择文件** 这是更现代的方式,基于面向对象的前端服务类来打开文件对话框,并返回文件路径。 ```abap DATA: lt_file TYPE filetable, lv_rc TYPE i. CALL METHOD cl_gui_frontend_services=>file_open_dialog EXPORTING window_title = '下载到本地文件' default_extension = 'txt' default_filename = 'file' file_filter = '*.txt' with_encoding = 'X' initial_directory = 'C:\' CHANGING file_table = lt_file rc = lv_rc EXCEPTIONS file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 OTHERS = 4. IF lv_rc = 0. READ TABLE lt_file INDEX 1 INTO DATA(ls_file). DATA(p_file) = ls_file-filename. ENDIF. ``` 此方法提供了更多选项,如默认扩展名、初始目录等 [^3]。 3. **读取文本文件内容时获取路径信息** 如果目标是读取文件内容,则可以直接将文件的绝对路径作为参数传递给读取函数,例如 `GUI_UPLOAD` 或其他自定义函数模块。 ```abap DATA: lv_file_path TYPE string VALUE 'C:\temp\1.txt', lt_data TYPE table OF string. CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename = lv_file_path filetype = 'ASC' TABLES data_tab = lt_data EXCEPTIONS OTHERS = 1. LOOP AT lt_data INTO DATA(ls_line). WRITE: / ls_line. ENDLOOP. ``` 此处 `lv_file_path` 是文件的完整路径,可以来自用户输入或上述方法之一 [^2]。 4. **选择文件夹路径** 若只需要获取文件夹路径而非具体文件,可以使用 `CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE` 方法。 ```abap DATA: lv_folderstr TYPE string. CALL METHOD cl_gui_frontend_services=>directory_browse EXPORTING window_title = '请选择要下载路径文件夹' CHANGING selected_folder = lv_folderstr EXCEPTIONS OTHERS = 0. ``` 返回值 `lv_folderstr` 包含用户选择的文件夹路径 [^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值