PARAMETERS p_path LIKE rlgrap-filename. SELECTION-SCREEN : FUNCTION KEY 1. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_path = 'C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\桌面' * MASK = '.EXCEL 文件 (*.XLS).' mode = 'O' title = '请选择文本文件...' IMPORTING filename = p_path EXCEPTIONS inv_winsys = 1 no_batch = 2 selection_cancel = 3 selection_error = 4 OTHERS = 5.
INITIALIZATION. sscrfields-functxt_01 = '模板下载'. AT SELECTION-SCREEN. CASE sscrfields-ucomm. WHEN 'FC01'. PERFORM frm_down_file ."下载模板 WHEN OTHERS. ENDCASE.
DATA: lv_file TYPE string, lv_path TYPE string, lv_fullpath TYPE string, lv_user_action TYPE i, lv_file_encoding TYPE abap_encod, ls_objdata LIKE wwwdatatab, lv_objid TYPE wwwdatatab-objid, lv_errtxt TYPE string, lv_rc LIKE sy-subrc, lv_path1 TYPE rlgrap-filename. CALL METHOD cl_gui_frontend_services=>file_save_dialog EXPORTING window_title = '下载模板' file_filter = cl_gui_frontend_services=>filetype_excel default_file_name = 'text.xlsx' initial_directory = 'C:\' CHANGING filename = lv_file path = lv_path fullpath = lv_fullpath user_action = lv_user_action file_encoding = lv_file_encoding EXCEPTIONS cntl_error = 1 error_no_gui = 2 OTHERS = 3. IF sy-subrc <> 0 OR lv_file = ''. MESSAGE s000(zmm01) WITH '操作已取消'. RETURN. ENDIF. lv_path1 = lv_fullpath. lv_objid = ''. "模板名称 SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF ls_objdata WHERE srtf2 = 0 AND relid = 'MI' AND objid = lv_objid. IF sy-subrc NE 0 OR ls_objdata-objid EQ space. CONCATENATE '模板文件' lv_objid '不存在' INTO lv_errtxt. MESSAGE lv_errtxt TYPE 'E'. ENDIF. CALL FUNCTION 'DOWNLOAD_WEB_OBJECT' EXPORTING key = ls_objdata destination = lv_path1 IMPORTING rc = lv_rc. IF lv_rc NE 0. CONCATENATE '模板文件:' ls_objdata-objid '下载失败' INTO lv_errtxt. MESSAGE lv_errtxt TYPE 'E'. ELSE. MESSAGE '模板下载成功' TYPE 'S'. ENDIF.