文件选择框总结

效果图片:


下面是实现的方法:

1.p_file为选择屏幕的文件名变量(以下同)
CALL FUNCTION 'F4_FILENAME'
* EXPORTING
*  PROGRAM_NAME       = SYST-CPROG
*  DYNPRO_NUMBER      = SYST-DYNNR
*  FIELD_NAME         = ' '
IMPORTING
  FILE_NAME          = p_file .

2.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
*  PROGRAM_NAME       = SYST-REPID
*  DYNPRO_NUMBER      = SYST-DYNNR
*  FIELD_NAME         = ' '
  STATIC             = 'X'
  MASK               = '*.xls'
*  FILEOPERATION      = 'R'
CHANGING
   FILE_NAME          = p_file
*  LOCATION_FLAG      = 'P'
EXCEPTIONS
  MASK_TOO_LONG      = 1
  OTHERS             = 2
         .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

3.这个函数在ECC下已经过时,但是还可以使用
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
*  DEF_FILENAME          = ''
  DEF_PATH              = 'C:\'
  MASK                  = '*.TXT,*.TXT.'
  MODE                  = 'O'
*  TITLE                 = ' '
IMPORTING
  FILENAME              = p_file
*  RC                    =
EXCEPTIONS
  INV_WINSYS            = 1
  NO_BATCH              = 2
  SELECTION_CANCEL      = 3
  SELECTION_ERROR       = 4
  OTHERS                = 5
         .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

4. 其实WS_FILENAME_GET的替代函数
CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'
EXPORTING
*  DEF_FILENAME          = ''
*  DEF_PATH              = 'D:\'
*  MASK                  = ',*.*,*.*.'
  MODE                  = 'O'
*  TITLE                 = '选择文件'
IMPORTING
  FILENAME              = P_FILE
*  PATH                  =
*  FILE                  =
EXCEPTIONS
  SELECTION_CANCEL      = 1
  SELECTION_ERROR       = 2
  OTHERS                = 3
         .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

5.通过调用方法来实现,itab内的字段为filename,存放选择的文件的文件名。
DATA:itab type filetable.
data: num type i.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
   EXPORTING
     WINDOW_TITLE           = '选择文件'
     DEFAULT_EXTENSION      = 'TXT'
*     DEFAULT_FILENAME       = '文件名.txt'
*     FILE_FILTER            =
*     WITH_ENCODING          =
*     INITIAL_DIRECTORY      = 'c:\'
*     MULTISELECTION         ='X' "是否允许选择多个
   CHANGING
     FILE_TABLE             = itab
     RC                     = num
*     USER_ACTION            =
*     FILE_ENCODING          =
   EXCEPTIONS
     FILE_OPEN_DIALOG_FAILED = 1
     CNTL_ERROR             = 2
     ERROR_NO_GUI           = 3
     NOT_SUPPORTED_BY_GUI   = 4
     OTHERS                 = 5
         .
IF SY-SUBRC <> 0.
   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

posted @ 2020-11-05 17:08  荒野游侠  阅读(417)  评论(0)    收藏  举报