• ABAP 导入excel模板及下载


    一、效果

      

    二、模板上传

    2.1 、T-code为:SMW0

    2.2、选择包

    2.3、点击创建、并上传附件!

    三、代码实现

    *定义按钮
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text02.
    SELECTION-SCREEN PUSHBUTTON /1(10)    button USER-COMMAND cli1 MODIF ID m02.
    SELECTION-SCREEN END OF BLOCK blk2.
    
    *初始化
    INITIALIZATION.
      gv_objid = 'Z_SECSTO_UPDATE'.
    
    AT SELECTION-SCREEN.
      IF sy-ucomm = 'CLI1'.
      PERFORM frm_download_file USING gv_objid.
    ENDIF.
    
    *调用模板
      FORM frm_download_file  USING  p_gv_objid.
    
      DATA: lv_filename    TYPE string,
            lv_path        TYPE string,
            lv_fullpath    TYPE string,
            lv_user_action TYPE i,
            lv_destination LIKE rlgrap-filename,
            ls_objdata     LIKE wwwdatatab,
            lv_objid       TYPE wwwdatatab-objid,
            lv_rc          TYPE sy-subrc.
    
      IF sy-ucomm = 'CLI1'.
        lv_filename = '安全库存更新模板'.
    
        CONCATENATE sy-datum
                    '_'
                    sy-uzeit
                    '_'
                    lv_filename
               INTO lv_filename.
    
        CALL METHOD cl_gui_frontend_services=>file_save_dialog
          EXPORTING
            default_extension    = 'XLSX'
            default_file_name    = lv_filename
            initial_directory    = lv_path
          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.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ELSE.
          CLEAR: lv_destination.
          lv_destination = lv_fullpath.
        ENDIF.
    
        CHECK lv_user_action <> 9.
    
        SELECT SINGLE relid objid
          FROM wwwdata
          INTO CORRESPONDING FIELDS OF ls_objdata
         WHERE srtf2 = 0
           AND objid = p_gv_objid
           AND relid = 'MI'.
    
        IF sy-subrc = 0.
          CLEAR: lv_rc.
          CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'                   "#EC *
            EXPORTING
              key         = ls_objdata
              destination = lv_destination
            IMPORTING
              rc          = lv_rc.
          IF lv_rc NE 0.
            MESSAGE '该数据模板不存在!' TYPE 'E'.
          ELSE.
            MESSAGE '模板下载成功' TYPE 'S'.
          ENDIF.
        ELSE.
          MESSAGE '该数据模板不存在!' TYPE 'E'.
        ENDIF.
      ENDIF.
      CLEAR sy-ucomm.
    ENDFORM.
  • 相关阅读:
    centos7.6进行软raid5制作
    面试题 PHP1
    基于githooks利用PHP_CodeSniffer做PSR2代码风格规范检测
    【GC 分代收集算法 VS 分区收集算法】
    【 Redis五大数据类型实现原理】
    【Java反射】
    【GC 垃圾收集器】
    【Redis过期策略/内存淘汰机制/对过期Key的处理】
    【Redis底层数据结构】
    【当骗子遇上研发工程师,还没开始就已经结束】
  • 原文地址:https://www.cnblogs.com/zs-chenkang/p/13207059.html
Copyright © 2020-2023  润新知