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 ).