当前位置:网站首页>SAP SALV14 后台输出SALV数据可直接保存文件,发送Email(带排序、超链接、筛选格式)
SAP SALV14 后台输出SALV数据可直接保存文件,发送Email(带排序、超链接、筛选格式)
2022-04-23 06:25:00 【rogerix4】
1. 代码
- 处理数据均通过SALV对获取
DATA: lr_table TYPE REF TO cl_salv_table.
DATA: lt_data TYPE REF TO data.
DATA: r_xstring TYPE xstring.
DATA binary_tab TYPE solix_tab.
DATA l_length TYPE i.
DATA: ls_layout TYPE lvc_s_layo.
SELECT *
FROM sflight
INTO TABLE @DATA(lt_sflight)
UP TO 50 ROWS.
lt_data = REF #( lt_sflight ).
ASSIGN lt_data->* TO FIELD-SYMBOL(<fs_tab>).
TRY.
cl_salv_table=>factory(
EXPORTING
list_display = abap_false
IMPORTING
r_salv_table = lr_table
CHANGING
t_table = <fs_tab> ).
"field cat
DATA(lt_fcat) = cl_salv_controller_metadata=>get_lvc_fieldcatalog(
r_columns = lr_table->get_columns( )
r_aggregations = lr_table->get_aggregations( ) ).
"layout
cl_salv_controller_metadata=>get_lvc_layout(
EXPORTING
r_columns = lr_table->get_columns( )
r_aggregations = lr_table->get_aggregations( )
CHANGING s_layout = ls_layout ).
"sort
DATA(lt_sort) = cl_salv_controller_metadata=>get_lvc_sort(
r_sorts = lr_table->get_sorts( ) ).
"filter
DATA(lt_filter) = cl_salv_controller_metadata=>get_lvc_filter(
r_filters = lr_table->get_filters( ) ).
"hyperlinks
DATA(lo_functional_settings) = lr_table->get_functional_settings( ).
DATA(lt_hyperlinks) = cl_salv_controller_metadata=>get_hyperlinks(
r_hyperlinks = lo_functional_settings->get_hyperlinks( ) ).
CATCH cx_salv_msg.
RETURN.
ENDTRY.
cl_salv_bs_lex=>export_from_result_data_table(
EXPORTING
is_format = if_salv_bs_lex_format=>mc_format_xlsx
ir_result_data_table = cl_salv_ex_util=>factory_result_data_table(
r_data = lt_data
s_layout = ls_layout
t_fieldcatalog = lt_fcat
t_sort = lt_sort
t_filter = lt_filter
t_hyperlinks = lt_hyperlinks )
IMPORTING
er_result_file = r_xstring ).
"r_xstring可直接发送Email或者Open Dataset写入到服务器或者通过FTP传输
"方式一:
*CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
* EXPORTING
* buffer = r_xstring
* IMPORTING
* output_length = l_length
* TABLES
* binary_tab = binary_tab.
"方式2:
CALL METHOD cl_bcs_convert=>xstring_to_solix
EXPORTING
iv_xstring = r_xstring
RECEIVING
et_solix = binary_tab.
l_length = xstrlen( r_xstring ).
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
bin_filesize = l_length
filename = `C:\Users\xxxx\Desktop\test.xlsx`
filetype = 'BIN'
CHANGING
data_tab = binary_tab
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
2. 效果
- 在桌面生成一个Excel文件
版权声明
本文为[rogerix4]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_30797051/article/details/123899697
边栏推荐
猜你喜欢
随机推荐
MVCC(多版本并发控制)
游戏辅助脚本开发之旅
莫比乌斯反演
超级宝典&编程指南(红蓝宝书)-读书笔记
What are the total number of all courses of Mr. Tang Xiaoyang, who is very popular in CSDN (question mark)
数据分析入门 | kaggle泰坦尼克任务(四)—>数据清洗及特征处理
关于素数的不到100个秘密
简单易懂的子集dp
Mysql 数据库从设计上的优化
Methods of database query optimization
2022.3.14 阿里笔试
每日一题 | 曾被反转链表支配的恐惧
SAP PI/PO rfc2RESTful 发布rfc接口为RESTful示例(Proxy间接法)
Mysql持久性的实现
[LNOI2014]LCA——树链剖分——多点LCA深度和问题
12.约束
[Ted series] how to get along with inner critics?
页面实时显示当前时间
11. Table and library management
Pycharm