ABAP 模板下载

*&---------------------------------------------------------------------*
*& Report  Y_CLY_11
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT Y_CLY_11.

" TEXT-T00 选择
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-T00.
PARAMETERS: P_FPATH TYPE RLGRAP-FILENAME .
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON 1(20) BUT1 USER-COMMAND DOWN. "
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLK1.


INITIALIZATION.
  CALL FUNCTION 'ICON_CREATE' " 给按钮添加图标
    EXPORTING
      NAME   = 'ICON_NEXT_PAGE'
      TEXT   = TEXT-B01     "按钮的文本
      INFO   = 'DOWN'
    IMPORTING
      RESULT = BUT1
    EXCEPTIONS
      OTHERS = 0.

AT SELECTION-SCREEN .
  CASE SY-UCOMM.
    WHEN 'DOWN'.
      PERFORM FRM_DOWN_EXCEL.
  ENDCASE.

START-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  FRM_DOWN_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FRM_DOWN_EXCEL .
  DATA: LT_OBJDATA  TYPE WWWDATATAB,
        LV_DEST     TYPE RLGRAP-FILENAME,
        LV_OBJNAM   TYPE STRING,
        LV_RC       TYPE SY-SUBRC,
        LV_RELID    TYPE WWWDATA-RELID VALUE 'MI',
        LV_SRTF2    TYPE WWWDATA-SRTF2 VALUE '0',
        LV_ERRTXT   TYPE STRING.
  DATA: LV_FULLPATH TYPE STRING,
        LV_FILENAME TYPE STRING,
        LV_PATH     TYPE STRING,
        LV_NUM      TYPE I,
        LV_XLS      TYPE STRING.

  LV_OBJNAM = 'ZSDE0001'.
  CONDENSE LV_OBJNAM NO-GAPS.

  " 下载模板
  SELECT SINGLE RELID OBJID
    INTO CORRESPONDING FIELDS OF LT_OBJDATA
    FROM WWWDATA
    WHERE RELID = LV_RELID AND OBJID = LV_OBJNAM AND SRTF2 = LV_SRTF2.
  IF SY-SUBRC NE 0 OR LT_OBJDATA-OBJID EQ SPACE.
    " TEXT-003 模板文件不存在,请用TCODE:SMW0进行上载
    CONCATENATE TEXT-003 '' INTO LV_ERRTXT.
    MESSAGE E001(ZSD) WITH LV_ERRTXT.
  ENDIF.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      FILE_FILTER       = '*.xls'
      INITIAL_DIRECTORY = 'C:\'
    CHANGING
      FILENAME          = LV_FILENAME
      PATH              = LV_PATH
      FULLPATH          = LV_FULLPATH.
  IF LV_FILENAME IS INITIAL.
    MESSAGE E001(ZSD) WITH '文件名不可为空'. " 文件名不可为空
  ENDIF.

  " 判断文件名后三位是否为xls
  CONDENSE LV_FULLPATH.
  LV_NUM = STRLEN( LV_FULLPATH ).
  IF LV_NUM > 4.
    LV_NUM = LV_NUM - 3.
    LV_XLS = LV_FULLPATH+LV_NUM(3) .
    TRANSLATE LV_XLS TO UPPER CASE.
    IF LV_XLS <> 'XLS'.
      CONCATENATE LV_FULLPATH '.XLS' INTO LV_DEST.
    ENDIF.
  ELSE.
    CONCATENATE LV_FULLPATH '.XLS' INTO LV_DEST.
  ENDIF.

  " 下载模板
  CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'
    EXPORTING
      KEY         = LT_OBJDATA
      DESTINATION = LV_DEST
    IMPORTING
      RC          = LV_RC.

  IF LV_RC NE 0.
    " TEXT-003 模板文件不存在,请用TCODE:SMW0进行上载
    CONCATENATE TEXT-003 '' INTO LV_ERRTXT.
    MESSAGE E001(ZSD) WITH LV_ERRTXT.
  ENDIF.
ENDFORM.                    " FRM_DOWN_EXCEL

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值