GUI_UPLOAD-上传txt文件

发布时间 2023-05-08 15:35:53作者: 往事只能回味---
*&---------------------------------------------------------------------*
*& Report  Z016
*&
*&---------------------------------------------------------------------*
*&
*& 上传TXT文件
*&---------------------------------------------------------------------*

REPORT Z016 MESSAGE-ID ZHQ NO STANDARD PAGE HEADING.

TYPES:BEGIN OF MATERIAL,
  ID TYPE CHAR10,
  NAME TYPE CHAR50,
  END OF MATERIAL.

DATA GT_MATERIAL TYPE TABLE OF MATERIAL WITH HEADER LINE.

PARAMETERS P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  CALL FUNCTION 'WS_FILENAME_GET'
   EXPORTING
     MASK                   = ',txt,*.txt,'
     MODE                   = 'O'
     TITLE                  = '我的物料'
   IMPORTING
     FILENAME               = P_FILE
   EXCEPTIONS
     INV_WINSYS             = 1
     NO_BATCH               = 2
     SELECTION_CANCEL       = 3
     SELECTION_ERROR        = 4
     OTHERS                 = 5.






START-OF-SELECTION.
DATA TEMP_FILE TYPE STRING.
      TEMP_FILE = P_FILE.
     CALL FUNCTION 'GUI_UPLOAD'
       EXPORTING
         FILENAME                      = TEMP_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                      = GT_MATERIAL
*      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
               .



END-OF-SELECTION.

DATA LEN TYPE I.
DESCRIBE TABLE GT_MATERIAL LINES LEN.

IF LEN > 0.
  LOOP AT GT_MATERIAL.
      WRITE : / GT_MATERIAL-ID,'---->',GT_MATERIAL-NAME.
  ENDLOOP.
ELSE.
  DATA MESSAGE TYPE STRING.
  CONCATENATE P_FILE '-好像没有找到数据' INTO MESSAGE SEPARATED BY ''.
  MESSAGE S000 WITH MESSAGE DISPLAY LIKE 'E'.
ENDIF.