文章代码实现下图功能,复制可用
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 FILENAMEPERFORM 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'EXPORTINGmask = ' EXCEL FILES(*.xlsx),*.XLSX,EXCEL FILES(*.xls),*.XLS.'title = '选择文件'IMPORTINGfilename = p_fileEXCEPTIONSinv_winsys = 1no_batch = 2selection_cancel = 3selection_error = 4OTHERS = 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 objidFROM wwwdataINTO CORRESPONDING FIELDS OF lv_objdataWHERE srtf2 = 0AND relid = 'MI'AND objid = p_str_tmplname.CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGwindow_title = '保存数据模板'default_file_name = l_name1file_filter = 'Excel File(*.xlsx)|*.xlsx|'CHANGINGfilename = lv_filenamepath = lv_pathfullpath = lv_fullpathEXCEPTIONScntl_error = 1error_no_gui = 2not_supported_by_gui = 3invalid_default_file_name = 4OTHERS = 5."路径不为空才下载模板IF lv_fullpath IS NOT INITIAL.lv_destination = lv_fullpath.CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey = lv_objdatadestination = lv_destinationIMPORTINGrc = lv_subrc.IF lv_subrc NE 0.CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'EXPORTINGtitel = '下载文件'textline1 = '下载失败,未找到该模板,请使用SMW0上传模板'EXCEPTIONSOTHERS = 1.EXIT.ENDIF.ENDIF.
ENDFORM. "download_template3