路径获取

1. 文件夹路径 — H:\2019\测试数据

1.1 类方法

弹出框文件夹路径获取,也可新建文件夹
CALL METHOD cl_gui_frontend_services=>directory_browse


PARAMETERS p_file TYPE string DEFAULT 'PATH'.        "路径

**----------------------------------------------**
** P4 搜索帮助:
** 弹出显示---选择文件夹路径,也可新建文件夹
**----------------------------------------------**
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  DATA LC_PATH TYPE STRING.
  CALL METHOD cl_gui_frontend_services=>directory_browse
    EXPORTING
      window_title         = 'File Directory'
      initial_folder       =  'H:\'
    CHANGING
      selected_folder      = lc_path
*  EXCEPTIONS
*    CNTL_ERROR           = 1
*    ERROR_NO_GUI         = 2
*    NOT_SUPPORTED_BY_GUI = 3
*    OTHERS               = 4
          .
  p_file = lc_path.

在这里插入图片描述
最终得到的是 文件夹 的路径:
在这里插入图片描述

2. 文件路径 ------ H:\2019\测试数据\

2.1 类方法


PARAMETERS p_file TYPE string DEFAULT 'PATH'.        "路径
DATA : l_filename TYPE string VALUE 'EXCEL'.         "文件名
DATA : l_file     TYPE string VALUE 'EXCEL模板测试'. "方法中返回的完整路径+文件名

**----------------------------------------------**
** P4 搜索帮助:
** 弹出显示---选择文件夹路径,也可新建文件夹
**----------------------------------------------**
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

 "获取存储的:文件的路径 + 文件名
  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title        = '选择保存地址'
      default_extension   = 'xlsx'     "默认截取了前三位字符/???
      default_file_name   = 'HUA_EXCEL模板测试'
*     with_encoding       =
*     file_filter         =
*     initial_directory   =
*     prompt_on_overwrite = 'X'
    CHANGING
      filename            = l_filename  "返回-文件名
      path                = p_file      "返回-路径
      fullpath            = l_file      "返回-路径+文件名
*     user_action         =
*     file_encoding       =
*  exceptions
*     cntl_error                = 1
*     error_no_gui              = 2
*     not_supported_by_gui      = 3
*     invalid_default_file_name = 4
*     others                    = 5
    .
    
** 此处的空格成为了换行符???
  DATA messages TYPE string.
  CONCATENATE 'filename:' l_filename ' path:' p_file ' FULLfile:' l_file INTO messages.
  MESSAGE messages TYPE  'I'.

  IF sy-subrc <> 0 OR p_file IS INITIAL.
    MESSAGE  '用户取消或保存选择出错!' TYPE  'S'.
    RETURN.
  ENDIF.

在这里插入图片描述在这里插入图片描述
注意:此处的消息消息显示中的自动换行
在这里插入图片描述

2.2 FUNCTION 文件路径获取

2.2.1 GUI_FILE_SAVE_DIALOG

GUI_FILE_SAVE_DIALOG

**************************************************************************************
** 路径保存:
DATA V_FILENAME TYPE STRING.

** 弹出框显示---路径获取 + 文件名称 + 文件格式说明(扩展名)
CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'
  EXPORTING
*         WINDOW_TITLE       =
    DEFAULT_EXTENSION        = 'xls'    "下载的EXCEL只能是 *.xls格式的,不能是 *.xlsx  / ?????????
*         DEFAULT_FILE_NAME  =
*         WITH_ENCODING      =
*         FILE_FILTER        =
*         INITIAL_DIRECTORY  =
*         DEFAULT_ENCODING   =
  IMPORTING
    FILENAME                 = P_03        "得到:文件名称 + 文件格式说明(扩展名)
*         PATH               =             "得到:路径
*         FULLPATH           = V_FILENAME  "得到:路径 + 文件名称 + 文件格式说明(扩展名)
*         USER_ACTION        =
*         FILE_ENCODING      =
  .

FIELDNAMES 带有各个列的列名的可选表:
FILETYPE = ‘DBF’:列名被输入到DBF文件的结构定义中。
FILETYPE = ‘DAT’:在表的开头插入一个带有列名的额外行。在这里插入图片描述在这里插入图片描述

EXCEL的下载:
**************************************************************************************
** 内表的结构:
DATA: BEGIN OF ITAB OCCURS 0,
        F1 TYPE CHAR256,    "字段1
        F2 TYPE CHAR256,    "字段2
      END OF ITAB.

**************************************************************************************
** FIELDNAMES:带有各个列的列名的可选表---为表格添加字段描述:
DATA: BEGIN OF T_FIELDNAMES  OCCURS 0,
        NAME TYPE CHAR20,    "字段描述
      END OF T_FIELDNAMES.

T_FIELDNAMES-NAME = '序列号'.    "第一列字段描述
APPEND T_FIELDNAMES.          
T_FIELDNAMES-NAME = '序列号'.    "第二列字段描述
APPEND T_FIELDNAMES.            

** 下载EXCEL模板:
CALL FUNCTION 'GUI_DOWNLOAD'
  EXPORTING
    FILENAME   = V_FILENAME     "文件的下载路径+文件名+文件格式(扩展名)
    FILETYPE   = 'DAT'
    CODEPAGE   = '8404'
  TABLES
    DATA_TAB   = ITAB           "内表结构
    FIELDNAMES = T_FIELDNAMES.  "内表字段描述

2.2.2 WS_FILENAME_GET

WS_FILENAME_GET

PARAMETERS P_01 TYPE STTING.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_01.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
*      DEF_FILENAME          = ' '
      DEF_PATH               = 'C: \ '
      MASK                   = ' *.XLS '
      MODE                   = '0'
      TITLE                  = 'OPEN FILE'
    IMPORTING
      FILENAME               = P_01
*      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.

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值