文章代码实现下图功能,复制可用
1.点击按钮模板下载
将SMW0中的模板下载至指定位置
注意修改代码中的此处,此处是文件在smw0中的代号,及下载后文件名称
2.选择屏幕以及F4帮助打开文件路径选择下载路径,反写至选择屏幕
以上为代码实现功能,所有带如下,复制可用
*&---------------------------------------------------------------------*
*& Report ZFIR019
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZFIR019.
TYPE-POOLS:slis.
TABLES: sscrfields.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-f30.
SELECTION-SCREEN: FUNCTION KEY 1. "TOOLBAR-BUTTON 1 - DOWNLOAD TEMPLATE
PARAMETERS:p_file LIKE rlgrap-filename .
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
DATA ls_functxt TYPE smp_dyntxt.
CLEAR ls_functxt.
ls_functxt-icon_text = '模板下载'.
ls_functxt-icon_id = '@HG@'. "AT_VERY_BUTTOM USED FOR DOWNLOAD.
ls_functxt-quickinfo = '模板下载'.
sscrfields-functxt_01 = ls_functxt.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file. "FOR DROPDOWN FILENAME
PERFORM frm_select_file.
AT SELECTION-SCREEN.
IF sscrfields-ucomm = 'FC01'."DOWNLOAD TEMPLATE.
DATA l_name1 TYPE string.
PERFORM download_template3 USING 'ZFIR019' '模板文件名称'. ""模板在SMW0是名称和模板文件名称
ENDIF.
START-OF-SELECTION.
*&---------------------------------------------------------------------*
*& FORM SELECT_FILE
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
FORM frm_select_file .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
mask = ' EXCEL FILES(*.xlsx),*.XLSX,EXCEL FILES(*.xls),*.XLS.'
title = '选择文件'
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 '文件路径打开失败' TYPE 'S' DISPLAY LIKE 'E' .
ENDIF.
ENDFORM. "SELECT_FILE
*&---------------------------------------------------------------------*
*& Form download_template3
*&---------------------------------------------------------------------*
* 下载模版 - 自动弹出保存路径 需要传入文件名
*----------------------------------------------------------------------*
* -->P_STR_TMPLNAME text
*----------------------------------------------------------------------*
FORM download_template3 USING p_str_tmplname l_name1.
DATA: lv_objdata LIKE wwwdatatab,
lv_obj_name LIKE wwwdatatab-objid,
lv_destination LIKE rlgrap-filename,
lv_objid LIKE sy-repid,
lv_subrc LIKE sy-subrc.
DATA:lv_filename TYPE string,
lv_path TYPE string,
lv_fullpath TYPE string.
SELECT SINGLE relid objid
FROM wwwdata
INTO CORRESPONDING FIELDS OF lv_objdata
WHERE srtf2 = 0
AND relid = 'MI'
AND objid = p_str_tmplname.
CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
window_title = '保存数据模板'
default_file_name = l_name1
file_filter = 'Excel File(*.xlsx)|*.xlsx|'
CHANGING
filename = lv_filename
path = lv_path
fullpath = lv_fullpath
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
invalid_default_file_name = 4
OTHERS = 5.
"路径不为空才下载模板
IF lv_fullpath IS NOT INITIAL.
lv_destination = lv_fullpath.
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
EXPORTING
key = lv_objdata
destination = lv_destination
IMPORTING
rc = lv_subrc.
IF lv_subrc NE 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
titel = '下载文件'
textline1 = '下载失败,未找到该模板,请使用SMW0上传模板'
EXCEPTIONS
OTHERS = 1.
EXIT.
ENDIF.
ENDIF.
ENDFORM. "download_template3