当前位置:网站首页>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
边栏推荐
猜你喜欢

保洁阿姨都能看懂的中国剩余定理和扩展中国剩余定理

配置npm

‘npm‘不是内部或外部命令,也不是可运行的程序 或批处理文件

Visualization Road (IX) detailed explanation of arrow class
![[Educational Codeforces Round 80] 解题报告](/img/54/2fd298ddce3cd3e28a8fe42b3b8a42.png)
[Educational Codeforces Round 80] 解题报告

Discussion on arrow function of ES6

菜菜的刷题日记 | 蓝桥杯 — 十六进制转八进制(纯手撕版)附进制转换笔记

redis连接出错 ERR AUTH <password> called without any password configured for the default user.

keytool: command not found

如何SQL 语句UNION实现当一个表中的一列内容为空时则取另一个表的另一列
随机推荐
菜菜的并发编程笔记 |(五)线程安全问题以及Lock解决方案
两个线程交互打印奇偶数字
10.更新操作
直观理解熵
王者荣耀-unity学习之旅
11. Table and library management
菜菜的刷题日记 | 238.除自身以外数组的乘积
On BFC (block formatting context)
数论之拓展欧几里得
[CF 1425D]Danger of Mad Snakes(组合计数+容斥)
h5本地存储数据sessionStorage、localStorage
ESP32学习-向工程项目添加文件夹
积性函数前缀和——杜教筛
H5 case development
学习笔记5-梯度爆炸和梯度消失(K折交叉验证)
13.用户和权限管理
Two threads print odd and even numbers interactively
Django使用mysql数据库报错解决
Implementation of MySQL persistence
SAP PI/PO rfc2RESTful 发布rfc接口为RESTful示例(Proxy间接法)