Skip to content

Commit c8ad542

Browse files
authored
Merge pull request #5 from abap2UI5-addons/claude/abap-code-redundancies-z0mndd
Refactor to use utility methods for table creation and XLSX export
2 parents c56f774 + 19364d6 commit c8ad542

5 files changed

Lines changed: 23 additions & 36 deletions

src/01/z2ui5_cl_tcl_xlsx_api.clas.abap

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ CLASS z2ui5_cl_tcl_xlsx_api DEFINITION
1717
CLASS-METHODS get_xlsx_by_table
1818
IMPORTING
1919
val TYPE any
20+
title TYPE clike DEFAULT `Internal table`
21+
settings TYPE ty_s_xlsx_settings OPTIONAL
22+
fieldcatalog TYPE ty_t_xlsx OPTIONAL
2023
RETURNING
2124
VALUE(result) TYPE xstring.
2225

@@ -44,11 +47,17 @@ CLASS z2ui5_cl_tcl_xlsx_api IMPLEMENTATION.
4447

4548
" Get active sheet
4649
lo_worksheet = lo_excel->get_active_worksheet( ).
47-
lo_worksheet->set_title( 'Internal table' ).
50+
lo_worksheet->set_title( CONV #( title ) ).
4851

49-
lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = val ).
52+
lt_field_catalog = fieldcatalog.
53+
IF lt_field_catalog IS INITIAL.
54+
lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = val ).
55+
ENDIF.
5056

51-
ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5.
57+
ls_table_settings = settings.
58+
IF ls_table_settings IS INITIAL.
59+
ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5.
60+
ENDIF.
5261

5362
lo_worksheet->bind_table( ip_table = val
5463
is_table_settings = ls_table_settings

src/z2ui5_cl_tcl_app_03.clas.abap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ CLASS z2ui5_cl_tcl_app_03 IMPLEMENTATION.
100100

101101
FIELD-SYMBOLS <tab2> TYPE STANDARD TABLE.
102102

103-
CREATE DATA mt_tab TYPE STANDARD TABLE OF (ms_app-db_table).
103+
mt_tab = z2ui5_cl_util=>rtti_create_tab_by_name( ms_app-db_table ).
104104
ASSIGN mt_tab->* TO <tab2>.
105105

106106
SELECT *
@@ -118,7 +118,7 @@ CLASS z2ui5_cl_tcl_app_03 IMPLEMENTATION.
118118

119119
WHEN `PREVIEW`.
120120

121-
CREATE DATA mt_tab TYPE STANDARD TABLE OF (ms_app-db_table).
121+
mt_tab = z2ui5_cl_util=>rtti_create_tab_by_name( ms_app-db_table ).
122122
ASSIGN mt_tab->* TO <tab2>.
123123

124124
SELECT *

src/z2ui5_cl_tcl_app_04.clas.abap

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,8 @@ CLASS Z2UI5_CL_TCL_APP_04 IMPLEMENTATION.
4444

4545
WHEN 'UPLOAD'.
4646

47-
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
48-
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
49-
50-
DATA(lv_data2) = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
51-
DATA(lv_ready) = z2ui5_cl_util=>conv_get_string_by_xstring( lv_data2 ).
47+
DATA(lv_data) = z2ui5_cl_util=>conv_get_xstring_by_data_uri( mv_value ).
48+
DATA(lv_ready) = z2ui5_cl_util=>conv_get_string_by_xstring( lv_data ).
5249

5350
mr_table = z2ui5_cl_util=>itab_get_itab_by_csv( lv_ready ).
5451
client->message_box_display( `CSV loaded to table` ).

src/z2ui5_cl_tcl_app_05.clas.abap

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,7 @@ CLASS Z2UI5_CL_TCL_APP_05 IMPLEMENTATION.
4141

4242
WHEN 'UPLOAD'.
4343

44-
SPLIT mv_value AT `;` INTO DATA(lv_dummy) DATA(lv_data).
45-
SPLIT lv_data AT `,` INTO lv_dummy lv_data.
46-
47-
DATA(lv_xdata) = z2ui5_cl_util=>conv_decode_x_base64( lv_data ).
44+
DATA(lv_xdata) = z2ui5_cl_util=>conv_get_xstring_by_data_uri( mv_value ).
4845
mr_table = z2ui5_cl_tcl_xlsx_api=>get_table_by_xlsx( lv_xdata ).
4946
client->message_box_display( `XLSX loaded to table` ).
5047

src/z2ui5_cl_tcl_app_06.clas.abap

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,7 @@ CLASS Z2UI5_CL_TCL_APP_06 IMPLEMENTATION.
7070

7171
TRY.
7272

73-
DATA lr_tab TYPE REF TO data.
74-
CREATE DATA lr_tab TYPE STANDARD TABLE OF (ms_draft-table_name).
73+
DATA(lr_tab) = z2ui5_cl_util=>rtti_create_tab_by_name( ms_draft-table_name ).
7574
FIELD-SYMBOLS <tab> TYPE table.
7675
ASSIGN lr_tab->* TO <tab>.
7776

@@ -90,25 +89,10 @@ CLASS Z2UI5_CL_TCL_APP_06 IMPLEMENTATION.
9089

9190
ENDIF.
9291

93-
DATA: lo_excel TYPE REF TO zcl_excel,
94-
lo_writer TYPE REF TO zif_excel_writer,
95-
lo_worksheet TYPE REF TO zcl_excel_worksheet.
96-
97-
" Creates active sheet
98-
CREATE OBJECT lo_excel.
99-
100-
" Get active sheet
101-
lo_worksheet = lo_excel->get_active_worksheet( ).
102-
lo_worksheet->set_title( CONV #( ms_draft-t_config_head[ 1 ]-title ) ).
103-
104-
lo_worksheet->bind_table( ip_table = <tab>
105-
is_table_settings = ms_draft-t_config[ 1 ]
106-
it_field_catalog = ms_draft-t_fcat ).
107-
108-
lo_worksheet->freeze_panes( ip_num_rows = 1 ).
109-
110-
CREATE OBJECT lo_writer TYPE zcl_excel_writer_2007.
111-
DATA(lv_result) = lo_writer->write_file( lo_excel ).
92+
DATA(lv_result) = z2ui5_cl_tcl_xlsx_api=>get_xlsx_by_table( val = <tab>
93+
title = ms_draft-t_config_head[ 1 ]-title
94+
settings = ms_draft-t_config[ 1 ]
95+
fieldcatalog = ms_draft-t_fcat ).
11296
mv_file = z2ui5_cl_util=>conv_encode_x_base64( lv_result ).
11397

11498
ms_draft-file_rows = lines( <tab> ).
@@ -142,7 +126,7 @@ CLASS Z2UI5_CL_TCL_APP_06 IMPLEMENTATION.
142126
ms_draft-table_name = CAST z2ui5_cl_pop_input_val( lo_prev )->result( )-value.
143127
ms_draft-check_load_pressed = abap_true.
144128

145-
CREATE DATA ms_draft-t_tab TYPE STANDARD TABLE OF (ms_draft-table_name).
129+
ms_draft-t_tab = z2ui5_cl_util=>rtti_create_tab_by_name( ms_draft-table_name ).
146130
FIELD-SYMBOLS <tab> TYPE table.
147131
ASSIGN ms_draft-t_tab->* TO <tab>.
148132

0 commit comments

Comments
 (0)