当前位置: 代码迷 >> 综合 >> SAP-ABAP-文件批导程序通用部分
  详细解决方案

SAP-ABAP-文件批导程序通用部分

热度:87   发布时间:2023-12-13 04:17:55.0

文章代码实现下图功能,复制可用

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