讀取文件路徑的5種常用方式

5種讀取文件路徑的方式各有千秋,最推薦使用類方式。

REPORT YLTL_TEST.
PARAMETERS P_FILE TYPE RLGRAP-FILENAME.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*  PERFORM FRM_GET_EXCEL1.    "不能限制上傳文件類型
*  PERFORM FRM_GET_EXCEL2.    "可以限制上傳文件類型,不能設置默認路徑
*  PERFORM FRM_GET_EXCEL3.    "可以限制上傳文件類型,能設置默認路徑,默認文件
*  PERFORM FRM_GET_EXCEL4.    "可以限制上傳文件類型,能設置默認路徑,默認文件,但系統報已過時
*  PERFORM FRM_GET_EXCEL5.    "可以限制上傳文件類型,能設置默認路徑,默認文件,能上傳多個文件
*&---------------------------------------------------------------------*
*& Form FRM_GET_EXCEL1
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_EXCEL1 .
  CALL FUNCTION 'F4_FILENAME'
* EXPORTING
*   PROGRAM_NAME        = SYST-CPROG
*   DYNPRO_NUMBER       = SYST-DYNNR
*   FIELD_NAME          = ' '
    IMPORTING
      FILE_NAME =  P_FILE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_EXCEL2
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_EXCEL2 .
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    EXPORTING
*     PROGRAM_NAME        = SYST-REPID
*     DYNPRO_NUMBER       = SYST-DYNNR
*     FIELD_NAME          = ' '
*     STATIC    = ' '
      MASK      = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'
*     FILEOPERATION       = 'R'
*     PATH      =
    CHANGING
      FILE_NAME = P_FILE
*     LOCATION_FLAG       = 'P'
*   EXCEPTIONS
*     MASK_TOO_LONG       = 1
*     OTHERS    = 2
    .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_EXCEL3
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_EXCEL3 .
  CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
    EXPORTING
*     DEF_FILENAME           = ' '
      DEF_PATH = 'D:\'
      MASK     = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'
*     MODE     = ' '
*     TITLE    = ' '
    IMPORTING
      FILENAME = P_FILE
*     PATH     =
*     FILE     =
* EXCEPTIONS
*     SELECTION_CANCEL       = 1
*     SELECTION_ERROR        = 2
*     OTHERS   = 3
    .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_EXCEL4
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_EXCEL4 .
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
*     DEF_FILENAME           = ' '
      DEF_PATH = 'D:\'
      MASK     = ',All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'"必須加一個逗號
*     MODE     = ' '
*     TITLE    = ' '
    IMPORTING
      FILENAME = P_FILE
*     RC       =
* EXCEPTIONS
*     INV_WINSYS             = 1
*     NO_BATCH = 2
*     SELECTION_CANCEL       = 3
*     SELECTION_ERROR        = 4
*     OTHERS   = 5
    .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_GET_EXCEL5
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM FRM_GET_EXCEL5 .
  DATA LT_TAB TYPE FILETABLE.
  DATA LS_TAB LIKE LINE OF LT_TAB.
  DATA L_RC TYPE I.
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
*     WINDOW_TITLE      =
*      DEFAULT_EXTENSION = ''
*     DEFAULT_FILENAME  =
      FILE_FILTER       = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'
*     WITH_ENCODING     =
*     INITIAL_DIRECTORY =
      MULTISELECTION    = 'X'
    CHANGING
      FILE_TABLE        = LT_TAB
      RC                = L_RC
*     USER_ACTION       =
*     FILE_ENCODING     =
*  EXCEPTIONS
*     FILE_OPEN_DIALOG_FAILED = 1
*     CNTL_ERROR        = 2
*     ERROR_NO_GUI      = 3
*     NOT_SUPPORTED_BY_GUI    = 4
*     OTHERS            = 5
    .
  READ TABLE LT_TAB INTO LS_TAB INDEX 1.
  P_FILE = LS_TAB-FILENAME.
ENDFORM.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章