CONSTANTS
 :
 
        c_initial_folder 
 TYPE string 
 VALUE 
 'c:\'
 ,                       
 "起始目录
 
        c_title          
 TYPE string 
 VALUE
 '选择文件存放目录'
 .              
 "TITLE 
 
  *--------------------------------------------------------------------*
  
  "获取文件保存路径
  
 
  *--------------------------------------------------------------------*
  
  AT 
  SELECTION-SCREEN 
  ON 
  VALUE-REQUEST 
  FOR p_s_dir
  .
  
   
  CALL 
  METHOD cl_gui_frontend_services
  =>directory_browse
  
     
  EXPORTING
  
       window_title    
  = c_title                                        
  "File Directory'
  
       initial_folder  
  = c_initial_folder                            
  "windows c盘为本地目录起点
  
     
  CHANGING
  
       selected_folder 
  = l_localpath
  .                                   
  "输入的本地下载目录
  
   
  CALL 
  METHOD cl_gui_cfw
  =>flush
  .                                       
  "方法:Send Buffered Automation Queue to Front End
  
   p_s_dir 
  = l_localpath
  .
  
*--------------------------------------------------------------------*
  
   
  "获取文件路径
  
 
  *--------------------------------------------------------------------*
  
  AT 
  SELECTION-SCREEN 
  ON 
  VALUE-REQUEST 
  FOR p_moban
  .
  
   
  CALL 
  FUNCTION 
  'F4_FILENAME'
  
     
  EXPORTING
  
       dynpro_number 
  = syst
  -dynnr
  
       field_name    
  = 
  'PATH'
  
     
  IMPORTING
  
       file_name     
  = p_moban
  .                                       
  "文件路径
  
 
 
  
 
 
  *--------------------------------------------------------------------*
  
 
  获取文件路径
  
 
  *--------------------------------------------------------------------*
  
  
  
     CALL FUNCTION 'WS_FILENAME_GET'
   
  
       EXPORTING
   
  
         mask             = ',Excel Files,*.xls*,*.xls,All Files,*.*.'(101)
   
  
         title            = '选择文件'(100)
   
  
       IMPORTING
   
  
         filename         = p_file
   
  
       EXCEPTIONS
   
  
         inv_winsys       = 1
   
  
         no_batch         = 2
   
  
         selection_cancel = 3
   
  
         selection_error  = 4
   
  
         OTHERS           = 5.
   
  
     IF sy-subrc <> 0 AND sy-subrc <> 3.
   
  
       MESSAGE e100(zdev) WITH '选择文件出错!'(007).
   
  
     ENDIF.
   
  
 
  
 
 
  
 
  
   
   *--------------------------------------------------------------------*
   
   
   获取文件路径:下载时,弹出下载地址选择窗口
   
  
   *--------------------------------------------------------------------*
   
  
  
  
   DATA:  lo_objdata LIKE wwwdatatab,
   
  
            lo_mime LIKE w3mime,
   
  
            lc_filename  TYPE string VALUE 'test01',            "默认文件名,用户可以修改
   
  
            lc_path      TYPE  string ,                         "路径
   
  
            lc_fullpath  TYPE string  ,                         "完整路径加名称
   
  
     
   
  
   
 
  
     "保存下载的模板
   
  
     CALL METHOD cl_gui_frontend_services=>file_save_dialog "调用保存对话框
   
  
       EXPORTING
   
  
         default_extension    = 'XLS'                        "保存类型
   
  
         default_file_name    = lc_filename                  "文件名:test01
   
  
       CHANGING
   
  
         filename             = lc_filename                  "文件名
   
  
         path                 = lc_path                      "地址,用户选择的时候赋值如d:\
   
  
         fullpath             = lc_fullpath                  "文件路径:如d:\test01.xls
   
  
       EXCEPTIONS
   
  
         cntl_error           = 1
   
  
         error_no_gui         = 2
   
  
         not_supported_by_gui = 3
   
  
         OTHERS               = 4.
   
  
     IF lc_fullpath = ''.
   
  
       MESSAGE  '不能打开excel' TYPE 'E'.
   
  
     ENDIF.
   
  
 
  
 
 
  
 
  
  
   另外有个函数可以校验文件是否存在
   
  
   TMP_GUI_GET_FILE_EXIS
   
  
   
 
  
   
 
  
  
  
欢迎关注订阅号:SAP学习记录 (SAPlearning )
 
 
  
                










