From b58ae716baf8e351b753a5039e6c4855df50bce0 Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Wed, 8 Jun 2011 19:19:21 +0000 Subject: [PATCH] Bind table now supports header and totals styles. Thanks to Alessandro Iannacci git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@196 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk | 38 +++++++++++++++++++--------- ZA2X/TABL/ZEXCEL_S_FIELDCATALOG.slnk | 23 +++++++++-------- 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk index 6491dc9..f74198e 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk @@ -2599,9 +2599,9 @@ endmethod. - - - method BIND_TABLE. + + + METHOD bind_table. DATA: lv_row_int TYPE zexcel_cell_row, @@ -2625,8 +2625,8 @@ endmethod. FIELD-SYMBOLS: <ls_field_catalog> TYPE zexcel_s_fieldcatalog, <ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog, - <fs_table_line> TYPE ANY, - <fs_fldval> TYPE ANY. + <fs_table_line> TYPE any, + <fs_fldval> TYPE any. ls_settings = is_table_settings. @@ -2698,9 +2698,16 @@ endmethod. ENDIF. ENDWHILE. " First of all write column header - me->set_cell( ip_column = lv_column_alpha - ip_row = lv_row_int - ip_value = lv_value ). + IF <ls_field_catalog>-style_header IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_value + ip_style = <ls_field_catalog>-style_header ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_value ). + ENDIF. ADD 1 TO lv_row_int. LOOP AT ip_table ASSIGNING <fs_table_line>. @@ -2727,9 +2734,16 @@ endmethod. " totals IF <ls_field_catalog>-totals_function IS NOT INITIAL. lv_formula = lo_table->get_totals_formula( ip_column = <ls_field_catalog>-scrtext_m ip_function = <ls_field_catalog>-totals_function ). - me->set_cell( ip_column = lv_column_alpha - ip_row = lv_row_int - ip_formula = lv_formula ). + IF <ls_field_catalog>-style IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = lv_formula + ip_style = <ls_field_catalog>-style ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = lv_formula ). + ENDIF. ENDIF. lv_row_int = ls_settings-top_left_row. @@ -2754,7 +2768,7 @@ endmethod. es_table_settings-bottom_right_row = ls_settings-top_left_row + lv_rows + 1. "Last rows -endmethod. +ENDMETHOD. method CALCULATE_COLUMN_WIDTHS. diff --git a/ZA2X/TABL/ZEXCEL_S_FIELDCATALOG.slnk b/ZA2X/TABL/ZEXCEL_S_FIELDCATALOG.slnk index e8f4676..ce60db4 100644 --- a/ZA2X/TABL/ZEXCEL_S_FIELDCATALOG.slnk +++ b/ZA2X/TABL/ZEXCEL_S_FIELDCATALOG.slnk @@ -1,14 +1,15 @@ - + - - - - - - - - - - + + + + + + + + + + +