diff --git a/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk b/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk
new file mode 100644
index 0000000..f8ecd9c
--- /dev/null
+++ b/ZA2X/PROG/ZABAP2XLSX_DEMO_SHOW.slnk
@@ -0,0 +1,262 @@
+
+
+ *&---------------------------------------------------------------------*
+*& Report ZABAP2XLSX_DEMO_SHOW
+*&---------------------------------------------------------------------*
+REPORT zabap2xlsx_demo_like_se83.
+
+
+*----------------------------------------------------------------------*
+* CLASS lcl_perform DEFINITION
+*----------------------------------------------------------------------*
+CLASS lcl_perform DEFINITION CREATE PRIVATE.
+ PUBLIC SECTION.
+ CLASS-METHODS: setup_objects,
+ collect_reports,
+
+ handle_nav FOR EVENT double_click OF cl_gui_alv_grid
+ IMPORTING e_row.
+
+ PRIVATE SECTION.
+ TYPES: BEGIN OF ty_reports,
+ progname TYPE reposrc-progname,
+ sort TYPE reposrc-progname,
+ filename TYPE string,
+ END OF ty_reports.
+
+ CLASS-DATA:
+ lo_grid TYPE REF TO cl_gui_alv_grid,
+ lo_text TYPE REF TO cl_gui_textedit,
+ cl_document TYPE REF TO i_oi_document_proxy,
+
+ t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY.
+ CLASS-DATA:error TYPE REF TO i_oi_error,
+ t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
+ cl_control TYPE REF TO i_oi_container_control. "Office Dokument
+
+ENDCLASS. "lcl_perform DEFINITION
+
+
+START-OF-SELECTION.
+ lcl_perform=>collect_reports( ).
+ lcl_perform=>setup_objects( ).
+
+END-OF-SELECTION.
+
+ WRITE '.'. " Force output
+
+
+*----------------------------------------------------------------------*
+* CLASS lcl_perform IMPLEMENTATION
+*----------------------------------------------------------------------*
+CLASS lcl_perform IMPLEMENTATION.
+ METHOD setup_objects.
+ DATA: lo_split TYPE REF TO cl_gui_splitter_container,
+ lo_container TYPE REF TO cl_gui_container.
+
+ DATA: it_fieldcat TYPE lvc_t_fcat,
+ is_layout TYPE lvc_s_layo,
+ is_variant TYPE disvariant.
+ FIELD-SYMBOLS: <fc> LIKE LINE OF it_fieldcat.
+
+
+ CREATE OBJECT lo_split
+ EXPORTING
+ parent = cl_gui_container=>screen0
+ rows = 1
+ columns = 3
+ no_autodef_progid_dynnr = 'X'.
+ lo_split->set_column_width( EXPORTING id = 1
+ width = 20 ).
+ lo_split->set_column_width( EXPORTING id = 2
+ width = 40 ).
+
+* Left: List of reports
+ lo_container = lo_split->get_container( row = 1
+ column = 1 ).
+
+ CREATE OBJECT lo_grid
+ EXPORTING
+ i_parent = lo_container.
+ SET HANDLER lcl_perform=>handle_nav FOR lo_grid.
+
+ is_variant-report = sy-repid.
+ is_variant-handle = '0001'.
+
+ is_layout-cwidth_opt = 'X'.
+
+ APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>.
+ <fc>-fieldname = 'PROGNAME'.
+ <fc>-tabname = 'REPOSRC'.
+
+ APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>.
+ <fc>-fieldname = 'SORT'.
+ <fc>-ref_field = 'PROGNAME'.
+ <fc>-ref_table = 'REPOSRC'.
+
+
+ lo_grid->set_table_for_first_display( EXPORTING
+ is_variant = is_variant
+ i_save = 'A'
+ is_layout = is_layout
+ CHANGING
+ it_outtab = t_reports
+ it_fieldcatalog = it_fieldcat
+ EXCEPTIONS
+ invalid_parameter_combination = 1
+ program_error = 2
+ too_many_lines = 3
+ OTHERS = 4 ).
+
+* Middle: Text with coding
+ lo_container = lo_split->get_container( row = 1
+ column = 2 ).
+ CREATE OBJECT lo_text
+ EXPORTING
+ parent = lo_container.
+ lo_text->set_readonly_mode( cl_gui_textedit=>true ).
+ lo_text->set_font_fixed( ).
+
+
+
+* right: DemoOutput
+ lo_container = lo_split->get_container( row = 1
+ column = 3 ).
+
+ c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control
+ error = error ).
+ APPEND error TO t_errors.
+
+ cl_control->init_control( EXPORTING inplace_enabled = 'X'
+ no_flush = 'X'
+ r3_application_name = 'Demo Document Container'
+ parent = lo_container
+ IMPORTING error = error
+ EXCEPTIONS OTHERS = 2 ).
+ APPEND error TO t_errors.
+
+ cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL
+ no_flush = ' '
+ IMPORTING document_proxy = cl_document
+ error = error ).
+ APPEND error TO t_errors.
+* Errorhandling should be inserted here
+
+
+ ENDMETHOD. "setup_objects
+
+ "collect_reports
+ METHOD collect_reports.
+ FIELD-SYMBOLS:<report> LIKE LINE OF t_reports.
+ DATA: t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY.
+
+* Get all demoreports
+ SELECT progname
+ INTO CORRESPONDING FIELDS OF TABLE t_reports
+ FROM reposrc
+ WHERE progname LIKE 'ZDEMO_EXCEL%'
+ AND progname <> sy-repid
+ AND subc = '1'.
+
+ LOOP AT t_reports ASSIGNING <report>.
+
+* Check if already switched to new outputoptions
+ READ REPORT <report>-progname INTO t_source.
+ IF sy-subrc = 0.
+ FIND 'INCLUDE zdemo_excel_outputopt_incl.' IN TABLE t_source IGNORING CASE.
+ ENDIF.
+ IF sy-subrc <> 0.
+ DELETE t_reports.
+ CONTINUE.
+ ENDIF.
+
+
+* Build half-numeric sort
+ <report>-sort = <report>-progname.
+ REPLACE REGEX '(ZDEMO_EXCEL)(\d\d)\s*$' IN <report>-sort WITH '$1\0$2'. " REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE
+
+ REPLACE REGEX '(ZDEMO_EXCEL)(\d)\s*$' IN <report>-sort WITH '$1\0\0$2'.
+ ENDLOOP.
+ SORT t_reports BY sort progname.
+
+ ENDMETHOD. "collect_reports
+
+ METHOD handle_nav.
+ CONSTANTS: filename TYPE text80 VALUE 'ZABAP2XLSX_DEMO_SHOW.xlsx'.
+ DATA: wa_report LIKE LINE OF t_reports,
+ t_source TYPE STANDARD TABLE OF text255,
+ t_rawdata TYPE solix_tab,
+ wa_rawdata LIKE LINE OF t_rawdata,
+ bytecount TYPE i,
+ length TYPE i,
+ add_selopt TYPE flag.
+
+
+ READ TABLE t_reports INTO wa_report INDEX e_row-index.
+ CHECK sy-subrc = 0.
+
+* Set new text into middle frame
+ READ REPORT wa_report-progname INTO t_source.
+ lo_text->set_text_as_r3table( EXPORTING table = t_source ).
+
+
+* Unload old xls-file
+ cl_document->close_document( ).
+
+* Get the demo
+* If additional parameters found on selection screen, start via selection screen , otherwise start w/o
+ CLEAR add_selopt.
+ FIND 'PARAMETERS' IN TABLE t_source.
+ IF sy-subrc = 0.
+ add_selopt = 'X'.
+ ELSE.
+ FIND 'SELECT-OPTIONS' IN TABLE t_source.
+ IF sy-subrc = 0.
+ add_selopt = 'X'.
+ ENDIF.
+ ENDIF.
+ IF add_selopt IS INITIAL.
+ SUBMIT (wa_report-progname) AND RETURN
+ WITH p_backfn = filename
+ WITH rb_back = 'X'
+ WITH rb_down = ' '
+ WITH rb_send = ' '
+ WITH rb_show = ' '.
+ ELSE.
+ SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN
+ WITH p_backfn = filename
+ WITH rb_back = 'X'
+ WITH rb_down = ' '
+ WITH rb_send = ' '
+ WITH rb_show = ' '.
+ ENDIF.
+
+ OPEN DATASET filename FOR INPUT IN BINARY MODE.
+ IF sy-subrc = 0.
+ DO.
+ CLEAR wa_rawdata.
+ READ DATASET filename INTO wa_rawdata LENGTH length.
+ IF sy-subrc <> 0.
+ APPEND wa_rawdata TO t_rawdata.
+ ADD length TO bytecount.
+ EXIT.
+ ENDIF.
+ APPEND wa_rawdata TO t_rawdata.
+ ADD length TO bytecount.
+ ENDDO.
+ CLOSE DATASET filename.
+ ENDIF.
+
+ cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL
+ no_flush = ' '
+ IMPORTING document_proxy = cl_document
+ error = error ).
+
+ cl_document->open_document_from_table( EXPORTING document_size = bytecount
+ document_table = t_rawdata
+ open_inplace = 'X' ).
+
+ ENDMETHOD. "handle_nav
+
+ENDCLASS. "lcl_perform IMPLEMENTATION
+
diff --git a/ZA2X/PROG/ZDEMO_EXCEL1.slnk b/ZA2X/PROG/ZDEMO_EXCEL1.slnk
index f06ee3d..d195cf1 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL1.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL1.slnk
@@ -1,9 +1,9 @@
-
-
+
+
-
+
*&---------------------------------------------------------------------*
@@ -18,48 +18,21 @@ REPORT zdemo_excel1.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
-
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
- lo_worksheet->set_title( ip_title = 'Sheet1' ).
+* lo_worksheet->set_title( ip_title = 'Sheet1' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
@@ -69,24 +42,8 @@ START-OF-SELECTION.
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
column_dimension->set_width( ip_width = 11 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL10.slnk b/ZA2X/PROG/ZDEMO_EXCEL10.slnk
index 017fca5..89b82da 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL10.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL10.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
@@ -26,38 +25,12 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_iconset TYPE zexcel_conditional_iconset.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
-
FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog.
" Creates active sheet
@@ -122,24 +95,7 @@ START-OF-SELECTION.
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider
column_dimension->set_width( ip_width = 13 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL11.slnk b/ZA2X/PROG/ZDEMO_EXCEL11.slnk
index 7ca3a02..01d98d5 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL11.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL11.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -46,13 +46,9 @@ FIELD-SYMBOLS: <relationship_address> LIKE LINE OF relationship_addresses.
DATA: lt_download TYPE TABLE OF zexcel_s_org_rel.
FIELD-SYMBOLS: <download> LIKE LINE OF lt_download.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
PARAMETERS: md TYPE flag RADIOBUTTON GROUP act.
@@ -70,27 +66,11 @@ PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011',
partner TYPE bu_partner DEFAULT '191'.
SELECTION-SCREEN END OF BLOCK b.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-
INITIALIZATION.
a = 'Select by master data'.
b = 'Select by relationship'.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
IF md = abap_true.
" Read all Companies by Master Data
central_search-partnercategory = partnerc.
@@ -228,7 +208,6 @@ START-OF-SELECTION.
ENDLOOP.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
@@ -450,24 +429,7 @@ START-OF-SELECTION.
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ).
* column_dimension->set_width( ip_width = 40 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL12.slnk b/ZA2X/PROG/ZDEMO_EXCEL12.slnk
index fcadc8e..ee3b0b5 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL12.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL12.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
@@ -30,29 +29,11 @@ DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
-CONSTANTS: lv_default_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
+CONSTANTS: gc_save_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -108,24 +89,6 @@ START-OF-SELECTION.
row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ).
row_dimension->set_outline_level( ip_outline_level = 2 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( io_excel = lo_excel ).
-
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL13.slnk b/ZA2X/PROG/ZDEMO_EXCEL13.slnk
index 0ee4ea7..5a12686 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL13.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL13.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,43 +17,17 @@
REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_bold_border_guid TYPE zexcel_cell_style,
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '13_MergedCells.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
+CONSTANTS: gc_save_file_name TYPE string VALUE '13_MergedCells.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -112,24 +86,7 @@ START-OF-SELECTION.
lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'E' ip_column_end = 'F' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL14.slnk b/ZA2X/PROG/ZDEMO_EXCEL14.slnk
index 3f20316..50db21d 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL14.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL14.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel14.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_center TYPE REF TO zcl_excel_style,
lo_style_right TYPE REF TO zcl_excel_style,
@@ -46,37 +45,12 @@ DATA: lo_excel TYPE REF TO zcl_excel,
DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '14_Alignment.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -137,7 +111,7 @@ START-OF-SELECTION.
lo_style_rotated = lo_excel->add_new_style( ).
lo_style_rotated->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center.
lo_style_rotated->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center.
- lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75°
+ lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75°
lv_style_rotated_guid = lo_style_rotated->get_guid( ).
@@ -171,27 +145,11 @@ START-OF-SELECTION.
" Rotated
lo_worksheet->set_cell( ip_row = 10 ip_column = 'D'
- ip_value = 'This is a centered text rotated by -75°'
+ ip_value = 'This is a centered text rotated by -75°'
ip_style = lv_style_rotated_guid ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL16.slnk b/ZA2X/PROG/ZDEMO_EXCEL16.slnk
index b6a9a2b..a556a55 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL16.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL16.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,46 +17,22 @@
REPORT zdemo_excel16.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_drawing TYPE REF TO zcl_excel_drawing.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
DATA: ls_io TYPE skwf_io.
-CONSTANTS: lv_default_file_name TYPE string VALUE '16_Drawings.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '16_Drawings.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir,
- p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ
+PARAMETERS: p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ
p_class TYPE sdok_class DEFAULT 'M_IMAGE_P',
pobjtype TYPE skwf_ioty DEFAULT 'P'.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -162,24 +138,8 @@ START-OF-SELECTION.
ENDIF.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL17.slnk b/ZA2X/PROG/ZDEMO_EXCEL17.slnk
index 18570a8..c4d4d00 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL17.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL17.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -18,7 +18,6 @@
REPORT zdemo_excel17.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_protection TYPE REF TO zcl_excel_style,
lv_style_protection_guid TYPE zexcel_cell_style,
@@ -26,38 +25,13 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lv_style TYPE zexcel_cell_style.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '17_SheetProtection.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '17_SheetProtection.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir,
- p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT 'secret'.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
+PARAMETERS: p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT 'secret'.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -84,24 +58,9 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ).
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'This cell is locked as all the others empty cell' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL18.slnk b/ZA2X/PROG/ZDEMO_EXCEL18.slnk
index eed571e..47e13cf 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL18.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL18.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,41 +17,16 @@
REPORT zdemo_excel18.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_protection_guid TYPE zexcel_cell_style.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '18_BookProtection.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '18_BookProtection.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -63,24 +38,9 @@ START-OF-SELECTION.
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL19.slnk b/ZA2X/PROG/ZDEMO_EXCEL19.slnk
index 3cd1289..9576ebf 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL19.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL19.slnk
@@ -1,8 +1,12 @@
-
-
+
+
+
+
+
+
-
+
@@ -20,41 +24,17 @@ REPORT zdemo_excel19.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'.
+PARAMETERS: p_noout TYPE xfeld DEFAULT abap_true.
-PARAMETERS: p_path TYPE zexcel_export_dir,
- p_noout TYPE xfeld DEFAULT abap_true.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" First Worksheet
@@ -83,24 +63,8 @@ START-OF-SELECTION.
active_sheet_index = lo_excel->get_active_sheet_index( ).
WRITE: 'Sheet Index after: ', active_sheet_index.
ENDIF.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL2.slnk b/ZA2X/PROG/ZDEMO_EXCEL2.slnk
index da913b1..3b5b8a4 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL2.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL2.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel2.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_bold TYPE REF TO zcl_excel_style,
lo_style_underline TYPE REF TO zcl_excel_style,
@@ -43,28 +42,13 @@ DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
-CONSTANTS: lv_default_file_name TYPE string VALUE '02_Styles.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -147,24 +131,26 @@ START-OF-SELECTION.
" https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell
lo_worksheet->set_cell_style( ip_column = 'E' ip_row = 6 ip_style = lv_style_filled_green_guid ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
+* CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
+* lv_file = lo_excel_writer->write_file( lo_excel ).
+*
+* " Convert to binary
+* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
+* EXPORTING
+* buffer = lv_file
+* IMPORTING
+* output_length = lv_bytecount
+* TABLES
+* binary_tab = lt_file_tab.
+** " This method is only available on AS ABAP > 6.40
+** lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
+** lv_bytecount = xstrlen( lv_file ).
+*
+* " Save the file
+* cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
+* filename = lv_full_path
+* filetype = 'BIN'
+* CHANGING data_tab = lt_file_tab ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL21.slnk b/ZA2X/PROG/ZDEMO_EXCEL21.slnk
index 4563643..6a3568b 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL21.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL21.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -23,7 +23,6 @@ TYPES:
END OF t_color_style.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_filled TYPE REF TO zcl_excel_style.
@@ -52,37 +51,12 @@ DATA: row TYPE i,
column TYPE zexcel_cell_column VALUE 1,
col_str TYPE zexcel_cell_column_alpha.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '21_BackgroundColorPicker.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '21_BackgroundColorPicker.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -151,24 +125,8 @@ START-OF-SELECTION.
ADD 1 TO row.
ENDDO.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL22.slnk b/ZA2X/PROG/ZDEMO_EXCEL22.slnk
index 303e263..1aa1774 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL22.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL22.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel22.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style TYPE REF TO zcl_excel_style,
lo_style_date TYPE REF TO zcl_excel_style,
@@ -28,41 +27,18 @@ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
ls_table_settings_out TYPE zexcel_s_table_settings.
-DATA: lv_file TYPE xstring,
- lv_style_guid TYPE zexcel_cell_style,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+DATA: lv_style_guid TYPE zexcel_cell_style.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c,
- lv_row TYPE char10.
+DATA: lv_row TYPE char10.
FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog.
-CONSTANTS: lv_default_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -152,24 +128,8 @@ START-OF-SELECTION.
lo_data_validation->cell_row_to = ls_table_settings_out-bottom_right_row.
lo_data_validation->cell_column_to = ls_table_settings_out-bottom_right_column.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL23.slnk b/ZA2X/PROG/ZDEMO_EXCEL23.slnk
index 2d4fb9e..7cdd8c9 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL23.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL23.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
*&---------------------------------------------------------------------*
@@ -18,40 +18,16 @@ REPORT zdemo_excel23.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -116,24 +92,8 @@ START-OF-SELECTION.
" lo_worksheet->sheet_setup->vertical_centered = abap_true.
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( io_excel = lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL24.slnk b/ZA2X/PROG/ZDEMO_EXCEL24.slnk
index 98299f1..c8e3ee3 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL24.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL24.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
*&---------------------------------------------------------------------*
@@ -18,7 +18,6 @@ REPORT zdemo_excel24.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
@@ -33,29 +32,12 @@ DATA: lv_full_path TYPE string,
DATA: lv_value TYPE string.
-CONSTANTS: lv_default_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -102,24 +84,8 @@ START-OF-SELECTION.
lo_excel->set_active_sheet_index_by_name( 'Sheet1' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( io_excel = lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL27.slnk b/ZA2X/PROG/ZDEMO_EXCEL27.slnk
index fef02fe..d178b78 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL27.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL27.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -20,7 +20,6 @@ REPORT zdemo_excel27.
CONSTANTS: c_fish TYPE string VALUE 'Fish'.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
@@ -31,37 +30,15 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lv_style_2_guid TYPE zexcel_cell_style,
ls_cellis TYPE zexcel_conditional_cellis.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_title TYPE zexcel_sheet_title,
- lv_file_separator TYPE c.
+DATA: lv_title TYPE zexcel_sheet_title.
-CONSTANTS: lv_default_file_name TYPE string VALUE '27_ConditionalFormatting.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '27_ConditionalFormatting.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -130,24 +107,7 @@ START-OF-SELECTION.
ip_stop_row = 2 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL3.slnk b/ZA2X/PROG/ZDEMO_EXCEL3.slnk
index 0cc7de9..1298b7e 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL3.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL3.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -20,19 +20,11 @@ REPORT zdemo_excel3.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
@@ -42,30 +34,14 @@ DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation.
FIELD-SYMBOLS: <carr> LIKE LINE OF lt_carr.
CONSTANTS: c_airlines TYPE string VALUE 'Airlines'.
-CONSTANTS: lv_default_file_name TYPE string VALUE '03_iTab.xlsx'.
-PARAMETERS: p_path TYPE zexcel_export_dir,
- p_empty TYPE flag.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
+CONSTANTS: gc_save_file_name TYPE string VALUE '03_iTab.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
+PARAMETERS: p_empty TYPE flag.
START-OF-SELECTION.
-
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -117,25 +93,6 @@ START-OF-SELECTION.
lo_data_validation->cell_row = 4.
lo_data_validation->cell_column = 'C'.
- " Write to Excel 2007
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
-
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL30.slnk b/ZA2X/PROG/ZDEMO_EXCEL30.slnk
index 5b21625..6d28e9b 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL30.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL30.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,50 +17,26 @@
REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
DATA: lv_value TYPE string,
lv_count TYPE i VALUE 10,
lv_packed TYPE p LENGTH 16 DECIMALS 1 VALUE '1234567890.5'.
-CONSTANTS: lv_default_file_name TYPE string VALUE '30_CellDataTypes.xlsx',
- lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_string,
+CONSTANTS: lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_string,
lc_typekind_packed TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_packed,
lc_typekind_num TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_num,
lc_typekind_date TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_date.
-PARAMETERS: p_path TYPE zexcel_export_dir.
+CONSTANTS: gc_save_file_name TYPE string VALUE '30_CellDataTypes.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -121,24 +97,9 @@ START-OF-SELECTION.
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ).
column_dimension->set_auto_size( abap_true ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL31.slnk b/ZA2X/PROG/ZDEMO_EXCEL31.slnk
index 88853e2..8f0fc52 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL31.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL31.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,18 +17,10 @@
REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
DATA: fieldval TYPE text80,
row TYPE i,
@@ -37,29 +29,12 @@ DATA: fieldval TYPE text80,
style_column_c TYPE REF TO zcl_excel_style,
style_column_c_guid TYPE zexcel_cell_style.
-CONSTANTS: lv_default_file_name TYPE string VALUE '31_AutosizeWithDifferentFontSizes.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '31_AutosizeWithDifferentFontSizes.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
lo_worksheet = lo_excel->get_active_worksheet( ).
@@ -92,42 +67,9 @@ START-OF-SELECTION.
column_dimension = lo_worksheet->get_column_dimension( 'C' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
- lv_bytecount = XSTRLEN( lv_file ).
-* DATA: error TYPE REF TO i_oi_error,
-* t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY,
-* cl_control TYPE REF TO i_oi_container_control,"OIContainerCtrl
-* cl_document TYPE REF TO i_oi_document_proxy. "Office Dokument
-*
-* c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control
-* error = error ).
-* APPEND error TO t_errors.
-*
-* cl_control->init_control( EXPORTING inplace_enabled = 'X'
-* no_flush = 'X'
-* r3_application_name = 'Demo Document Container'
-* parent = cl_gui_container=>screen0
-* IMPORTING error = error
-* EXCEPTIONS OTHERS = 2 ).
-* APPEND error TO t_errors.
-*
-* cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL
-* no_flush = ' '
-* IMPORTING document_proxy = cl_document
-* error = error ).
-* APPEND error TO t_errors.
-** Errorhandling should be inserted here
-*
-* cl_document->open_document_from_table( EXPORTING document_size = lv_bytecount
-* document_table = lt_file_tab ).
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL33.slnk b/ZA2X/PROG/ZDEMO_EXCEL33.slnk
index 2023b75..fb63588 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL33.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL33.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -20,21 +20,12 @@ REPORT zdemo_excel33.
TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_converter TYPE REF TO zcl_excel_converter,
lo_autofilter TYPE REF TO zcl_excel_autofilter.
DATA lt_test TYPE TABLE OF sflight.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
DATA: lv_title TYPE zexcel_sheet_title,
lt_carr TYPE TABLE OF scarr,
row TYPE zexcel_cell_row VALUE 2,
@@ -50,29 +41,13 @@ FIELD-SYMBOLS: <fs_test> TYPE sflight,
<fs_fldval> TYPE ANY.
CONSTANTS: c_airlines TYPE string VALUE 'Airlines'.
-CONSTANTS: lv_default_file_name TYPE string VALUE '33_autofilter.xlsx'.
-PARAMETERS: p_path TYPE zexcel_export_dir.
+CONSTANTS: gc_save_file_name TYPE string VALUE '33_autofilter.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -110,25 +85,7 @@ START-OF-SELECTION.
lo_autofilter->set_value( i_column = 3
i_value = l_cell_value ).
- " Write to Excel 2007
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL4.slnk b/ZA2X/PROG/ZDEMO_EXCEL4.slnk
index 81fb500..b5f7aba 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL4.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL4.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,44 +17,18 @@
REPORT zdemo_excel4.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
DATA: ls_header TYPE zexcel_s_worksheet_head_foot,
ls_footer TYPE zexcel_s_worksheet_head_foot.
-CONSTANTS: lv_default_file_name TYPE string VALUE '04_Sheets.xlsx'.
+CONSTANTS: gc_save_file_name TYPE string VALUE '04_Sheets.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -121,24 +95,7 @@ START-OF-SELECTION.
lo_excel->set_active_sheet_index_by_name( 'Sheet1' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL6.slnk b/ZA2X/PROG/ZDEMO_EXCEL6.slnk
index 7abea68..51e8323 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL6.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL6.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,40 +17,15 @@
REPORT zdemo_excel6.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '06_Formulas.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '06_Formulas.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -63,24 +38,7 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_formula = 'SUM(C4:C8)' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL7.slnk b/ZA2X/PROG/ZDEMO_EXCEL7.slnk
index 0548d73..56a7617 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL7.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL7.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,7 +17,6 @@
REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
@@ -25,37 +24,12 @@ DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
ls_iconset5 TYPE zexcel_conditional_iconset.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+CONSTANTS: gc_save_file_name TYPE string VALUE '07_ConditionalAll.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_file_separator TYPE c.
-
-CONSTANTS: lv_default_file_name TYPE string VALUE '07_ConditionalAll.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
ls_iconset3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
@@ -381,24 +355,7 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 22 ip_column = 'E' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'E' ip_value = 50 ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL8.slnk b/ZA2X/PROG/ZDEMO_EXCEL8.slnk
index 5ba0702..9036b92 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL8.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL8.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -17,42 +17,17 @@
REPORT zdemo_excel8.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
+DATA: lv_title TYPE zexcel_sheet_title.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_title TYPE zexcel_sheet_title,
- lv_file_separator TYPE c.
+CONSTANTS: gc_save_file_name TYPE string VALUE '08_Range.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-CONSTANTS: lv_default_file_name TYPE string VALUE '08_Range.xlsx'.
-
-PARAMETERS: p_path TYPE zexcel_export_dir.
-
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
-
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
CREATE OBJECT lo_excel.
" Get active sheet
@@ -74,24 +49,7 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ).
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ).
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).
diff --git a/ZA2X/PROG/ZDEMO_EXCEL9.slnk b/ZA2X/PROG/ZDEMO_EXCEL9.slnk
index 962bafe..3157687 100644
--- a/ZA2X/PROG/ZDEMO_EXCEL9.slnk
+++ b/ZA2X/PROG/ZDEMO_EXCEL9.slnk
@@ -1,8 +1,8 @@
-
-
+
+
-
+
@@ -23,46 +23,24 @@ CONSTANTS: c_fruits TYPE string VALUE 'Fruits',
c_fish TYPE string VALUE 'Fish'.
DATA: lo_excel TYPE REF TO zcl_excel,
- lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation.
DATA: row TYPE zexcel_cell_row.
-DATA: lv_file TYPE xstring,
- lv_bytecount TYPE i,
- lt_file_tab TYPE solix_tab.
-DATA: lv_full_path TYPE string,
- lv_workdir TYPE string,
- lv_title TYPE zexcel_sheet_title,
- lv_file_separator TYPE c.
+DATA: lv_title TYPE zexcel_sheet_title.
-CONSTANTS: lv_default_file_name TYPE string VALUE '09_DataValidation.xlsx'.
-PARAMETERS: p_path TYPE zexcel_export_dir,
- p_sbook TYPE flag.
+CONSTANTS: gc_save_file_name TYPE string VALUE '09_DataValidation.xlsx'.
+INCLUDE zdemo_excel_outputopt_incl.
-AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.
- lv_workdir = p_path.
- cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir
- CHANGING selected_folder = lv_workdir ).
- p_path = lv_workdir.
+PARAMETERS: p_sbook TYPE flag.
-INITIALIZATION.
- cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ).
- cl_gui_cfw=>flush( ).
- p_path = lv_workdir.
START-OF-SELECTION.
- IF p_path IS INITIAL.
- p_path = lv_workdir.
- ENDIF.
- cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ).
- CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path.
-
" Creates active sheet
CREATE OBJECT lo_excel.
@@ -219,24 +197,7 @@ START-OF-SELECTION.
).
ENDIF.
- CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
- lv_file = lo_excel_writer->write_file( lo_excel ).
- " Convert to binary
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = lv_file
- IMPORTING
- output_length = lv_bytecount
- TABLES
- binary_tab = lt_file_tab.
-* " This method is only available on AS ABAP > 6.40
-* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
-* lv_bytecount = xstrlen( lv_file ).
-
- " Save the file
- cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount
- filename = lv_full_path
- filetype = 'BIN'
- CHANGING data_tab = lt_file_tab ).
+*** Create output
+ lcl_output=>output( lo_excel ).