在webdynpro中的excel模板下载与传统abap开发中的不同之处在于,可以把excel模板以MIME形式直接保存在webdynpro中,而不是保存在OAOR或SMW0中。
下面介绍一下实现的过程。
1,创建Webdynpro组件
2,导入EXCEL模板
右键点出“创建”的上下文菜单,在MIMIE对象中选择导入一个excel模板
模板名字是Template.xlsx
3,创建模板下载按钮
在VIEW中创建一个模板下载的按钮,也就是插入一个类型为BUTTON的Element,
在按钮属性(Property)中输入按钮文本,
然后就这个样子
创建onAction的方法,输入Action名字和描述后,再点击编写代码的按钮跳转到方法编辑器,
一个空的method
4,模板下载代码
在method中加入代码,
完整代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
DATA : lr_component TYPE REF TO if_wd_component. DATA : lr_component_info TYPE REF TO if_wd_rr_component. DATA : lr_mr_api TYPE REF TO if_mr_api. DATA : lv_wd_name TYPE string. DATA : lv_url TYPE string. DATA : lv_xstr TYPE xstring. * 取得组件相关对象 lr_component = wd_comp_controller->wd_get_api( ). lr_component_info = lr_component->get_component_info( ). * 取得当前组件的名字 lv_wd_name = lr_component_info->get_name( ). * 取得excel模板的URL CALL METHOD cl_wd_utilities=>construct_wd_url( EXPORTING application_name = lv_wd_name IMPORTING out_local_url = lv_url ). lv_url = lv_url && '/Template.xlsx'. * 取得excel模板中的内容,保存为xstring格式 lr_mr_api = cl_mime_repository_api=>get_api( ). lr_mr_api->get( EXPORTING i_url = lv_url i_check_authority = '' IMPORTING e_content = lv_xstr ). * 将excel打开 cl_wd_runtime_services=>attach_file_to_response( EXPORTING i_filename = 'Template.xlsx' i_content = lv_xstr i_mime_type = 'xlsx' i_in_new_window = abap_false i_inplace = abap_false ). |
5,测试
创建webdynpro应用,测试。
点击模板下载按钮后,打开excel模板。
以上。
发表评论