1.批量导入数据的模板下载

下载模板提供给用户一个批量导入数据的格式
1.导入模板
事务代码:smw0
包通常是事务代码的前3个字母如zmm
对象名称是自己定义的模板名后面要用
在这里插入图片描述
上传模板文件

2.用代码定义屏幕下载模板按钮

定义屏幕按钮

SELECTION-SCREEN: FUNCTION KEY 1,
                  FUNCTION KEY 2.

初始化屏幕按钮

INITIALIZATION.
  PERFORM frm_init_functxt.
  PERFORM frm_init_functxt2.

FORM frm_init_functxt2 .
  CLEAR:gs_functxt.
  gs_functxt-icon_id   = icon_export.   "图标
  gs_functxt-icon_text = TEXT-i02.      "按钮文本
  sscrfields-functxt_02 = gs_functxt.   "按钮      多个按钮是需要变化
ENDFORM.

3.执行下载模板功能代码

FORM frm_download_temple2 .
  DATA: lv_name        TYPE string,
        lv_file        TYPE string,
        lv_user_action TYPE i.
  IF sscrfields-ucomm EQ 'FC02'.           "按下按钮时, !!需要自己改
    lv_name = '下载模板2'.                  "要下载模板自己定义一个模板名称  !!需要自己改
    CALL FUNCTION 'GUI_FILE_SAVE_DIALOG'   "系统弹出一个文件保存对话框,用户可以选择文件的保存位置、输入文件名,并指定文件的保存格式等。
      EXPORTING
        default_file_name = lv_name
      IMPORTING
        fullpath          = lv_file
        user_action       = lv_user_action.

    IF lv_user_action EQ 0.
      PERFORM frm_download_excel USING 'ZSD015_ZTD' lv_file.  "ZSD015_ZTD是模板文件的名字,!!需要自己改
      MESSAGE '模板下载成功!' TYPE 'S'.
    ENDIF.
  ENDIF.
ENDFORM.

"这段代码不用动,是上面引用的模块
FORM frm_download_excel  USING  excel_name excel_name1.
 DATA:
      ls_objdata     LIKE wwwdatatab,
      ls_mime        LIKE w3mime,
      ls_destination LIKE rlgrap-filename,
      lv_objnam      TYPE string,
      lv_subrc       LIKE sy-subrc,
      lv_errtxt      TYPE string,
      lv_objid       TYPE wwwdatatab-objid,
      lv_dest        LIKE sapb-sappfad,
      lv_fullpath    LIKE rlgrap-filename.

    MOVE excel_name TO lv_objid.
    CONCATENATE lv_objid '.XLSX' INTO lv_objnam.
    CONDENSE lv_objnam NO-GAPS.

    SELECT SINGLE
      relid,
      objid
    FROM
      wwwdata
    WHERE srtf2 EQ 0
      AND relid EQ 'MI'
      AND objid EQ @lv_objid
    INTO CORRESPONDING FIELDS OF @ls_objdata.

    IF sy-subrc NE 0 OR ls_objdata-objid EQ space.
      CONCATENATE '模板文件:' lv_objnam '不存在,请用TCODE:SMW0进行加载' INTO lv_errtxt.
      MESSAGE lv_errtxt TYPE 'S' DISPLAY LIKE 'E'.
      RETURN.
    ENDIF.

    CONCATENATE excel_name1 '.xlsx' INTO lv_fullpath.
    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
      EXPORTING
        key         = ls_objdata
        destination = lv_fullpath
      IMPORTING
        rc          = lv_subrc.

    IF lv_subrc NE 0.
      CONCATENATE '模板文件:' lv_objnam '下载失败' INTO lv_errtxt.
      MESSAGE lv_errtxt TYPE 'E'.
    ELSE.
      MESSAGE '模板下载成功' TYPE 'S'.
    ENDIF.
ENDFORM.

4.调用模板下载模块

AT SELECTION-SCREEN.
  IF sscrfields-ucomm = 'FC01'.
    PERFORM frm_download_temple.
  ELSEIF sscrfields-ucomm = 'FC02'.
    PERFORM frm_download_temple2.
  ENDIF.
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值