把本地txt文件导入到内表中

相关文章:http://www.cnblogs.com/caizjian/p/3271757.html

参照从本地excel导入到内表的例子  导入本地txt文件到内表用的函数是:但是注意因为 参数filename 的类型是string所以我们在之前定义的其他类型参数时到这边一定要转换成string类型

CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename                      = filename                    "文件路径  
   FILETYPE                      = 'ASC'                       "txt文件类型
   HAS_FIELD_SEPARATOR           = 'X'                "打开TAB键分隔列的功能
   CODEPAGE                      = '8400 '                  "防止在其他语言系统下txt中文不显示

  tables
    data_tab                      = gt_tab                     "内表

          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

 

示例:今晚又研究了一下这个上传文件的函数。

***************读取txt文件事实证明把txt文件上传到定义的内表这个函数只能适用于txt文本文件,类型设置成'ASC',不能适用于excel文档

 

REPORT  ztestbdc.
TYPES:BEGIN OF ty_mara,
 matnr TYPE  mara-matnr,
  maktx TYPE makt-maktx,
  meins TYPE mara-meins,
  END OF ty_mara.

DATA gt_tab TYPE TABLE OF ty_mara.
DATA gs_tab LIKE LINE OF gt_tab.

PARAMETERS p_file TYPE c LENGTH 128 ."定义输入框
AT SELECTION-SCREEN on VALUE-REQUEST FOR p_file.
  "弹出选择的对话框
CALL FUNCTION 'F4_FILENAME'
 EXPORTING
   PROGRAM_NAME        = SYST-CPROG
   DYNPRO_NUMBER       = SYST-DYNNR
*   FIELD_NAME          = p_file
 IMPORTING
   FILE_NAME           = p_file.
          .
START-OF-SELECTION.
data i_file TYPE string.
i_file = p_file.
CLEAR:gt_tab.
CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename                      = i_file
    FILETYPE                      = 'ASC' "txt文本
    HAS_FIELD_SEPARATOR           = 'X'   "tab键分隔符
    CODEPAGE                      = '8400'
  tables
    data_tab                      = gt_tab.
delete gt_tab INDEX 1.
BREAK-POINT.

 

原文地址:https://www.cnblogs.com/caizjian/p/3016284.html