*&---------------------------------------------------------------------*
*& 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