REPORT YTEST05.
TABLES:sscrfields.
DATA:gs_sel_btn TYPE smp_dyntxt.
CONSTANTS: gc_template TYPE sobj_name VALUE ‘File_TEMPLATE’.
data: gv_title_folder TYPE string.
SELECTION-SCREEN FUNCTION KEY 1.
PARAMETERS:p_file TYPE localfile .
SELECTION-SCREEN BEGIN OF SCREEN 500.
PARAMETERS p_folder TYPE string OBLIGATORY.
SELECTION-SCREEN END OF SCREEN 500.
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN ‘FC01’.
PERFORM download_template USING gc_template.
ENDCASE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_folder.
gv_title_folder = ‘Select a folder to store the Excel template’.
cl_gui_frontend_services=>directory_browse(
EXPORTING
window_title = gv_title_folder
* initial_folder =
CHANGING
selected_folder = p_folder
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4
).
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
INITIALIZATION.
CLEAR gs_sel_btn.
gs_sel_btn-icon_id = icon_export.
gs_sel_btn-icon_text = ‘Download Template’(t01).
gs_sel_btn-quickinfo = ‘Download Excel Template’(t01).
sscrfields-functxt_01 = gs_sel_btn.
START-OF-SELECTION.
FORM download_template USING pv_template TYPE sobj_name.
DATA: ls_wwwdata TYPE wwwdatatab,
lv_filename TYPE rlgrap-filename,
lv_rc TYPE sy-subrc.
CALL SELECTION-SCREEN 500 STARTING AT 10 5.
CHECK sy-subrc EQ ‘0’.
SELECT SINGLE FROM wwwdata AS w JOIN tadir AS t ON w~objid EQ t~obj_name
FIELDS *
WHERE w~srtf2 EQ 0
AND w~relid EQ ‘MI’
AND t~pgmid EQ ‘R3TR’
AND t~object EQ ‘W3MI’
AND t~obj_name EQ @pv_template
INTO CORRESPONDING FIELDS OF @ls_wwwdata.
IF sy-subrc EQ ‘0’.
lv_filename = |{ p_folder }\{ pv_template }.xlsx|.
CALL FUNCTION ‘DOWNLOAD_WEB_OBJECT’
EXPORTING
key = ls_wwwdata
destination = lv_filename
IMPORTING
rc = lv_rc
* CHANGING
* TEMP =
.
ELSE.
MESSAGE ‘模板不存在’ TYPE ‘I’ DISPLAY LIKE ‘E’.
RETURN.
ENDIF.
ENDFORM.