mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 13:46:17 +08:00
Handle exceptions in demo programs (#962)
* Handle exceptions in demo programs Fix #955 Co-authored-by: sandraros <sandra.rossi@gmail.com> Co-authored-by: Lars Hvam <larshp@hotmail.com> Co-authored-by: Abo <andrea@borgia.bo.it>
This commit is contained in:
parent
4662dc85f4
commit
165a580b34
|
@ -215,7 +215,7 @@ CLASS lcl_app IMPLEMENTATION.
|
||||||
lo_excel->set_active_sheet_index_by_name( 'Sheet1' ).
|
lo_excel->set_active_sheet_index_by_name( 'Sheet1' ).
|
||||||
|
|
||||||
*** Create output
|
*** Create output
|
||||||
lcl_output=>output( lo_excel ).
|
lcl_output=>output( cl_excel = lo_excel iv_info_message = abap_false ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ FORM generate_file.
|
||||||
|
|
||||||
|
|
||||||
*** Create output
|
*** Create output
|
||||||
lcl_output=>output( lo_excel ).
|
lcl_output=>output( cl_excel = lo_excel iv_info_message = abap_false ).
|
||||||
|
|
||||||
CATCH cx_root INTO lo_root.
|
CATCH cx_root INTO lo_root.
|
||||||
MESSAGE lo_root TYPE 'I' DISPLAY LIKE 'E'.
|
MESSAGE lo_root TYPE 'I' DISPLAY LIKE 'E'.
|
||||||
|
|
|
@ -6,13 +6,16 @@ CLASS lcl_output DEFINITION CREATE PRIVATE.
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
output IMPORTING cl_excel TYPE REF TO zcl_excel
|
output IMPORTING cl_excel TYPE REF TO zcl_excel
|
||||||
iv_writerclass_name TYPE clike OPTIONAL
|
iv_writerclass_name TYPE clike OPTIONAL
|
||||||
|
iv_info_message TYPE abap_bool DEFAULT abap_true
|
||||||
RAISING zcx_excel,
|
RAISING zcx_excel,
|
||||||
f4_path RETURNING VALUE(selected_folder) TYPE string,
|
f4_path RETURNING VALUE(selected_folder) TYPE string,
|
||||||
parametertexts.
|
parametertexts.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS:
|
METHODS:
|
||||||
download_frontend,
|
download_frontend
|
||||||
|
RAISING
|
||||||
|
zcx_excel,
|
||||||
download_backend,
|
download_backend,
|
||||||
display_online,
|
display_online,
|
||||||
send_email.
|
send_email.
|
||||||
|
@ -75,42 +78,54 @@ CLASS lcl_output IMPLEMENTATION.
|
||||||
METHOD output.
|
METHOD output.
|
||||||
|
|
||||||
DATA: cl_output TYPE REF TO lcl_output,
|
DATA: cl_output TYPE REF TO lcl_output,
|
||||||
cl_writer TYPE REF TO zif_excel_writer.
|
cl_writer TYPE REF TO zif_excel_writer,
|
||||||
|
cl_error TYPE REF TO zcx_excel.
|
||||||
|
|
||||||
IF iv_writerclass_name IS INITIAL.
|
TRY.
|
||||||
CREATE OBJECT cl_output.
|
|
||||||
CREATE OBJECT cl_writer TYPE zcl_excel_writer_2007.
|
|
||||||
ELSE.
|
|
||||||
CREATE OBJECT cl_output.
|
|
||||||
CREATE OBJECT cl_writer TYPE (iv_writerclass_name).
|
|
||||||
ENDIF.
|
|
||||||
cl_output->xdata = cl_writer->write_file( cl_excel ).
|
|
||||||
|
|
||||||
cl_output->t_rawdata = cl_bcs_convert=>xstring_to_solix( iv_xstring = cl_output->xdata ).
|
IF iv_writerclass_name IS INITIAL.
|
||||||
cl_output->bytecount = xstrlen( cl_output->xdata ).
|
CREATE OBJECT cl_output.
|
||||||
|
CREATE OBJECT cl_writer TYPE zcl_excel_writer_2007.
|
||||||
CASE 'X'.
|
|
||||||
WHEN rb_down.
|
|
||||||
IF sy-batch IS INITIAL.
|
|
||||||
cl_output->download_frontend( ).
|
|
||||||
ELSE.
|
ELSE.
|
||||||
MESSAGE e802(zabap2xlsx).
|
CREATE OBJECT cl_output.
|
||||||
|
CREATE OBJECT cl_writer TYPE (iv_writerclass_name).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
cl_output->xdata = cl_writer->write_file( cl_excel ).
|
||||||
|
|
||||||
WHEN rb_back.
|
cl_output->t_rawdata = cl_bcs_convert=>xstring_to_solix( iv_xstring = cl_output->xdata ).
|
||||||
cl_output->download_backend( ).
|
cl_output->bytecount = xstrlen( cl_output->xdata ).
|
||||||
|
|
||||||
WHEN rb_show.
|
CASE 'X'.
|
||||||
IF sy-batch IS INITIAL.
|
WHEN rb_down.
|
||||||
cl_output->display_online( ).
|
IF sy-batch IS INITIAL.
|
||||||
|
cl_output->download_frontend( ).
|
||||||
|
ELSE.
|
||||||
|
MESSAGE e802(zabap2xlsx).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
WHEN rb_back.
|
||||||
|
cl_output->download_backend( ).
|
||||||
|
|
||||||
|
WHEN rb_show.
|
||||||
|
IF sy-batch IS INITIAL.
|
||||||
|
cl_output->display_online( ).
|
||||||
|
ELSE.
|
||||||
|
MESSAGE e803(zabap2xlsx).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
WHEN rb_send.
|
||||||
|
cl_output->send_email( ).
|
||||||
|
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
CATCH zcx_excel INTO cl_error.
|
||||||
|
IF iv_info_message = abap_true.
|
||||||
|
MESSAGE cl_error TYPE 'I' DISPLAY LIKE 'E'.
|
||||||
ELSE.
|
ELSE.
|
||||||
MESSAGE e803(zabap2xlsx).
|
RAISE EXCEPTION cl_error.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
WHEN rb_send.
|
|
||||||
cl_output->send_email( ).
|
|
||||||
|
|
||||||
ENDCASE.
|
|
||||||
ENDMETHOD. "output
|
ENDMETHOD. "output
|
||||||
|
|
||||||
METHOD f4_path.
|
METHOD f4_path.
|
||||||
|
@ -208,7 +223,8 @@ CLASS lcl_output IMPLEMENTATION.
|
||||||
ENDMETHOD. "parametertexts
|
ENDMETHOD. "parametertexts
|
||||||
|
|
||||||
METHOD: download_frontend.
|
METHOD: download_frontend.
|
||||||
DATA: filename TYPE string.
|
DATA: filename TYPE string,
|
||||||
|
message TYPE string.
|
||||||
* I don't like p_path here - but for this include it's ok
|
* I don't like p_path here - but for this include it's ok
|
||||||
filename = p_path.
|
filename = p_path.
|
||||||
* Add trailing "\" or "/"
|
* Add trailing "\" or "/"
|
||||||
|
@ -223,7 +239,13 @@ CLASS lcl_output IMPLEMENTATION.
|
||||||
cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = bytecount
|
cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = bytecount
|
||||||
filename = filename
|
filename = filename
|
||||||
filetype = 'BIN'
|
filetype = 'BIN'
|
||||||
CHANGING data_tab = t_rawdata ).
|
CHANGING data_tab = t_rawdata
|
||||||
|
EXCEPTIONS OTHERS = 1 ).
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
|
||||||
|
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO message.
|
||||||
|
RAISE EXCEPTION TYPE zcx_excel EXPORTING error = message.
|
||||||
|
ENDIF.
|
||||||
ENDMETHOD. "download_frontend
|
ENDMETHOD. "download_frontend
|
||||||
|
|
||||||
METHOD download_backend.
|
METHOD download_backend.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user