设为首页 收藏本站
查看: 1007|回复: 0

[经验分享] sap中Excel的模版上传和下载

[复制链接]
发表于 2015-9-18 09:20:51 | 显示全部楼层 |阅读模式
  一:所用到的事物码:
  smw0
  二:上传步骤

       DSC0000.jpg
  图1
DSC0001.jpg
  图2
DSC0002.jpg
  图3
  注:“包”为你所在项目的包的名称。
DSC0003.jpg
  

                      图4 DSC0004.jpg
  图5
  点击“7” 选择Excel模版,就可以将模版上传到sap的服务器上了,另需要记住对象名称,在后面的程序中有需要。
  三:下载代码
   TABLES:sscrfields.
*定义OLE变量
DATA:g_excel TYPE ole2_object,
     g_applica TYPE ole2_object,
     g_sheet TYPE ole2_object,
     g_cell TYPE ole2_object,
     g_workbook TYPE ole2_object.
DATA:p_filepath TYPE string.
CONSTANTS:c_yes TYPE c VALUE 'X',
          c_path TYPE char128 VALUE 'C:\TMP\价格信息批量导入.xls'.
*模版下载按钮
SELECTION-SCREEN PUSHBUTTON /1(10) text-002
                                  USER-COMMAND attch.

AT SELECTION-SCREEN.
  PERFORM frm_check_input.

*&---------------------------------------------------------------------*
*&      Form  frm_check_input
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_check_input .
  DATA l_ret TYPE abap_bool.
  IF sscrfields-ucomm = 'ATTCH'.
* 下载模版
    PERFORM frm_download_template.
  ELSE.
    IF p_filepath IS INITIAL.
      MESSAGE s004(zmess) DISPLAY LIKE 'E'.
      STOP.
    ENDIF.
* 将路径全部转换为大写
    TRANSLATE p_filepath TO UPPER CASE.
* 检查文件是否存在
    CALL METHOD cl_gui_frontend_services=>file_exist
      EXPORTING
        file                 = p_filepath
      RECEIVING
        result               = l_ret
      EXCEPTIONS
        cntl_error           = 1
        error_no_gui         = 2
        wrong_parameter      = 3
        not_supported_by_gui = 4
        OTHERS               = 5.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    IF l_ret NE c_yes.
      MESSAGE e004(zmess) WITH '文件不存在'.
    ENDIF.
  ENDIF.
ENDFORM.                    "frm_check_input
*&---------------------------------------------------------------------*
*&      Form  frm_download_template
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM frm_download_template .
  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:l_ret TYPE abap_bool,
       lv_answer.
  DATA:lv_file TYPE string.
  MOVE c_path TO lv_file.
  CALL METHOD cl_gui_frontend_services=>file_exist
    EXPORTING
      file                 = lv_file
    RECEIVING
      result               = l_ret
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      wrong_parameter      = 3
      not_supported_by_gui = 4
      OTHERS               = 5.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ENDIF.
  IF l_ret EQ c_yes.
* 模版已存在,是否覆盖
    CALL FUNCTION 'POPUP_TO_CONFIRM'
      EXPORTING
        text_question  = '模版已存在,是否覆盖?'
        text_button_1  = '是'(001)
        text_button_2  = '否'(002)
      IMPORTING
        answer         = lv_answer
      EXCEPTIONS
        text_not_found = 1
        OTHERS         = 2.
    IF sy-subrc <> 0.
    ENDIF.
    IF lv_answer EQ 'A'. "取消
      EXIT.
    ELSEIF lv_answer NE '1'. "否
      p_filepath = c_path.
    ENDIF.
  ELSE.
    lv_answer = '1'.
  ENDIF.

  CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
  GET PROPERTY OF g_excel 'Workbooks' = g_workbook .
  CALL METHOD OF
      g_workbook
      'Close'.
  IF lv_answer EQ '1'.
    MOVE 'ZGN_MMB021' TO lv_obj_name.
    SELECT relid objid
      FROM wwwdata
      INTO  CORRESPONDING FIELDS OF lv_objdata
      UP TO 1 ROWS
      WHERE srtf2 = 0 AND relid = 'MI'
        AND objid = lv_obj_name.
    ENDSELECT.
    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
      EXPORTING
        key         = lv_objdata
        destination = c_path
      IMPORTING
        rc          = lv_subrc.
    IF lv_subrc = 0.
      p_filepath = c_path.
    ENDIF.
  ENDIF.
  CALL METHOD OF
      g_workbook
      'open'
    EXPORTING
      #1         = c_path.
  CALL METHOD OF
      g_excel
      'worksheets' = g_sheet
    EXPORTING
      #1           = 1.
  CALL METHOD OF
      g_sheet
      'activate'.
  SET PROPERTY OF g_excel 'visible' = 1.
  FREE OBJECT g_sheet.
  FREE OBJECT g_applica.
  FREE OBJECT g_workbook.
  FREE OBJECT g_excel.
ENDFORM.                    "frm_download_template

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-115198-1-1.html 上篇帖子: SAP BW Query常见的性能问题 下篇帖子: SAP connector3.0相关的东西
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表