*&---------------------------------------------------------------------*
*& Report YEXCLE_DOWNLOAD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT yexcle_download.
START-OF-SELECTION.
"获取数据
SELECT * FROM vbap INTO TABLE @DATA(lt_vbap) UP TO 1000 ROWS.
"构造列字段
DATA ct_fieldcat TYPE lvc_t_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'VBAP'
CHANGING
ct_fieldcat = ct_fieldcat.
"获取cl_salv_ex_result_data_table类对象
DATA:lo_table TYPE REF TO data.
DATA:lo_result_data_table TYPE REF TO cl_salv_ex_result_data_table.
DATA:lv_version TYPE string.
DATA:lv_flavour TYPE string.
GET REFERENCE OF lt_vbap INTO lo_table.
lo_result_data_table = cl_salv_ex_util=>factory_result_data_table(
r_data = lo_table
t_fieldcatalog = ct_fieldcat ).
"获取xml版本信息
lv_version = cl_salv_bs_a_xml_base=>get_version( ).
lv_flavour = if_salv_bs_c_tt=>c_tt_xml_flavour_export.
"转换xstring
DATA:lv_xstr TYPE xstring.
cl_salv_bs_tt_util=>if_salv_bs_tt_util~transform(
EXPORTING
xml_version = lv_version
r_result_data = lo_result_data_table
xml_type = if_salv_bs_xml=>c_type_xlsx " XML Type as SALV Constant
xml_flavour = lv_flavour
gui_type = if_salv_bs_xml=>c_gui_type_gui " Constant
IMPORTING
xml = lv_xstr
).
"下载
DATA:lv_extension TYPE string VALUE 'XLSX'.
DATA:lv_directory TYPE string VALUE 'D:/'.
DATA:lv_filename TYPE string VALUE 'test'.
DATA:lv_mask TYPE string VALUE 'Excel (*.XLSX)|*.XLSX'.
CALL FUNCTION 'XML_EXPORT_DIALOG'
EXPORTING
i_xml = lv_xstr
i_default_extension = lv_extension
i_initial_directory = lv_directory
i_default_file_name = lv_filename
i_mask = lv_mask
* I_APPLICATION =
* EXCEPTIONS
* APPLICATION_NOT_EXECUTABLE = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
06-01
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交