- CLASS zini_cl_export_2_xls DEFINITION.
- PUBLIC SECTION.
- DATA: lo_table TYPE REF TO cl_salv_table.
- METHODS: data_load CHANGING t_any TYPE ANY TABLE,
- data_export IMPORTING i_file TYPE string OPTIONAL.
- PRIVATE SECTION.
- METHODS: ejemplo.
- ENDCLASS.
- CLASS zini_cl_export_2_xls IMPLEMENTATION.
- METHOD data_load.
- TRY.
- cl_salv_table=>factory(
- IMPORTING
- r_salv_table = lo_table
- CHANGING
- t_table = t_any
- ).
- CATCH cx_salv_msg.
- ENDTRY.
- ENDMETHOD.
- METHOD data_export.
- DATA: lt_bin TYPE STANDARD TABLE OF solix,
- lv_size TYPE i.
- DATA: lv_file_table TYPE filetable,
- lv_rc TYPE i.
- DATA(lv_xml) = lo_table->to_xml( xml_type = if_salv_bs_xml=>c_type_xlsx ).
- "To convert XSTRING to Binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_xml
- IMPORTING
- output_length = lv_size
- TABLES
- binary_tab = lt_bin.
- DATA(filename) = i_file.
- DATA(path) = CONV string( '' ).
- DATA(l01) = CONV string( '' ).
- IF i_file IS INITIAL.
- CALL METHOD cl_gui_frontend_services=>file_save_dialog
- EXPORTING
- window_title = 'Descargar XLS'
- default_extension = 'XLS'
- CHANGING
- filename = l01
- path = path
- fullpath = filename
- EXCEPTIONS
- OTHERS = 5.
- IF sy-subrc NE 0.
- CLEAR filename.
- ENDIF.
- ENDIF.
- CHECK filename IS NOT INITIAL.
- CALL METHOD cl_gui_frontend_services=>gui_download
- EXPORTING
- bin_filesize = lv_size
- filename = filename
- filetype = 'BIN'
- * IMPORTING
- * filelength = me->filesize
- CHANGING
- data_tab = lt_bin
- 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.
- ENDMETHOD.
- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- *--[ Ejemplo de uso
- METHOD ejemplo.
- SELECT * FROM t000 INTO TABLE @DATA(lt_t000).
- DATA(cl_xls) = NEW zini_cl_export_2_xls( ).
- cl_xls->data_load( CHANGING t_any = lt_t000 ).
- cl_xls->data_export( ).
- ENDMETHOD.
- ENDCLASS.
Última modificación de la página el 03 May 2026 a las 07h12
Powered by
PmWiki