原创 Tab Zhu [ SAP TAB ](javascript:void\(0\);)
**点击蓝字关注我们**
富强 民主 文明 和谐
自由 平等 公正 法制
爱国 敬业 诚信 友善
_**01** _
**EXCEL模板下载**
**不念过** **去**
**START**
**不畏将来**
TCODE:SMW0
创建 excel 模板 ( 其他模板也可以 )
我们选择二进制数据
选择在哪个包里面创建模板
点击创建:
备注:如果出现以下错误 (无分配给对象 c:\ 的 MINE类型)
则需要进行以下操作:保存。
如需要其他后缀的,可以在EXTENSION中添加
这样就可以成功创建
在report的 **程序中代码** 为:
TABLES : sscrfields .
---
SELECTION-SCREEN : FUNCTION KEY 1 . " 按钮在标题行
SELECTION-SCREEN PUSHBUTTON 02 ( 10 ) TEXT \- 001 USER-COMMAND pb1. " 按钮在 select 界面
INITIALIZATION .
sscrfields \- functxt_01 = ' 下载模板 ' .
AT SELECTION-SCREEN .
CASE sscrfields \- ucomm .
WHEN 'FC01' OR 'PB1' .
CALL METHOD zcl_document_jxzhu => download_template_to_frontendEXPORTING
name_of_template = ' 物料主数据客制表 '
• iv_relid = 'MI'
iv_objid = 'ZMMT001'
• IMPORTING
• rv_filepath =
EXCEPTIONS
download_error = 1
OTHERS = 2 .
IF sy \- subrc <> 0 .• Implement suitable error handling here
ENDIF .WHEN OTHERS .
ENDCASE .其中zcl_document_jxzhu=>download_template_to_frontend的代码为:
同学们可以直接创建SE24类。方便以后可以直接调用。
METHOD download_template_to_frontend .DATA : ls_key TYPE wwwdatatab ,
ls_wwwdata TYPE wwwdata ,
lv_filename TYPE string ,
lv_path TYPE string ,
lv_fullpath TYPE string ,
lv_extension TYPE c LENGTH 100 ,
lv_user_action TYPE i .
DATA : lv_offset TYPE i ,
lv_length TYPE i .
CLEAR rv_filepath .
IF iv_relid IS INITIAL .
SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime textINTO CORRESPONDING FIELDS OF ls_wwwdata
FROM wwwdata
WHERE objid = iv_objid .
iv_relid = ls_wwwdata \- relid .ELSE .
SELECT SINGLE relid objid srtf2 checkout checknew chname tdate ttime textINTO CORRESPONDING FIELDS OF ls_wwwdata
FROM wwwdata
WHERE relid = iv_relid AND objid = iv_objid .
ENDIF .*window title
DATA ( iv_window_title ) = |Please choose the save filepath !| .
*file extension
CALL FUNCTION 'WWWPARAMS_READ'EXPORTING
relid = ls_wwwdata \- relid
objid = ls_wwwdata \- objidname = 'fileextension' "c_extension of include LSHTMTOP
IMPORTING
value = lv_extensionEXCEPTIONS
entry_not_exists = 1
OTHERS = 2 .
IF sy \- subrc <> 0 .
ENDIF .DATA iv_default_extension TYPE string .
iv_default_extension = lv_extension .*file filter
DATA ( iv_file_filter ) = '(*' && iv_default_extension && ')|*' &&iv_default_extension .
*file name
CONCATENATE name_of_template '-' sy \- datum+0 ( 8 ) sy \- timlo+0
( 4 )
INTO DATA ( iv_default_file_name ).
IF iv_default_file_name IS INITIAL .
iv_default_file_name = ls_wwwdata \- text .ELSE .
WHILE iv_default_file_name CA './' .
lv_offset = sy \- fdpos .
lv_length = lv_offset .
lv_offset = lv_offset + 1 .
iv_default_file_name = iv_default_file_name+0 ( lv_length ) &&iv_default_file_name+lv_offset .
ENDWHILE .
ENDIF .
ls_key \- relid = iv_relid .
ls_key \- objid = iv_objid .*File path of selection
CALL METHOD cl_gui_frontend_services => file_save_dialogEXPORTING
window_title = iv_window_title
default_extension = iv_default_extension
default_file_name = iv_default_file_namefile_filter = iv_file_filter
CHANGING
filename = lv_filename
path = lv_path
fullpath = lv_fullpath
user_action = lv_user_actionEXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4 .
IF sy \- subrc <> 0 .• happen sth wrong
DATA ( ev_rc ) = sy \- subrc .
ENDIF .• user action ( exit or cancal )
IF lv_user_action <> 0 .
ev_rc = lv_user_action .
ENDIF .IF ev_rc <> 0 .
RAISE download_error .
ENDIF .rv_filepath = lv_fullpath .*Download web object
DATA : lv_destination TYPE rlgrap \- filename .
lv_destination = rv_filepath .
CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTING
key = ls_key
destination = lv_destinationIMPORTING
rc = ev_rc
CHANGING
temp = lv_destination .
IF ev_rc <> 0 .
RAISE download_error .
ENDIF .
ENDMETHOD .---
执行效果如下:
-Tab Zhu 晚安 努力 2020
**不念过** **去**
**END**
**不畏将来**
**SAP ABAP TAB**
微信号 : TAB_JXZHU
后台回复'ABAP'免费领取学习资料
长按二维码关注我们