zoukankan      html  css  js  c++  java
  • 2020.02.24 【ABAP随笔】- EXCEL常见操作笔记 1

    EXCEL常见操作笔记 1

    1.    Excel模板下载

    TCODE:SMW0

    创建excel模板(其他模板也可以)

    我们选择二进制数据

    选择在哪个包里面创建模板

     

    点击创建:

    备注:如果出现以下错误( 无分配给对象 c: 的 MINE类型)

     则需要进行以下操作:保存。

     

     

     

     这样就可以成功创建了。

    在report程序中代码:

    TABLES:sscrfields.
    SELECTION-SCREEN: FUNCTION KEY 1."在标题行
    SELECTION-SCREEN PUSHBUTTON 02(10) TEXT-001 USER-COMMAND pb1."在select界面
    INITIALIZATION.
      sscrfields-functxt_01 = '下载模板'.
    
    AT SELECTION-SCREEN.
      CASE sscrfields-ucomm.
        WHEN 'FC01' OR 'PB1'.
    CALL METHOD zcl_document_jxzhu=>download_template_to_frontend
            EXPORTING
              name_of_template = '物料主数据客制表'
    *         iv_relid         = 'MI'
              iv_objid         = 'ZMMT001'
    *        IMPORTING
    *         rv_filepath      =
            EXCEPTIONS
              download_error   = 1
              OTHERS = 2.
          IF sy-subrc <> 0.
    *       Implement suitable error handling here
          ENDIF.
        WHEN OTHERS.
      ENDCASE.

    其中zcl_document_jxzhu=>download_template_to_frontend的代码为:

    同学们可以直接创建SE24类。方便以后可以直接调用。

    METHOD download_template_to_frontend.
        DATA: ls_key         TYPE wwwdatatab,
              ls_wwwdata     TYPE wwwdata,
              lv_filename    TYPE string,
              lv_path        TYPE string,
              lv_fullpath    TYPE string,
              lv_extension   TYPE c LENGTH 100,
              lv_user_action TYPE i.
        DATA: lv_offset TYPE i,
              lv_length TYPE i.
        CLEAR rv_filepath.
        IF iv_relid IS INITIAL.
          SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime text
            INTO CORRESPONDING FIELDS OF ls_wwwdata
            FROM wwwdata
            WHERE objid = iv_objid.
          iv_relid = ls_wwwdata-relid.
        ELSE.
          SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime text
            INTO CORRESPONDING FIELDS OF ls_wwwdata
            FROM wwwdata
            WHERE relid = iv_relid AND objid = iv_objid.
        ENDIF.
    
    *window title
        DATA(iv_window_title) = |Please choose the save filepath !|.
    *file extension
        CALL FUNCTION 'WWWPARAMS_READ'
          EXPORTING
            relid            = ls_wwwdata-relid
            objid            = ls_wwwdata-objid
            name             = 'fileextension' "c_extension of include LSHTMTOP
          IMPORTING
            value            = lv_extension
          EXCEPTIONS
            entry_not_exists = 1
            OTHERS           = 2.
        IF sy-subrc <> 0.
        ENDIF.
        DATA iv_default_extension TYPE string.
        iv_default_extension = lv_extension.
    *file filter
        DATA(iv_file_filter) = '(*' && iv_default_extension && ')|*' && iv_default_extension.
    *file name
        CONCATENATE name_of_template '-' sy-datum+0(8) sy-timlo+0(4)
          INTO DATA(iv_default_file_name).
        IF iv_default_file_name IS INITIAL.
          iv_default_file_name = ls_wwwdata-text.
        ELSE.
          WHILE iv_default_file_name CA './'.
            lv_offset = sy-fdpos.
            lv_length = lv_offset.
            lv_offset = lv_offset + 1.
            iv_default_file_name = iv_default_file_name+0(lv_length) && iv_default_file_name+lv_offset.
          ENDWHILE.
        ENDIF.
        ls_key-relid = iv_relid.
        ls_key-objid = iv_objid.
    *File path of selection
        CALL METHOD cl_gui_frontend_services=>file_save_dialog
          EXPORTING
            window_title         = iv_window_title
            default_extension    = iv_default_extension
            default_file_name    = iv_default_file_name
            file_filter          = iv_file_filter
          CHANGING
            filename             = lv_filename
            path                 = lv_path
            fullpath             = lv_fullpath
            user_action          = lv_user_action
          EXCEPTIONS
            cntl_error           = 1
            error_no_gui         = 2
            not_supported_by_gui = 3
            OTHERS               = 4.
        IF sy-subrc <> 0.
    * happen sth wrong
          DATA(ev_rc) = sy-subrc.
        ENDIF.
    * user action ( exit or cancal )
        IF lv_user_action <> 0.
          ev_rc = lv_user_action.
        ENDIF.
    
        IF ev_rc <> 0 .
          RAISE download_error.
        ENDIF.
    
        rv_filepath = lv_fullpath.
    
    *Download web object
        DATA: lv_destination TYPE rlgrap-filename.
        lv_destination = rv_filepath.
        CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
          EXPORTING
            key         = ls_key
            destination = lv_destination
          IMPORTING
            rc          = ev_rc
          CHANGING
            temp        = lv_destination.
        IF ev_rc <> 0 .
          RAISE download_error.
        ENDIF.
      ENDMETHOD.

     效果:

    - Tab Zhu 不念过去 不畏将来

     

    SELECTION-SCREENFUNCTION KEY 1."在标题行
    SELECTION-SCREEN PUSHBUTTON 02(10TEXT-001 USER-COMMAND pb1."在select界面

  • 相关阅读:
    摩尔定律 四
    为什么要重载new? 四
    JS 完美识别IE FIREFOX CHROME safari
    Chrome的JS调试工具
    JetBrains WebStorm 6注册码(其实版本v4, v5, v6都通用)
    require.js 入门学习
    str_replace、preg_replace、strtr比较
    获取当前IP地址,跳转到对应城市网站。
    mysql大数据高并发处理(转)
    SESSION的安全性(转)
  • 原文地址:https://www.cnblogs.com/jxzhu/p/12359692.html
Copyright © 2011-2022 走看看