From 64e0062571b92a6f5bd7da0a542508fc86ee51b3 Mon Sep 17 00:00:00 2001 From: Gregor Wolf Date: Fri, 24 Dec 2010 11:34:08 +0000 Subject: [PATCH] Changed demo reports 2 to 22 for 6.40 compatibility according to issue #55. git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@89 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/PROG/ZDEMO_EXCEL10.slnk | 42 ++++++---- ZA2X/PROG/ZDEMO_EXCEL11.slnk | 65 ++++++--------- ZA2X/PROG/ZDEMO_EXCEL12.slnk | 155 ++++++++++++++++++----------------- ZA2X/PROG/ZDEMO_EXCEL13.slnk | 41 +++++---- ZA2X/PROG/ZDEMO_EXCEL14.slnk | 39 +++++---- ZA2X/PROG/ZDEMO_EXCEL15.slnk | 39 ++++++--- ZA2X/PROG/ZDEMO_EXCEL16.slnk | 53 +++++++----- ZA2X/PROG/ZDEMO_EXCEL17.slnk | 43 ++++++---- ZA2X/PROG/ZDEMO_EXCEL18.slnk | 42 ++++++---- ZA2X/PROG/ZDEMO_EXCEL19.slnk | 43 ++++++---- ZA2X/PROG/ZDEMO_EXCEL2.slnk | 41 +++++---- ZA2X/PROG/ZDEMO_EXCEL20.slnk | 3 +- ZA2X/PROG/ZDEMO_EXCEL21.slnk | 46 +++++++---- ZA2X/PROG/ZDEMO_EXCEL22.slnk | 44 ++++++---- ZA2X/PROG/ZDEMO_EXCEL3.slnk | 41 +++++---- ZA2X/PROG/ZDEMO_EXCEL4.slnk | 40 +++++---- ZA2X/PROG/ZDEMO_EXCEL5.slnk | 40 +++++---- ZA2X/PROG/ZDEMO_EXCEL6.slnk | 39 +++++---- ZA2X/PROG/ZDEMO_EXCEL7.slnk | 41 +++++---- ZA2X/PROG/ZDEMO_EXCEL8.slnk | 46 ++++++----- ZA2X/PROG/ZDEMO_EXCEL9.slnk | 48 ++++++----- 21 files changed, 581 insertions(+), 410 deletions(-) diff --git a/ZA2X/PROG/ZDEMO_EXCEL10.slnk b/ZA2X/PROG/ZDEMO_EXCEL10.slnk index 5fd7e95..44a4af2 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL10.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL10.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL10 *& *&---------------------------------------------------------------------* *& @@ -22,27 +24,25 @@ DATA: lo_excel TYPE REF TO zcl_excel, column_dimension TYPE REF TO zcl_excel_worksheet_columndime. DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, - ls_field_catalog TYPE zexcel_s_fieldcatalog, 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_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -54,7 +54,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. @@ -111,13 +111,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL11.slnk b/ZA2X/PROG/ZDEMO_EXCEL11.slnk index 0fdaf31..27c854a 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL11.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL11.slnk @@ -1,19 +1,20 @@ - + - + - + - + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL11 *& Export Organisation and Contact Persons using ABAP2XLSX @@ -46,15 +47,13 @@ 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_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. PARAMETERS: md TYPE flag RADIOBUTTON GROUP act. @@ -73,9 +72,11 @@ PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011', 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. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = p_path ). INITIALIZATION. a = 'Select by master data'. @@ -88,7 +89,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. IF md = abap_true. " Read all Companies by Master Data @@ -231,15 +232,11 @@ START-OF-SELECTION. 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, - lo_border_light TYPE REF TO zcl_excel_style_border, column_dimension TYPE REF TO zcl_excel_worksheet_columndime, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. - DATA: lv_style_body_odd_guid TYPE zexcel_cell_style, - lv_style_body_even_guid TYPE zexcel_cell_style, - lv_style_body_green TYPE zexcel_cell_style, - lv_style_body_odd_n_guid TYPE zexcel_cell_style, - lv_style_body_even_n_guid TYPE zexcel_cell_style. + DATA: lv_style_body_even_guid TYPE zexcel_cell_style, + lv_style_body_green TYPE zexcel_cell_style. DATA: row TYPE zexcel_cell_row. @@ -263,12 +260,6 @@ START-OF-SELECTION. CREATE OBJECT lo_border_dark. lo_border_dark->border_color = zcl_excel_style_color=>c_black. lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. - "Create style with border odd - lo_style_body = lo_excel->add_new_style( ). - lo_style_body->fill->filltype = zcl_excel_style_fill=>c_fill_solid. - lo_style_body->fill->fgcolor = zcl_excel_style_color=>c_gray. - lo_style_body->borders->allborders = lo_border_dark. - lv_style_body_odd_guid = lo_style_body->get_guid( ). "Create style with border even lo_style_body = lo_excel->add_new_style( ). lo_style_body->fill->fgcolor = zcl_excel_style_color=>c_yellow. @@ -279,18 +270,6 @@ START-OF-SELECTION. lo_style_body->fill->fgcolor = zcl_excel_style_color=>c_green. lo_style_body->borders->allborders = lo_border_dark. lv_style_body_green = lo_style_body->get_guid( ). - "Create style numeric with border odd - lo_style_body = lo_excel->add_new_style( ). - lo_style_body->fill->filltype = zcl_excel_style_fill=>c_fill_solid. - lo_style_body->fill->fgcolor = zcl_excel_style_color=>c_gray. - lo_style_body->borders->allborders = lo_border_dark. - lo_style_body->number_format->format_code = zcl_excel_style_number_format=>c_format_number. - lv_style_body_odd_n_guid = lo_style_body->get_guid( ). - "Create style numeric with border odd - lo_style_body = lo_excel->add_new_style( ). - lo_style_body->borders->allborders = lo_border_dark. - lo_style_body->number_format->format_code = zcl_excel_style_number_format=>c_format_number. - lv_style_body_even_n_guid = lo_style_body->get_guid( ). " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). @@ -474,13 +453,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path + filename = lv_full_path filetype = 'BIN' CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL12.slnk b/ZA2X/PROG/ZDEMO_EXCEL12.slnk index 51e7e8b..7c7e26e 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL12.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL12.slnk @@ -1,10 +1,12 @@ - + - + + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL12 *& @@ -16,7 +18,7 @@ REPORT zdemo_excel12. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer type ref to zif_excel_writer, + 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. @@ -25,96 +27,103 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - -cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path -CHANGING selected_folder = 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 ). -p_path = lv_workdir. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + 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 p_path. + 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. + " Creates active sheet + CREATE OBJECT lo_excel. -" Get active sheet -lo_worksheet = lo_excel->get_active_worksheet( ). -lo_worksheet->set_title( 'Sheet1' ). -lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world in AutoSize column' ). -lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Hello world in a column width size 50' ). -lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Hello world (hidden column)' ). -lo_worksheet->set_cell( ip_column = 'F' ip_row = 2 ip_value = 'Outline column level 0' ). -lo_worksheet->set_cell( ip_column = 'G' ip_row = 2 ip_value = 'Outline column level 1' ). -lo_worksheet->set_cell( ip_column = 'H' ip_row = 2 ip_value = 'Outline column level 2' ). -lo_worksheet->set_cell( ip_column = 'I' ip_row = 2 ip_value = 'Small' ). + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world in AutoSize column' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Hello world in a column width size 50' ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Hello world (hidden column)' ). + lo_worksheet->set_cell( ip_column = 'F' ip_row = 2 ip_value = 'Outline column level 0' ). + lo_worksheet->set_cell( ip_column = 'G' ip_row = 2 ip_value = 'Outline column level 1' ). + lo_worksheet->set_cell( ip_column = 'H' ip_row = 2 ip_value = 'Outline column level 2' ). + lo_worksheet->set_cell( ip_column = 'I' ip_row = 2 ip_value = 'Small' ). -lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Hello world (hidden row)' ). -lo_worksheet->set_cell( ip_column = 'E' ip_row = 5 ip_value = 'Hello world in a row height size 20' ). -lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = 'Outline row level 0' ). -lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Outline row level 1' ). -lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Outline row level 2' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Hello world (hidden row)' ). + lo_worksheet->set_cell( ip_column = 'E' ip_row = 5 ip_value = 'Hello world in a row height size 20' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = 'Outline row level 0' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Outline row level 1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Outline row level 2' ). -" Column Settings -" Auto size -column_dimension = lo_worksheet->get_column_dimension( 'B' ). -column_dimension->set_auto_size( abap_true ). -column_dimension = lo_worksheet->get_column_dimension( 'I' ). -column_dimension->set_auto_size( abap_true ). -" Manual Width -column_dimension = lo_worksheet->get_column_dimension( 'C' ). -column_dimension->set_width( 50 ). -column_dimension = lo_worksheet->get_column_dimension( 'D' ). -column_dimension->set_visible( ip_visible = abap_false ). -" Implementation in the Writer is not working yet ===== TODO ===== -column_dimension = lo_worksheet->get_column_dimension( 'F' ). -column_dimension->set_outline_level( 0 ). -column_dimension = lo_worksheet->get_column_dimension( 'G' ). -column_dimension->set_outline_level( 1 ). -column_dimension = lo_worksheet->get_column_dimension( 'H' ). -column_dimension->set_outline_level( 2 ). + " Column Settings + " Auto size + column_dimension = lo_worksheet->get_column_dimension( 'B' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( 'I' ). + column_dimension->set_auto_size( abap_true ). + " Manual Width + column_dimension = lo_worksheet->get_column_dimension( 'C' ). + column_dimension->set_width( 50 ). + column_dimension = lo_worksheet->get_column_dimension( 'D' ). + column_dimension->set_visible( ip_visible = abap_false ). + " Implementation in the Writer is not working yet ===== TODO ===== + column_dimension = lo_worksheet->get_column_dimension( 'F' ). + column_dimension->set_outline_level( 0 ). + column_dimension = lo_worksheet->get_column_dimension( 'G' ). + column_dimension->set_outline_level( 1 ). + column_dimension = lo_worksheet->get_column_dimension( 'H' ). + column_dimension->set_outline_level( 2 ). -row_dimension = lo_worksheet->get_row_dimension( 1 ). -row_dimension->set_visible( abap_false ). -row_dimension = lo_worksheet->get_row_dimension( 5 ). -row_dimension->set_row_height( 20 ). -" Implementation in the Writer is not working yet ===== TODO ===== -row_dimension = lo_worksheet->get_row_dimension( 6 ). -row_dimension->set_outline_level( 0 ). -row_dimension = lo_worksheet->get_row_dimension( 7 ). -row_dimension->set_outline_level( 1 ). -row_dimension = lo_worksheet->get_row_dimension( 8 ). -row_dimension->set_outline_level( 2 ). + row_dimension = lo_worksheet->get_row_dimension( 1 ). + row_dimension->set_visible( abap_false ). + row_dimension = lo_worksheet->get_row_dimension( 5 ). + row_dimension->set_row_height( 20 ). + " Implementation in the Writer is not working yet ===== TODO ===== + row_dimension = lo_worksheet->get_row_dimension( 6 ). + row_dimension->set_outline_level( 0 ). + row_dimension = lo_worksheet->get_row_dimension( 7 ). + row_dimension->set_outline_level( 1 ). + row_dimension = lo_worksheet->get_row_dimension( 8 ). + row_dimension->set_outline_level( 2 ). -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 -lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). -lv_bytecount = xstrlen( lv_file ). + " 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 = p_path - filetype = 'BIN' -changing data_tab = 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 ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL13.slnk b/ZA2X/PROG/ZDEMO_EXCEL13.slnk index 64cf87d..229276c 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL13.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL13.slnk @@ -1,10 +1,12 @@ - + + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL13 *& @@ -18,8 +20,6 @@ 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, - lo_range TYPE REF TO zcl_excel_range, - lv_style_number_guid TYPE zexcel_cell_style, 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. @@ -28,20 +28,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -53,7 +52,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -94,13 +93,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL14.slnk b/ZA2X/PROG/ZDEMO_EXCEL14.slnk index 1dfd76f..f4f2430 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL14.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL14.slnk @@ -1,15 +1,17 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZDEMO_EXCEL13 +*& Report ZDEMO_EXCEL14 *& *&---------------------------------------------------------------------* -*& Example by: Alvaro "Blag" Tejada Galindo. +*& *& *&---------------------------------------------------------------------* @@ -49,20 +51,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -74,7 +75,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -176,13 +177,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path + filename = lv_full_path filetype = 'BIN' CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL15.slnk b/ZA2X/PROG/ZDEMO_EXCEL15.slnk index f8f30a0..013e471 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL15.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL15.slnk @@ -1,12 +1,13 @@ - + - + - + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL15 *& @@ -23,6 +24,9 @@ DATA: excel TYPE REF TO zcl_excel, lo_excel_writer TYPE REF TO zif_excel_writer, reader TYPE REF TO zif_excel_reader. +DATA: ex TYPE REF TO zcx_excel, + msg TYPE string. + DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. @@ -43,13 +47,15 @@ DATA: worksheet TYPE REF TO zcl_excel_worksheet, CONSTANTS: lv_default_file_name TYPE string VALUE '15_iTabFromReader.xlsx', lv_default_input TYPE string VALUE '03_iTab.xlsx'. -PARAMETERS: p_path TYPE string, +PARAMETERS: p_path TYPE zexcel_export_dir, p_noout TYPE xfeld DEFAULT abap_true. -AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = p_path ). +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 ). @@ -96,9 +102,17 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 @@ -106,6 +120,9 @@ START-OF-SELECTION. filetype = 'BIN' CHANGING data_tab = lt_file_tab ). - CATCH zcx_excel. " Exceptions for ABAP2XLSX + + CATCH zcx_excel INTO ex. " Exceptions for ABAP2XLSX + msg = ex->get_text( ). + WRITE: / msg. ENDTRY. diff --git a/ZA2X/PROG/ZDEMO_EXCEL16.slnk b/ZA2X/PROG/ZDEMO_EXCEL16.slnk index 05c720a..5ac43ad 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL16.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL16.slnk @@ -1,12 +1,14 @@ - + - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL16 *& *&---------------------------------------------------------------------* *& @@ -18,24 +20,25 @@ 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, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + 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_workdir TYPE string, +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '16_Drawings.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -47,7 +50,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -87,8 +90,8 @@ START-OF-SELECTION. error_no_gui = 18 OTHERS = 19. IF sy-subrc <> 0. -* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO -* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' @@ -101,6 +104,10 @@ START-OF-SELECTION. EXCEPTIONS failed = 1 OTHERS = 2. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). @@ -137,13 +144,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL17.slnk b/ZA2X/PROG/ZDEMO_EXCEL17.slnk index 4b73d81..d98c0be 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL17.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL17.slnk @@ -1,12 +1,15 @@ - + - + + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL17 *& *&---------------------------------------------------------------------* *& @@ -25,18 +28,20 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_workdir TYPE string, +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 string, +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. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -48,7 +53,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -75,13 +80,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL18.slnk b/ZA2X/PROG/ZDEMO_EXCEL18.slnk index 5954436..d732eff 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL18.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL18.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL18 *& *&---------------------------------------------------------------------* *& @@ -18,24 +20,25 @@ 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, - lo_style_protection TYPE REF TO zcl_excel_style, 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_workdir TYPE string, +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '18_BookProtection.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -47,7 +50,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -57,20 +60,27 @@ START-OF-SELECTION. lo_excel->zif_excel_book_protection~lockstructure = zif_excel_book_protection=>c_locked. lo_excel->zif_excel_book_protection~lockwindows = zif_excel_book_protection=>c_locked. - 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 - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL19.slnk b/ZA2X/PROG/ZDEMO_EXCEL19.slnk index c131bf6..0606c7a 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL19.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL19.slnk @@ -1,12 +1,13 @@ - + - + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL19 *& @@ -21,26 +22,26 @@ 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_style_protection TYPE REF TO zcl_excel_style, - lv_style_protection_guid TYPE zexcel_cell_style. + 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_workdir TYPE string, +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'. -PARAMETERS: p_path TYPE string, +PARAMETERS: p_path TYPE zexcel_export_dir, p_noout TYPE xfeld DEFAULT abap_true. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -52,7 +53,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -85,13 +86,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL2.slnk b/ZA2X/PROG/ZDEMO_EXCEL2.slnk index 545e5e6..52df0b5 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL2.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL2.slnk @@ -1,12 +1,14 @@ - + - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL2 *& Test Styles for ABAP2XLSX *&---------------------------------------------------------------------* *& @@ -37,20 +39,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -62,7 +63,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -129,12 +130,20 @@ START-OF-SELECTION. lv_file = lo_excel_writer->write_file( lo_excel ). " Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL20.slnk b/ZA2X/PROG/ZDEMO_EXCEL20.slnk index d4b6c53..52c3656 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL20.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL20.slnk @@ -1,10 +1,11 @@ - + + diff --git a/ZA2X/PROG/ZDEMO_EXCEL21.slnk b/ZA2X/PROG/ZDEMO_EXCEL21.slnk index d0d190d..6c9ffa0 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL21.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL21.slnk @@ -1,10 +1,12 @@ - + + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL21 *& @@ -15,9 +17,10 @@ REPORT zdemo_excel21. -TYPES: BEGIN OF t_color_style, - color TYPE zexcel_style_color_argb, - style TYPE zexcel_cell_style, +TYPES: + BEGIN OF t_color_style, + color TYPE zexcel_style_color_argb, + style TYPE zexcel_cell_style, END OF t_color_style. DATA: lo_excel TYPE REF TO zcl_excel, @@ -53,20 +56,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -78,7 +80,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -130,13 +132,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL22.slnk b/ZA2X/PROG/ZDEMO_EXCEL22.slnk index f8ed536..869853d 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL22.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL22.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL22 *& *&---------------------------------------------------------------------* *& @@ -20,8 +22,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style TYPE REF TO zcl_excel_style, lo_style_editable TYPE REF TO zcl_excel_style, - lo_data_validation TYPE REF TO zcl_excel_data_validation, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_data_validation TYPE REF TO zcl_excel_data_validation. DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, ls_table_settings TYPE zexcel_s_table_settings, @@ -32,9 +33,7 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c, lv_row TYPE char10. @@ -43,12 +42,13 @@ FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. CONSTANTS: lv_default_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -60,7 +60,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -114,7 +114,7 @@ START-OF-SELECTION. WHEN 'PRICE'. <fs_field_catalog>-position = 4. <fs_field_catalog>-dynpfld = abap_true. - <fs_field_catalog>-style = lo_style_editable->get_guid( ).. + <fs_field_catalog>-style = lo_style_editable->get_guid( ). <fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_sum. WHEN OTHERS. <fs_field_catalog>-dynpfld = abap_false. @@ -146,13 +146,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path + filename = lv_full_path filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL3.slnk b/ZA2X/PROG/ZDEMO_EXCEL3.slnk index b875806..3d502bc 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL3.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL3.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL3 *& *&---------------------------------------------------------------------* *& @@ -26,20 +28,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '03_iTab.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -51,7 +52,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -77,13 +78,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL4.slnk b/ZA2X/PROG/ZDEMO_EXCEL4.slnk index 7b04ab2..d92c54b 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL4.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL4.slnk @@ -1,12 +1,13 @@ - + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL4 *& *&---------------------------------------------------------------------* *& @@ -24,20 +25,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '04_Sheets.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -49,7 +49,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. " Creates active sheet CREATE OBJECT lo_excel. @@ -82,13 +82,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL5.slnk b/ZA2X/PROG/ZDEMO_EXCEL5.slnk index 2f25c6f..91f5e30 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL5.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL5.slnk @@ -1,12 +1,13 @@ - + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL5 *& *&---------------------------------------------------------------------* *& @@ -24,20 +25,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '05_Conditional.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -49,7 +49,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -75,13 +75,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL6.slnk b/ZA2X/PROG/ZDEMO_EXCEL6.slnk index 48d43cc..06aaaa3 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL6.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL6.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL6 *& *&---------------------------------------------------------------------* *& @@ -23,20 +25,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '06_Formulas.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -48,7 +49,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -65,13 +66,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path + filename = lv_full_path filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL7.slnk b/ZA2X/PROG/ZDEMO_EXCEL7.slnk index cc48558..ba55d08 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL7.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL7.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL7 *& *&---------------------------------------------------------------------* *& @@ -24,20 +26,19 @@ DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +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 string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -49,7 +50,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -330,13 +331,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL8.slnk b/ZA2X/PROG/ZDEMO_EXCEL8.slnk index 2ae40f4..f1d3f73 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL8.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL8.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL8 *& *&---------------------------------------------------------------------* *& @@ -18,28 +20,26 @@ 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, - lv_style_number_guid TYPE zexcel_cell_style. + 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_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, - lv_title TYPE ZEXCEL_SHEET_TITLE, + lv_title TYPE zexcel_sheet_title, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '08_Range.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -51,7 +51,7 @@ START-OF-SELECTION. 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 p_path. + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. CREATE OBJECT lo_excel. @@ -77,13 +77,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). diff --git a/ZA2X/PROG/ZDEMO_EXCEL9.slnk b/ZA2X/PROG/ZDEMO_EXCEL9.slnk index 68eb0ce..09a9724 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL9.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL9.slnk @@ -1,12 +1,14 @@ - + + + *&---------------------------------------------------------------------* -*& Report ZIFE_TEST_EXCEL +*& Report ZDEMO_EXCEL9 *& *&---------------------------------------------------------------------* *& @@ -19,28 +21,26 @@ 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, - lv_style_number_guid TYPE zexcel_cell_style. + lo_data_validation TYPE REF TO zcl_excel_data_validation. DATA: lv_file TYPE xstring, lv_bytecount TYPE i, lt_file_tab TYPE solix_tab. -DATA: lv_file_name TYPE string, - lv_file_path TYPE string, - lv_full_path TYPE string, +DATA: lv_full_path TYPE string, lv_workdir TYPE string, - lv_title TYPE ZEXCEL_SHEET_TITLE, + lv_title TYPE zexcel_sheet_title, lv_file_separator TYPE c. CONSTANTS: lv_default_file_name TYPE string VALUE '09_DataValidation.xlsx'. -PARAMETERS: p_path TYPE string. +PARAMETERS: p_path TYPE zexcel_export_dir. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. - - cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path - CHANGING selected_folder = 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 ). @@ -52,9 +52,9 @@ START-OF-SELECTION. 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 p_path. - + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + " Creates active sheet CREATE OBJECT lo_excel. " Get active sheet @@ -90,13 +90,21 @@ START-OF-SELECTION. CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). -* Convert to binary - lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). - lv_bytecount = XSTRLEN( lv_file ). + " 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 = p_path - filetype = 'BIN' - CHANGING data_tab = lt_file_tab ). + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ).