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.