选择文件对话框,并将文本内容输出


REPORT  ZNCTEST02 NO STANDARD PAGE HEADING.

TYPES: BEGIN OF RECTYPE,
         KUNNR LIKE KNA1-KUNNR,
         NAME1 LIKE KNA1-NAME1,
       END OF RECTYPE.

DATA ITAB TYPE STANDARD TABLE OF RECTYPE WITH KEY KUNNR.
DATA WA_ITAB TYPE RECTYPE.

DATA FILETABLE TYPE FILETABLE.
DATA RC TYPE I.
DATA WA TYPE FILE_TABLE.

PARAMETERS: PC_FILE(80) OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PC_FILE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE      = 'UPLOAD'
      MULTISELECTION    = 'X'
      DEFAULT_EXTENSION = 'TXT'
      DEFAULT_FILENAME  = '*.TXT'
      INITIAL_DIRECTORY = 'C:\'
    CHANGING
      FILE_TABLE        = FILETABLE
      RC                = RC.

  CALL METHOD CL_GUI_CFW=>FLUSH.
 
  loop at filetable into wa.
    if wa-filename <> ''.
      move wa-filename to pc_file.
    endif.
  endloop.

 

START-OF-SELECTION.

data filename type string.

filename = pc_file.

 


  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      FILENAME                      = filename
*   FILETYPE                      = 'ASC'
*   HAS_FIELD_SEPARATOR           = ' '
*   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                      = ITAB
* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  LOOP AT ITAB INTO WA_ITAB.
    WRITE:
      / WA_ITAB-KUNNR,
       WA_ITAB-NAME1.
  ENDLOOP.

请使用浏览器的分享功能分享到微信等