From e0052bbb9e22761b81306d42f185176958e128ca Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Wed, 6 Oct 2021 08:07:29 +0200 Subject: [PATCH] zcl_excel_style_number_format: refactor macro to method (#818) * zcl_excel_style_number_format: refactor macro to method * fix whitespace --- src/zcl_excel_style_number_format.clas.abap | 90 +++++++++++---------- 1 file changed, 46 insertions(+), 44 deletions(-) diff --git a/src/zcl_excel_style_number_format.clas.abap b/src/zcl_excel_style_number_format.clas.abap index 3f80cd8..7a60219 100644 --- a/src/zcl_excel_style_number_format.clas.abap +++ b/src/zcl_excel_style_number_format.clas.abap @@ -90,6 +90,10 @@ CLASS zcl_excel_style_number_format DEFINITION *"* do not include other source files here!!! PROTECTED SECTION. PRIVATE SECTION. + CLASS-METHODS add_format + IMPORTING + id TYPE string + code TYPE zexcel_number_format. *"* private components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT *"* do not include other source files here!!! ENDCLASS. @@ -98,57 +102,55 @@ ENDCLASS. CLASS zcl_excel_style_number_format IMPLEMENTATION. + METHOD add_format. + DATA ls_num_format LIKE LINE OF mt_built_in_num_formats. + ls_num_format-id = id. + CREATE OBJECT ls_num_format-format. + ls_num_format-format->format_code = code. + INSERT ls_num_format INTO TABLE mt_built_in_num_formats. + ENDMETHOD. METHOD class_constructor. - DATA: ls_num_format LIKE LINE OF mt_built_in_num_formats. - - DEFINE predefined_format. - ls_num_format-id = &1. - CREATE OBJECT ls_num_format-format. - ls_num_format-format->format_code = &2. - INSERT ls_num_format INTO TABLE mt_built_in_num_formats. - END-OF-DEFINITION. - CLEAR mt_built_in_num_formats. - predefined_format '1' zcl_excel_style_number_format=>c_format_number. " '0'. - predefined_format '2' zcl_excel_style_number_format=>c_format_number_00. " '0.00'. - predefined_format '3' zcl_excel_style_number_format=>c_format_number_comma_sep0. " '#,##0'. - predefined_format '4' zcl_excel_style_number_format=>c_format_number_comma_sep1. " '#,##0.00'. - predefined_format '5' zcl_excel_style_number_format=>c_format_currency_simple. " '$#,##0_);($#,##0)'. - predefined_format '6' zcl_excel_style_number_format=>c_format_currency_simple_red. " '$#,##0_);[Red]($#,##0)'. - predefined_format '7' zcl_excel_style_number_format=>c_format_currency_simple2. " '$#,##0.00_);($#,##0.00)'. - predefined_format '8' zcl_excel_style_number_format=>c_format_currency_simple_red2. " '$#,##0.00_);[Red]($#,##0.00)'. - predefined_format '9' zcl_excel_style_number_format=>c_format_percentage. " '0%'. - predefined_format '10' zcl_excel_style_number_format=>c_format_percentage_00. " '0.00%'. - predefined_format '11' zcl_excel_style_number_format=>c_format_scientific. " '0.00E+00'. - predefined_format '12' zcl_excel_style_number_format=>c_format_fraction_1. " '# ?/?'. - predefined_format '13' zcl_excel_style_number_format=>c_format_fraction_2. " '# ??/??'. - predefined_format '14' zcl_excel_style_number_format=>c_format_date_xlsx14. "'m/d/yyyy'. <-- should have been 'mm-dd-yy' like constant in zcl_excel_style_number_format - predefined_format '15' zcl_excel_style_number_format=>c_format_date_xlsx15. "'d-mmm-yy'. - predefined_format '16' zcl_excel_style_number_format=>c_format_date_xlsx16. "'d-mmm'. - predefined_format '17' zcl_excel_style_number_format=>c_format_date_xlsx17. "'mmm-yy'. - predefined_format '18' zcl_excel_style_number_format=>c_format_date_time1. " 'h:mm AM/PM'. - predefined_format '19' zcl_excel_style_number_format=>c_format_date_time2. " 'h:mm:ss AM/PM'. - predefined_format '20' zcl_excel_style_number_format=>c_format_date_time3. " 'h:mm'. - predefined_format '21' zcl_excel_style_number_format=>c_format_date_time4. " 'h:mm:ss'. - predefined_format '22' zcl_excel_style_number_format=>c_format_date_xlsx22. " 'm/d/yyyy h:mm'. + add_format( id = '1' code = zcl_excel_style_number_format=>c_format_number ). " '0'. + add_format( id = '2' code = zcl_excel_style_number_format=>c_format_number_00 ). " '0.00'. + add_format( id = '3' code = zcl_excel_style_number_format=>c_format_number_comma_sep0 ). " '#,##0'. + add_format( id = '4' code = zcl_excel_style_number_format=>c_format_number_comma_sep1 ). " '#,##0.00'. + add_format( id = '5' code = zcl_excel_style_number_format=>c_format_currency_simple ). " '$#,##0_);($#,##0)'. + add_format( id = '6' code = zcl_excel_style_number_format=>c_format_currency_simple_red ). " '$#,##0_);[Red]($#,##0)'. + add_format( id = '7' code = zcl_excel_style_number_format=>c_format_currency_simple2 ). " '$#,##0.00_);($#,##0.00)'. + add_format( id = '8' code = zcl_excel_style_number_format=>c_format_currency_simple_red2 ). " '$#,##0.00_);[Red]($#,##0.00)'. + add_format( id = '9' code = zcl_excel_style_number_format=>c_format_percentage ). " '0%'. + add_format( id = '10' code = zcl_excel_style_number_format=>c_format_percentage_00 ). " '0.00%'. + add_format( id = '11' code = zcl_excel_style_number_format=>c_format_scientific ). " '0.00E+00'. + add_format( id = '12' code = zcl_excel_style_number_format=>c_format_fraction_1 ). " '# ?/?'. + add_format( id = '13' code = zcl_excel_style_number_format=>c_format_fraction_2 ). " '# ??/??'. + add_format( id = '14' code = zcl_excel_style_number_format=>c_format_date_xlsx14 ). "'m/d/yyyy'. <-- should have been 'mm-dd-yy' like constant in zcl_excel_style_number_format + add_format( id = '15' code = zcl_excel_style_number_format=>c_format_date_xlsx15 ). "'d-mmm-yy'. + add_format( id = '16' code = zcl_excel_style_number_format=>c_format_date_xlsx16 ). "'d-mmm'. + add_format( id = '17' code = zcl_excel_style_number_format=>c_format_date_xlsx17 ). "'mmm-yy'. + add_format( id = '18' code = zcl_excel_style_number_format=>c_format_date_time1 ). " 'h:mm AM/PM'. + add_format( id = '19' code = zcl_excel_style_number_format=>c_format_date_time2 ). " 'h:mm:ss AM/PM'. + add_format( id = '20' code = zcl_excel_style_number_format=>c_format_date_time3 ). " 'h:mm'. + add_format( id = '21' code = zcl_excel_style_number_format=>c_format_date_time4 ). " 'h:mm:ss'. + add_format( id = '22' code = zcl_excel_style_number_format=>c_format_date_xlsx22 ). " 'm/d/yyyy h:mm'. - predefined_format '37' zcl_excel_style_number_format=>c_format_xlsx37. " '#,##0_);(#,##0)'. - predefined_format '38' zcl_excel_style_number_format=>c_format_xlsx38. " '#,##0_);[Red](#,##0)'. - predefined_format '39' zcl_excel_style_number_format=>c_format_xlsx39. " '#,##0.00_);(#,##0.00)'. - predefined_format '40' zcl_excel_style_number_format=>c_format_xlsx40. " '#,##0.00_);[Red](#,##0.00)'. - predefined_format '41' zcl_excel_style_number_format=>c_format_xlsx41. " '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'. - predefined_format '42' zcl_excel_style_number_format=>c_format_xlsx42. " '_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)'. - predefined_format '43' zcl_excel_style_number_format=>c_format_xlsx43. " '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'. - predefined_format '44' zcl_excel_style_number_format=>c_format_xlsx44. " '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)'. - predefined_format '45' zcl_excel_style_number_format=>c_format_date_xlsx45. " 'mm:ss'. - predefined_format '46' zcl_excel_style_number_format=>c_format_date_xlsx46. " '[h]:mm:ss'. - predefined_format '47' zcl_excel_style_number_format=>c_format_date_xlsx47. " 'mm:ss.0'. - predefined_format '48' zcl_excel_style_number_format=>c_format_special_01. " '##0.0E+0'. - predefined_format '49' zcl_excel_style_number_format=>c_format_text. " '@'. + add_format( id = '37' code = zcl_excel_style_number_format=>c_format_xlsx37 ). " '#,##0_);(#,##0)'. + add_format( id = '38' code = zcl_excel_style_number_format=>c_format_xlsx38 ). " '#,##0_);[Red](#,##0)'. + add_format( id = '39' code = zcl_excel_style_number_format=>c_format_xlsx39 ). " '#,##0.00_);(#,##0.00)'. + add_format( id = '40' code = zcl_excel_style_number_format=>c_format_xlsx40 ). " '#,##0.00_);[Red](#,##0.00)'. + add_format( id = '41' code = zcl_excel_style_number_format=>c_format_xlsx41 ). " '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)'. + add_format( id = '42' code = zcl_excel_style_number_format=>c_format_xlsx42 ). " '_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)'. + add_format( id = '43' code = zcl_excel_style_number_format=>c_format_xlsx43 ). " '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)'. + add_format( id = '44' code = zcl_excel_style_number_format=>c_format_xlsx44 ). " '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)'. + add_format( id = '45' code = zcl_excel_style_number_format=>c_format_date_xlsx45 ). " 'mm:ss'. + add_format( id = '46' code = zcl_excel_style_number_format=>c_format_date_xlsx46 ). " '[h]:mm:ss'. + add_format( id = '47' code = zcl_excel_style_number_format=>c_format_date_xlsx47 ). " 'mm:ss.0'. + add_format( id = '48' code = zcl_excel_style_number_format=>c_format_special_01 ). " '##0.0E+0'. + add_format( id = '49' code = zcl_excel_style_number_format=>c_format_text ). " '@'. ENDMETHOD.