diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk index e1e77e1..8ed67fc 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk @@ -5,9 +5,9 @@ final create public . -public section. *"* public components of class ZCL_EXCEL_COMMON *"* do not include other source files here!!! +public section. constants C_EXCEL_BASELINE_DATE type D value '19000101'. "#EC NOTEXT class-data C_EXCEL_NUMFMT_OFFSET type INT1 value 164. "#EC NOTEXT . @@ -16,6 +16,7 @@ public section. class-data C_SPRAS_EN type SPRAS value 'E'. "#EC NOTEXT . class-data O_CONV type ref to CL_ABAP_CONV_OUT_CE . constants C_EXCEL_1900_LEAP_YEAR type D value '19000228'. "#EC NOTEXT + constants C_XLSX_FILE_FILTER type STRING value 'Excel Workbook (*.xlsx)|*.xlsx|'. "#EC NOTEXT class-methods DESCRIBE_STRUCTURE importing @@ -146,9 +147,9 @@ public section. *"* protected components of class ZCL_EXCEL_COMMON *"* do not include other source files here!!! protected section. - private section. -*"* private components of class ZCL_EXCEL_COMMON + *"* private components of class ZCL_EXCEL_COMMON *"* do not include other source files here!!! +private section. class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . @@ -913,6 +914,7 @@ ENDCLASS. "lcl_Excel_Common_Test + diff --git a/ZA2X/PROG/ZDEMO_EXCEL37.slnk b/ZA2X/PROG/ZDEMO_EXCEL37.slnk index 11e11f7..f30a198 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL37.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL37.slnk @@ -3,12 +3,14 @@ + + - REPORT ZDEMO_EXCEL37. + REPORT zdemo_excel37. DATA: excel TYPE REF TO zcl_excel, reader TYPE REF TO zif_excel_reader. @@ -17,11 +19,14 @@ DATA: excel TYPE REF TO zcl_excel, CONSTANTS: gc_save_file_name TYPE string VALUE '37-passthrough.xlsx'. SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME. -PARAMETERS: p_upfile TYPE string OBLIGATORY DEFAULT 'c:\temp\Noprinterassigned.xlsx' LOWER CASE. +PARAMETERS: p_upfile TYPE string DEFAULT 'c:\temp\whatever.xlsx' LOWER CASE. SELECTION-SCREEN END OF BLOCK blx. INCLUDE zdemo_excel_outputopt_incl. +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile. + PERFORM f4_p_upfile CHANGING p_upfile. + START-OF-SELECTION. @@ -32,6 +37,49 @@ START-OF-SELECTION. *** Create output lcl_output=>output( excel ). CATCH cx_root. - message 'Error reading excelfile' type 'I'. - ENDTRY. + MESSAGE 'Error reading excelfile' TYPE 'I'. + ENDTRY. + + +*&---------------------------------------------------------------------* +*& Form F4_P_UPFILE +*&---------------------------------------------------------------------* +FORM f4_p_upfile CHANGING p_upfile TYPE string. + + DATA: lv_repid TYPE syrepid, + lt_fields TYPE dynpread_tabtype, + ls_field LIKE LINE OF lt_fields, + lt_files TYPE filetable. + + lv_repid = sy-repid. + + CALL FUNCTION 'DYNP_VALUES_READ' + EXPORTING + dyname = lv_repid + dynumb = '1000' + request = 'A' + TABLES + dynpfields = lt_fields + EXCEPTIONS + invalid_abapworkarea = 01 + invalid_dynprofield = 02 + invalid_dynproname = 03 + invalid_dynpronummer = 04 + invalid_request = 05 + no_fielddescription = 06 + undefind_error = 07. + READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'P_UPFILE'. + p_upfile = ls_field-fieldvalue. + + cl_gui_frontend_services=>file_open_dialog( EXPORTING + default_filename = p_upfile + file_filter = zcl_excel_common=>c_xlsx_file_filter + CHANGING + file_table = lt_files + rc = sy-tabix + EXCEPTIONS + OTHERS = 1 ). + READ TABLE lt_files INDEX 1 INTO p_upfile. + +ENDFORM. " F4_P_UPFILE