sap--下载smw0上传的模板

DATA:c_export_filename_xls TYPE string VALUE '模板名称.xlsx', "导出模板默认文件名
         c_objid_xls           TYPE wwwdatatab-objid VALUE '模板在swm0中的ID'.    "存放模板的对象id
  DATA:  lo_objdata     LIKE wwwdatatab, "Excel模板对象
         ls_destination LIKE rlgrap-filename, "下载保存的目标路径
         lc_path        TYPE string,              "存储路径
         lc_fullpath    TYPE string,          "文件完整路径
         li_rc          LIKE sy-subrc.              "返回值
  DATA :l_obj TYPE REF TO cl_gui_frontend_services .
  DATA: l_path  TYPE string,l_fpath TYPE string,l_rc TYPE i.

*  检查模板是否存在
  SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF lo_objdata
  WHERE srtf2 = 0
  AND relid = 'MI'
  AND objid = c_objid_xls.

  IF sy-subrc NE 0 OR lo_objdata-objid EQ space.
    MESSAGE '还未上传模板,无法下载' TYPE 'E'.
  ENDIF.
  CREATE OBJECT l_obj .

  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
*     WINDOW_TITLE         =
      file_filter          = '.xls|.xlsx'
      initial_directory    = 'C:'
      default_extension    = 'XLSX'    "默认保存文件格式
      default_file_name    = c_export_filename_xls   "默认文件名称
*     WITH_ENCODING        =
*     FILE_FILTER          =
*     INITIAL_DIRECTORY    =
*     PROMPT_ON_OVERWRITE  = 'X'
    CHANGING
      filename             = c_export_filename_xls     "默认文件名称
      path                 = l_path             "文件路径
      fullpath             = lc_fullpath   "文件路径
      user_action          = l_rc
*     FILE_ENCODING        =
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  IF sy-subrc <> 0.
    MESSAGE  '保存文件出错!' TYPE 'E'.
  ENDIF.
  IF l_rc <> 0."l_rc=0,表示按下确认按钮,9表示取消
    "STOP.
    RETURN.
  ENDIF.
*  下载模板
  ls_destination = lc_fullpath.
  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      key         = lo_objdata
      destination = ls_destination
    IMPORTING
      rc          = li_rc.
  IF li_rc NE 0.
    MESSAGE e027(zfimsg) WITH c_export_filename_xls.
  ENDIF.
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值