Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zcl_excel_style_number_format: refactor macro to method #818

Merged
merged 5 commits into from
Oct 6, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 48 additions & 46 deletions src/zcl_excel_style_number_format.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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'.


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 = '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'.


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.

Expand Down