diff --git a/ZA2X/DTEL/ZEXCEL_EXPORT_DIR.slnk b/ZA2X/DTEL/ZEXCEL_EXPORT_DIR.slnk new file mode 100644 index 0000000..c6df70d --- /dev/null +++ b/ZA2X/DTEL/ZEXCEL_EXPORT_DIR.slnk @@ -0,0 +1,4 @@ + + + + diff --git a/ZA2X/PROG/ZDEMO_EXCEL.slnk b/ZA2X/PROG/ZDEMO_EXCEL.slnk index d727bf3..e1640bc 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL.slnk @@ -1,11 +1,12 @@ - + + *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL *& @@ -18,13 +19,13 @@ REPORT zdemo_excel. DATA: lv_workdir TYPE string. -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. diff --git a/ZA2X/PROG/ZDEMO_EXCEL1.slnk b/ZA2X/PROG/ZDEMO_EXCEL1.slnk index cd7d14d..e9c1e50 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL1.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL1.slnk @@ -1,10 +1,12 @@ - + + + *&---------------------------------------------------------------------* *& Report ZIFE_TEST_EXCEL *& @@ -25,20 +27,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 '01_HelloWorld.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 ). @@ -50,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. " Creates active sheet CREATE OBJECT lo_excel. @@ -70,13 +71,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 ).