diff --git a/src/not_cloud/zcl_excel_converter_alv.clas.abap b/src/not_cloud/zcl_excel_converter_alv.clas.abap index c44a423..2679fff 100644 --- a/src/not_cloud/zcl_excel_converter_alv.clas.abap +++ b/src/not_cloud/zcl_excel_converter_alv.clas.abap @@ -152,7 +152,7 @@ CLASS zcl_excel_converter_alv IMPLEMENTATION. ls_color-int = 0. ls_color-inv = 0. ls_color-fontcolor = 'FF000000'. - ls_color-fillcolor = 'FFE5EAF0'. " 229 234 240 gray + ls_color-fillcolor = 'FFDFEBF5'. " 223 235 245 gray INSERT ls_color INTO TABLE wt_colors. ls_color-col = 2. @@ -210,7 +210,7 @@ CLASS zcl_excel_converter_alv IMPLEMENTATION. ls_color-int = 0. ls_color-inv = 0. ls_color-fontcolor = 'FF000000'. " 000 000 000 Black - ls_color-fillcolor = 'FFCEE7FB'. " 206 231 251 light blue + ls_color-fillcolor = 'FFCCE3E3'. " 204 227 227 light blue INSERT ls_color INTO TABLE wt_colors. ls_color-col = 4. @@ -239,7 +239,7 @@ CLASS zcl_excel_converter_alv IMPLEMENTATION. ls_color-int = 0. ls_color-inv = 0. ls_color-fontcolor = 'FF000000'. " 000 000 000 Black - ls_color-fillcolor = 'FFCEF8AE'. " 206 248 174 Green + ls_color-fillcolor = 'FFC6F9C1'. " 198 249 193 Green INSERT ls_color INTO TABLE wt_colors. ls_color-col = 5. @@ -268,7 +268,7 @@ CLASS zcl_excel_converter_alv IMPLEMENTATION. ls_color-int = 0. ls_color-inv = 0. ls_color-fontcolor = 'FF000000'. " 000 000 000 Black - ls_color-fillcolor = 'FFFDBBBC'. " 253 187 188 Red + ls_color-fillcolor = 'FFFF988C'. " 255 152 140 Red INSERT ls_color INTO TABLE wt_colors. ls_color-col = 6. @@ -292,6 +292,20 @@ CLASS zcl_excel_converter_alv IMPLEMENTATION. ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White INSERT ls_color INTO TABLE wt_colors. + ls_color-col = 7. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFF8E5C8'. " 246 229 204 + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 7. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFDBB71'. " 255 186 106 + INSERT ls_color INTO TABLE wt_colors. + ENDMETHOD. diff --git a/src/zcl_excel_drawing.clas.abap b/src/zcl_excel_drawing.clas.abap index 2999649..d1a1f73 100644 --- a/src/zcl_excel_drawing.clas.abap +++ b/src/zcl_excel_drawing.clas.abap @@ -120,6 +120,12 @@ CLASS zcl_excel_drawing DEFINITION METHODS load_chart_attributes IMPORTING VALUE(ip_chart) TYPE REF TO if_ixml_document . + METHODS set_reference_drawing + IMPORTING + !ip_ref TYPE REF TO zcl_excel_drawing. + METHODS get_reference_guid + RETURNING + VALUE(ep_guid) TYPE zexcel_guid. PROTECTED SECTION. PRIVATE SECTION. @@ -141,6 +147,7 @@ CLASS zcl_excel_drawing DEFINITION DATA from_loc TYPE zexcel_drawing_location . DATA to_loc TYPE zexcel_drawing_location . DATA size TYPE zexcel_drawing_size . + DATA reference_drawing TYPE REF TO zcl_excel_drawing. CONSTANTS c_ixml_iid_element TYPE i VALUE 130. ENDCLASS. @@ -1133,4 +1140,12 @@ CLASS ZCL_EXCEL_DRAWING IMPLEMENTATION. me->anchor = lv_anchor. ENDMETHOD. + METHOD set_reference_drawing. + reference_drawing = ip_ref. + ENDMETHOD. + METHOD get_reference_guid. + IF reference_drawing IS BOUND. + ep_guid = reference_drawing->get_guid( ). + ENDIF. + ENDMETHOD. ENDCLASS. diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap index 45f47c6..38f89b3 100644 --- a/src/zcl_excel_writer_2007.clas.abap +++ b/src/zcl_excel_writer_2007.clas.abap @@ -553,6 +553,9 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. WHILE lo_iterator->has_next( ) EQ abap_true. lo_drawing ?= lo_iterator->get_next( ). + "do not add media from drawing with reference + CHECK lo_drawing->get_reference_guid( ) IS INITIAL. + lv_content = lo_drawing->get_media( ). lv_value = lo_drawing->get_media_name( ). CONCATENATE 'xl/media/' lv_value INTO lv_value. @@ -2630,7 +2633,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. lo_drawing TYPE REF TO zcl_excel_drawing. DATA: lv_value TYPE string, - lv_counter TYPE i. + lv_guid TYPE c LENGTH 32. ********************************************************************** * STEP 1: Create [Content_Types].xml into the root of the ZIP @@ -2647,16 +2650,16 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. * STEP 4: Create subnodes " Add sheet Relationship nodes here - lv_counter = 0. lo_drawings = io_worksheet->get_drawings( ). lo_iterator = lo_drawings->get_iterator( ). WHILE lo_iterator->has_next( ) EQ abap_true. lo_drawing ?= lo_iterator->get_next( ). - ADD 1 TO lv_counter. - lv_value = lv_counter. - CONDENSE lv_value. - CONCATENATE 'rId' lv_value INTO lv_value. + CHECK lo_drawing->get_reference_guid( ) IS INITIAL. + + lv_guid = lo_drawing->get_guid( ). + + CONCATENATE 'rId' lv_guid INTO lv_value. lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship parent = lo_document ). @@ -2848,7 +2851,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. lv_row TYPE string, " zexcel_cell_row. lv_col_offset TYPE string, lv_row_offset TYPE string, - lv_value TYPE string. + lv_value TYPE string, + lv_guid TYPE c LENGTH 32. ls_position = io_drawing->get_position( ). @@ -2980,9 +2984,13 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. lo_element_pic->append_child( new_child = lo_element ). * blipFill - lv_value = ip_index. - CONDENSE lv_value. - CONCATENATE 'rId' lv_value INTO lv_value. + "reference drawing + IF io_drawing->get_reference_guid( ) IS INITIAL. + lv_guid = io_drawing->get_guid( ). + ELSE. + lv_guid = io_drawing->get_reference_guid( ). + ENDIF. + CONCATENATE 'rId' lv_guid INTO lv_value. lo_element = io_document->create_simple_element( name = lc_xml_node_blipfill parent = io_document ).