Skip to content

Commit

Permalink
CSV Initial External Date (#1190)
Browse files Browse the repository at this point in the history
* CSV Initial External Date

Added code to set an initial external date other than the value returned by function module 'CONVERT_DATE_TO_EXTERNAL'.

* Default value as public constant

---------

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
  • Loading branch information
3 people committed Feb 15, 2024
1 parent 39f9272 commit 35425c3
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 18 deletions.
52 changes: 34 additions & 18 deletions src/zcl_excel_writer_csv.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ CLASS zcl_excel_writer_csv DEFINITION

INTERFACES zif_excel_writer .

"! Default value for initial dates e.g. user's format (DD.MM.YYYY, MM.DD.YYYY, etc.)
CONSTANTS c_default TYPE c LENGTH 10 VALUE 'DEFAULT' ##NO_TEXT.

CLASS-METHODS set_delimiter
IMPORTING
VALUE(ip_value) TYPE c DEFAULT ';' .
Expand All @@ -24,7 +27,10 @@ CLASS zcl_excel_writer_csv DEFINITION
CLASS-METHODS set_active_sheet_index_by_name
IMPORTING
!i_worksheet_name TYPE zexcel_worksheets_name .
*"* protected components of class ZCL_EXCEL_WRITER_2007
CLASS-METHODS set_initial_ext_date
IMPORTING
!ip_value TYPE char10 DEFAULT c_default .
*"* protected components of class ZCL_EXCEL_WRITER_CSV
*"* do not include other source files here!!!
PROTECTED SECTION.
*"* private components of class ZCL_EXCEL_WRITER_CSV
Expand All @@ -38,6 +44,7 @@ CLASS zcl_excel_writer_csv DEFINITION
eol TYPE c LENGTH 2 VALUE cl_abap_char_utilities=>cr_lf ##NO_TEXT.
CLASS-DATA worksheet_name TYPE zexcel_worksheets_name .
CLASS-DATA worksheet_index TYPE zexcel_active_worksheet .
CLASS-DATA initial_ext_date TYPE char10 VALUE c_default.

METHODS create
RETURNING
Expand All @@ -53,7 +60,7 @@ ENDCLASS.



CLASS zcl_excel_writer_csv IMPLEMENTATION.
CLASS ZCL_EXCEL_WRITER_CSV IMPLEMENTATION.


METHOD create.
Expand Down Expand Up @@ -220,24 +227,28 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
CASE <fs_sheet_content>-data_type.

WHEN 'd' OR 'D'.
lc_value = zcl_excel_common=>excel_string_to_date( ip_value = <fs_sheet_content>-cell_value ).
TRY.
lv_date = lc_value.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = lv_date
IMPORTING
date_external = lv_tmp
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
IF sy-subrc = 0.
lc_value = lv_tmp.
ENDIF.
IF <fs_sheet_content>-cell_value IS INITIAL AND initial_ext_date <> c_default.
lc_value = initial_ext_date.
ELSE.
lc_value = zcl_excel_common=>excel_string_to_date( ip_value = <fs_sheet_content>-cell_value ).
TRY.
lv_date = lc_value.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = lv_date
IMPORTING
date_external = lv_tmp
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
IF sy-subrc = 0.
lc_value = lv_tmp.
ENDIF.

CATCH cx_sy_conversion_no_number.
CATCH cx_sy_conversion_no_number.

ENDTRY.
ENDTRY.
ENDIF.

WHEN 't' OR 'T'.
lc_value = zcl_excel_common=>excel_string_to_time( ip_value = <fs_sheet_content>-cell_value ).
Expand Down Expand Up @@ -302,6 +313,11 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
ENDMETHOD.


METHOD set_initial_ext_date.
initial_ext_date = ip_value.
ENDMETHOD.


METHOD zif_excel_writer~write_file.
me->excel = io_excel.
ep_file = me->create( ).
Expand Down
23 changes: 23 additions & 0 deletions src/zcl_excel_writer_csv.clas.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
<LANGU>I</LANGU>
<DESCRIPT>Create CSV ; Delimited format</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>C_DEFAULT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Constant for string &apos;DEFAULT&apos;</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>DELIMITER</CMPNAME>
<LANGU>E</LANGU>
Expand Down Expand Up @@ -72,6 +77,11 @@
<LANGU>I</LANGU>
<DESCRIPT>Excel creator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>INITIAL_EXT_DATE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Initial External Date</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_ACTIVE_SHEET_INDEX</CMPNAME>
<LANGU>E</LANGU>
Expand Down Expand Up @@ -122,6 +132,11 @@
<LANGU>I</LANGU>
<DESCRIPT>Set End Of Line character</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>SET_INITIAL_EXT_DATE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set Initial External Date (replacing default &apos;00.00.0000&apos;)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CMPNAME>WORKSHEET_INDEX</CMPNAME>
<LANGU>E</LANGU>
Expand All @@ -143,6 +158,14 @@
<DESCRIPT>Worksheets name</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
<DESCRIPTIONS_SUB>
<SEOSUBCOTX>
<CMPNAME>SET_INITIAL_EXT_DATE</CMPNAME>
<SCONAME>IP_VALUE</SCONAME>
<LANGU>E</LANGU>
<DESCRIPT>Input Value</DESCRIPT>
</SEOSUBCOTX>
</DESCRIPTIONS_SUB>
</asx:values>
</asx:abap>
</abapGit>

0 comments on commit 35425c3

Please sign in to comment.