diff --git a/ZA2X/CLAS/ZCL_EXCEL.slnk b/ZA2X/CLAS/ZCL_EXCEL.slnk index db60250..04df9ae 100644 --- a/ZA2X/CLAS/ZCL_EXCEL.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL.slnk @@ -1,8 +1,8 @@ - - - + + + *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -125,6 +125,7 @@ ENDCLASS. "zcl_Tc_Excel + @@ -517,6 +518,12 @@ ENDMETHOD. endmethod. + + + method GET_THEME. + eo_theme = theme. +endmethod. + method GET_WORKSHEETS_ITERATOR. @@ -628,6 +635,12 @@ ENDMETHOD. me->default_style = ip_style. endmethod. + + + method SET_THEME. + theme = io_theme. +endmethod. + diff --git a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk index ddaea23..2fb7065 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk @@ -1,6 +1,6 @@ - - - - - - - - - - - - - - - - - - *"* local class implementation for public class @@ -1766,6 +1766,18 @@ ENDMETHOD. ENDMETHOD. + + + + + method load_theme. + data theme type ref to zcl_excel_theme. + data: lo_theme_xml type ref to if_ixml_document. + create object theme. + lo_theme_xml = me->get_ixml_from_zip_archive( iv_path ). + theme->read_theme( io_theme_xml = lo_theme_xml ). + ip_excel->set_theme( io_theme = theme ). +endmethod. @@ -1810,6 +1822,7 @@ ENDMETHOD. lcv_worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', lcv_styles TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', lcv_vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', "#EC NEEDED for future incorporation of XLSM-reader + lcv_theme TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', *--------------------------------------------------------------------* * #232: Read worksheetstate hidden/veryHidden - begin data declarations *--------------------------------------------------------------------* @@ -1969,7 +1982,14 @@ ENDMETHOD. ip_excel = io_excel ). me->load_dxf_styles( iv_path = lv_full_filename io_excel = io_excel ). - + when lcv_theme. + CONCATENATE lv_path ls_relationship-target + INTO lv_full_filename. + me->load_theme( + exporting + iv_path = lv_full_filename + ip_excel = io_excel " Excel creator + ). WHEN OTHERS. ENDCASE. diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME.slnk new file mode 100644 index 0000000..7979d28 --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME.slnk @@ -0,0 +1,200 @@ + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + + + + method constructor. + create object elements. + create object objectdefaults. + create object extclrschemelst. + create object extlst. + endmethod. "class_constructor + + + + method read_theme. + data: lo_node_theme type ref to if_ixml_element. + data: lo_theme_children type ref to if_ixml_node_list. + data: lo_theme_iterator type ref to if_ixml_node_iterator. + data: lo_theme_element type ref to if_ixml_element. + check io_theme_xml is not initial. + + lo_node_theme = io_theme_xml->get_root_element( )." find_from_name( name = c_theme ). + if lo_node_theme is bound. + name = lo_node_theme->get_attribute( name = c_theme_name ). + xmls_a = lo_node_theme->get_attribute( name = c_theme_xmlns ). + lo_theme_children = lo_node_theme->get_children( ). + lo_theme_iterator = lo_theme_children->create_iterator( ). + lo_theme_element ?= lo_theme_iterator->get_next( ). + while lo_theme_element is bound. + case lo_theme_element->get_name( ). + when c_theme_elements. + elements->load( io_elements = lo_theme_element ). + when c_theme_object_def. + objectdefaults->load( io_object_def = lo_theme_element ). + when c_theme_extra_color. + extclrschemelst->load( io_extra_color = lo_theme_element ). + when c_theme_extlst. + extlst->load( io_extlst = lo_theme_element ). + endcase. + lo_theme_element ?= lo_theme_iterator->get_next( ). + endwhile. + endif. + endmethod. "read_theme + + + + + + + method set_color. + elements->color_scheme->set_color( + exporting + iv_type = iv_type + iv_srgb = iv_srgb + iv_syscolorname = iv_syscolorname + iv_syscolorlast = iv_syscolorlast + ). + endmethod. "set_color + + + + method set_color_scheme_name. + elements->color_scheme->set_name( iv_name = iv_name ). + endmethod. "set_color_scheme_name + + + + + + + + method set_cs_font. + elements->font_scheme->modify_cs_font( + exporting + iv_type = iv_type + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "set_cs_font + + + + + + + + method set_ea_font. + elements->font_scheme->modify_ea_font( + exporting + iv_type = iv_type + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "set_ea_font + + + + + + method set_font. + elements->font_scheme->modify_font( + exporting + iv_type = iv_type + iv_script = iv_script + iv_typeface = iv_typeface + ). + endmethod. "set_font + + + + method set_font_scheme_name. + elements->font_scheme->set_name( iv_name = iv_name ). + endmethod. "set_font_scheme_name + + + + + + + + method set_latin_font. + elements->font_scheme->modify_latin_font( + exporting + iv_type = iv_type + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "set_latin_font + + + + method write_theme. + data: lo_ixml type ref to if_ixml, + lo_element_root type ref to if_ixml_element, + lo_encoding type ref to if_ixml_encoding. + data: lo_streamfactory TYPE REF TO if_ixml_stream_factory. + data: lo_ostream TYPE REF TO if_ixml_ostream. + data: lo_renderer TYPE REF TO if_ixml_renderer. + data: lo_document type ref to if_ixml_document. + lo_ixml = cl_ixml=>create( ). + + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + lo_document->set_namespace_prefix( prefix = 'a' ). + + lo_element_root = lo_document->create_simple_element_ns( prefix = c_theme_prefix + name = c_theme + parent = lo_document + ). + lo_element_root->set_attribute_ns( name = c_theme_xmlns + value = c_theme_xmlns_val ). + lo_element_root->set_attribute_ns( name = c_theme_name + value = name ). + + elements->build_xml( io_document = lo_document ). + objectdefaults->build_xml( io_document = lo_document ). + extclrschemelst->build_xml( io_document = lo_document ). + extlst->build_xml( io_document = lo_document ). + + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = rv_xstring ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + + endmethod. "write_theme + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_COLOR_SCHEME.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_COLOR_SCHEME.slnk new file mode 100644 index 0000000..bda9a95 --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_COLOR_SCHEME.slnk @@ -0,0 +1,427 @@ + + + + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method build_xml. + data: lo_scheme_element type ref to if_ixml_element. + data: lo_color type ref to if_ixml_element. + data: lo_syscolor type ref to if_ixml_element. + data: lo_srgb type ref to if_ixml_element. + data: lo_elements type ref to if_ixml_element. + + check io_document is bound. + lo_elements ?= io_document->find_from_name_ns( name = zcl_excel_theme=>c_theme_elements ). + if lo_elements is bound. + lo_scheme_element ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = zcl_excel_theme_elements=>c_color_scheme + parent = lo_elements ). + lo_scheme_element->set_attribute( name = c_name value = name ). + + "! Adding colors to scheme + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = c_dark1 + parent = lo_scheme_element ). + if lo_color is bound. + if dark1-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = dark1-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = dark1-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = dark1-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_light1 + parent = lo_scheme_element ). + if lo_color is bound. + if light1-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = light1-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = light1-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = light1-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_dark2 + parent = lo_scheme_element ). + if lo_color is bound. + if dark2-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = dark2-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = dark2-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = dark2-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_light2 + parent = lo_scheme_element ). + if lo_color is bound. + if light2-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = light2-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = light2-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = light2-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent1 + parent = lo_scheme_element ). + if lo_color is bound. + if accent1-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent1-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent1-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent1-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent2 + parent = lo_scheme_element ). + if lo_color is bound. + if accent2-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent2-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent2-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent2-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent3 + parent = lo_scheme_element ). + if lo_color is bound. + if accent3-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent3-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent3-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent3-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent4 + parent = lo_scheme_element ). + if lo_color is bound. + if accent4-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent4-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent4-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent4-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent5 + parent = lo_scheme_element ). + if lo_color is bound. + if accent5-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent5-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent5-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent5-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_accent6 + parent = lo_scheme_element ). + if lo_color is bound. + if accent6-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = accent6-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = accent6-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = accent6-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_hlink + parent = lo_scheme_element ). + if lo_color is bound. + if hlink-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = hlink-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = hlink-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = hlink-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_folhlink + parent = lo_scheme_element ). + if lo_color is bound. + if folhlink-srgb is not initial. + lo_srgb ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_srgbcolor + parent = lo_color ). + lo_srgb->set_attribute( name = c_val value = folhlink-srgb ). + else. + lo_syscolor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_syscolor + parent = lo_color ). + lo_syscolor->set_attribute( name = c_val value = folhlink-syscolor-val ). + lo_syscolor->set_attribute( name = c_lastclr value = folhlink-syscolor-lastclr ). + endif. + clear: lo_color, lo_srgb, lo_syscolor. + endif. + + + endif. + endmethod. "build_xml + + + method constructor. + set_defaults( ). + endmethod. "constructor + + + + + method get_color. + data: lo_color_children type ref to if_ixml_node_list. + data: lo_color_iterator type ref to if_ixml_node_iterator. + data: lo_color_element type ref to if_ixml_element. + check io_object is not initial. + + lo_color_children = io_object->get_children( ). + lo_color_iterator = lo_color_children->create_iterator( ). + lo_color_element ?= lo_color_iterator->get_next( ). + if lo_color_element is bound. + case lo_color_element->get_name( ). + when c_srgbcolor. + rv_color-srgb = lo_color_element->get_attribute( name = c_val ). + when c_syscolor. + rv_color-syscolor-val = lo_color_element->get_attribute( name = c_val ). + rv_color-syscolor-lastclr = lo_color_element->get_attribute( name = c_lastclr ). + endcase. + endif. + endmethod. "get_color + + + + method load. + data: lo_scheme_children type ref to if_ixml_node_list. + data: lo_scheme_iterator type ref to if_ixml_node_iterator. + data: lo_scheme_element type ref to if_ixml_element. + check io_color_scheme is not initial. + + name = io_color_scheme->get_attribute( name = c_name ). + lo_scheme_children = io_color_scheme->get_children( ). + lo_scheme_iterator = lo_scheme_children->create_iterator( ). + lo_scheme_element ?= lo_scheme_iterator->get_next( ). + while lo_scheme_element is bound. + case lo_scheme_element->get_name( ). + when c_dark1. + dark1 = me->get_color( lo_scheme_element ). + when c_dark2. + dark2 = me->get_color( lo_scheme_element ). + when c_light1. + light1 = me->get_color( lo_scheme_element ). + when c_light2. + light2 = me->get_color( lo_scheme_element ). + when c_accent1. + accent1 = me->get_color( lo_scheme_element ). + when c_accent2. + accent2 = me->get_color( lo_scheme_element ). + when c_accent3. + accent3 = me->get_color( lo_scheme_element ). + when c_accent4. + accent4 = me->get_color( lo_scheme_element ). + when c_accent5. + accent5 = me->get_color( lo_scheme_element ). + when c_accent6. + accent6 = me->get_color( lo_scheme_element ). + when c_hlink. + hlink = me->get_color( lo_scheme_element ). + when c_folhlink. + folhlink = me->get_color( lo_scheme_element ). + endcase. + lo_scheme_element ?= lo_scheme_iterator->get_next( ). + endwhile. + endmethod. "load + + + + + + + method set_color. + field-symbols: <color> type t_color. + check iv_type is not initial. + check iv_srgb is not initial or iv_syscolorname is not initial. + case iv_type. + when c_dark1. + assign dark1 to <color>. + when c_dark2. + assign dark2 to <color>. + when c_light1. + assign light1 to <color>. + when c_light2. + assign light2 to <color>. + when c_accent1. + assign accent1 to <color>. + when c_accent2. + assign accent2 to <color>. + when c_accent3. + assign accent3 to <color>. + when c_accent4. + assign accent4 to <color>. + when c_accent5. + assign accent5 to <color>. + when c_accent6. + assign accent6 to <color>. + when c_hlink. + assign hlink to <color>. + when c_folhlink. + assign folhlink to <color>. + endcase. + check <color> is assigned. + clear <color>. + if iv_srgb is not initial. + <color>-srgb = iv_srgb. + else. + <color>-syscolor-val = iv_syscolorname. + if iv_syscolorlast is not initial. + <color>-syscolor-lastclr = iv_syscolorlast. + else. + <color>-syscolor-lastclr = '000000'. + endif. + endif. + endmethod. "set_color + + + method set_defaults. + name = 'Office'. + dark1-syscolor-val = 'windowText'. + dark1-syscolor-lastclr = '000000'. + light1-syscolor-val = 'window'. + light1-syscolor-lastclr = 'FFFFFF'. + dark2-srgb = '44546A'. + light2-srgb = 'E7E6E6'. + accent1-srgb = '5B9BD5'. + accent2-srgb = 'ED7D31'. + accent3-srgb = 'A5A5A5'. + accent4-srgb = 'FFC000'. + accent5-srgb = '4472C4'. + accent6-srgb = '70AD47'. + hlink-srgb = '0563C1'. + folhlink-srgb = '954F72'. + endmethod. "set_defaults + + + + method set_name. + if strlen( iv_name ) > 50. + name = iv_name(50). + else. + name = iv_name. + endif. + endmethod. "set_name + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_ECLRSCHEMELST.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_ECLRSCHEMELST.slnk new file mode 100644 index 0000000..f186534 --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_ECLRSCHEMELST.slnk @@ -0,0 +1,40 @@ + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + method build_xml. + data: lo_theme_element type ref to if_ixml_element. + data: lo_theme type ref to if_ixml_element. + data: lo_theme_objdef type ref to if_ixml_element. + check io_document is bound. + lo_theme ?= io_document->get_root_element( ). + check lo_theme is bound. + if extracolor is initial. + lo_theme_objdef ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = zcl_excel_theme=>c_theme_extra_color + parent = lo_theme ). + + else. + lo_theme->append_child( new_child = extracolor ). + endif. + + endmethod. "build_xml + + + + method load. + "! so far copy only existing values + extracolor ?= io_extra_color. + endmethod. "load + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_ELEMENTS.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_ELEMENTS.slnk new file mode 100644 index 0000000..14e5aa6 --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_ELEMENTS.slnk @@ -0,0 +1,69 @@ + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + + + + + + + method build_xml. + data: lo_theme_element type ref to if_ixml_element. + data: lo_theme type ref to if_ixml_element. + check io_document is bound. + lo_theme ?= io_document->get_root_element( ).. + if lo_theme is bound. + lo_theme_element ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = c_theme_elements + parent = lo_theme ). + + color_scheme->build_xml( io_document = io_document ). + font_scheme->build_xml( io_document = io_document ). + fmt_scheme->build_xml( io_document = io_document ). + endif. + endmethod. + + + method constructor. + create object color_scheme. + create object font_scheme. + create object fmt_scheme. + endmethod. "constructor + + + + method load. + data: lo_elements_children type ref to if_ixml_node_list. + data: lo_elements_iterator type ref to if_ixml_node_iterator. + data: lo_elements_element type ref to if_ixml_element. + check io_elements is not initial. + + lo_elements_children = io_elements->get_children( ). + lo_elements_iterator = lo_elements_children->create_iterator( ). + lo_elements_element ?= lo_elements_iterator->get_next( ). + while lo_elements_element is bound. + case lo_elements_element->get_name( ). + when c_color_scheme. + color_scheme->load( io_color_scheme = lo_elements_element ). + when c_font_scheme. + font_scheme->load( io_font_scheme = lo_elements_element ). + when c_fmt_scheme. + fmt_scheme->load( io_fmt_scheme = lo_elements_element ). + endcase. + lo_elements_element ?= lo_elements_iterator->get_next( ). + endwhile. + endmethod. "load + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_EXTLST.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_EXTLST.slnk new file mode 100644 index 0000000..0181bdb --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_EXTLST.slnk @@ -0,0 +1,40 @@ + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + method build_xml. + data: lo_theme_element type ref to if_ixml_element. + data: lo_theme type ref to if_ixml_element. + data: lo_theme_objdef type ref to if_ixml_element. + check io_document is bound. + + lo_theme ?= io_document->get_root_element( ). + check lo_theme is bound. + if extlst is initial. + lo_theme_objdef ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = zcl_excel_theme=>c_theme_extlst + parent = lo_theme ). + + else. + lo_theme->append_child( new_child = extlst ). + endif. + endmethod. "build_xml + + + + method load. + "! so far copy only existing values + extlst ?= io_extlst. + endmethod. "load + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_FMT_SCHEME.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_FMT_SCHEME.slnk new file mode 100644 index 0000000..1d38194 --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_FMT_SCHEME.slnk @@ -0,0 +1,186 @@ + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + method build_xml. + data: lo_xml type ref to cl_xml_document. + data: lo_node type ref to if_ixml_node. + data: default_fmt_scheme type string. + data: lo_scheme_element type ref to if_ixml_element. + data: lo_elements type ref to if_ixml_element. + check io_document is bound. + lo_elements ?= io_document->find_from_name_ns( name = zcl_excel_theme=>c_theme_elements ). + if lo_elements is bound. + + if fmt_scheme is initial. + create object lo_xml. + lo_xml->parse_string( get_default_fmt( ) ). + lo_node = lo_xml->get_first_node( ). + lo_elements->append_child( new_child = lo_node ). + else. + lo_elements->append_child( new_child = fmt_scheme ). + endif. + endif. + endmethod. "build_xml + + + + method get_default_fmt. + concatenate '<a:fmtScheme name="Office">' + ' <a:fillStyleLst>' + ' <a:solidFill>' + ' <a:schemeClr val="phClr"/>' + ' </a:solidFill>' + ' <a:gradFill rotWithShape="1">' + ' <a:gsLst>' + ' <a:gs pos="0">' + ' <a:schemeClr val="phClr">' + ' <a:lumMod val="110000"/>' + ' <a:satMod val="105000"/>' + ' <a:tint val="67000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="50000">' + ' <a:schemeClr val="phClr">' + ' <a:lumMod val="105000"/>' + ' <a:satMod val="103000"/>' + ' <a:tint val="73000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="100000">' + ' <a:schemeClr val="phClr">' + ' <a:lumMod val="105000"/>' + ' <a:satMod val="109000"/>' + ' <a:tint val="81000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' </a:gsLst>' + ' <a:lin ang="5400000" scaled="0"/>' + ' </a:gradFill>' + ' <a:gradFill rotWithShape="1">' + ' <a:gsLst>' + ' <a:gs pos="0">' + ' <a:schemeClr val="phClr">' + ' <a:satMod val="103000"/>' + ' <a:lumMod val="102000"/>' + ' <a:tint val="94000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="50000">' + ' <a:schemeClr val="phClr">' + ' <a:satMod val="110000"/>' + ' <a:lumMod val="100000"/>' + ' <a:shade val="100000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="100000">' + ' <a:schemeClr val="phClr">' + ' <a:lumMod val="99000"/>' + ' <a:satMod val="120000"/>' + ' <a:shade val="78000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' </a:gsLst>' + ' <a:lin ang="5400000" scaled="0"/>' + ' </a:gradFill>' + ' </a:fillStyleLst>' + ' <a:lnStyleLst>' + ' <a:ln w="6350" cap="flat" cmpd="sng" algn="ctr">' + ' <a:solidFill>' + ' <a:schemeClr val="phClr"/>' + ' </a:solidFill>' + ' <a:prstDash val="solid"/>' + ' <a:miter lim="800000"/>' + ' </a:ln>' + ' <a:ln w="12700" cap="flat" cmpd="sng" algn="ctr">' + ' <a:solidFill>' + ' <a:schemeClr val="phClr"/>' + ' </a:solidFill>' + ' <a:prstDash val="solid"/>' + ' <a:miter lim="800000"/>' + ' </a:ln>' + ' <a:ln w="19050" cap="flat" cmpd="sng" algn="ctr">' + ' <a:solidFill>' + ' <a:schemeClr val="phClr"/>' + ' </a:solidFill>' + ' <a:prstDash val="solid"/>' + ' <a:miter lim="800000"/>' + ' </a:ln>' + ' </a:lnStyleLst>' + ' <a:effectStyleLst>' + ' <a:effectStyle>' + ' <a:effectLst/>' + ' </a:effectStyle>' + ' <a:effectStyle>' + ' <a:effectLst/>' + ' </a:effectStyle>' + ' <a:effectStyle>' + ' <a:effectLst>' + ' <a:outerShdw blurRad="57150" dist="19050" dir="5400000" algn="ctr" rotWithShape="0">' + ' <a:srgbClr val="000000">' + ' <a:alpha val="63000"/>' + ' </a:srgbClr>' + ' </a:outerShdw>' + ' </a:effectLst>' + ' </a:effectStyle>' + ' </a:effectStyleLst>' + ' <a:bgFillStyleLst>' + ' <a:solidFill>' + ' <a:schemeClr val="phClr"/>' + ' </a:solidFill>' + ' <a:solidFill>' + ' <a:schemeClr val="phClr">' + ' <a:tint val="95000"/>' + ' <a:satMod val="170000"/>' + ' </a:schemeClr>' + ' </a:solidFill>' + ' <a:gradFill rotWithShape="1">' + ' <a:gsLst>' + ' <a:gs pos="0">' + ' <a:schemeClr val="phClr">' + ' <a:tint val="93000"/>' + ' <a:satMod val="150000"/>' + ' <a:shade val="98000"/>' + ' <a:lumMod val="102000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="50000">' + ' <a:schemeClr val="phClr">' + ' <a:tint val="98000"/>' + ' <a:satMod val="130000"/>' + ' <a:shade val="90000"/>' + ' <a:lumMod val="103000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' <a:gs pos="100000">' + ' <a:schemeClr val="phClr">' + ' <a:shade val="63000"/>' + ' <a:satMod val="120000"/>' + ' </a:schemeClr>' + ' </a:gs>' + ' </a:gsLst>' + ' <a:lin ang="5400000" scaled="0"/>' + ' </a:gradFill>' + ' </a:bgFillStyleLst>' + ' </a:fmtScheme>' + into rv_string . + endmethod. "get_default_fmt + + + + method load. + "! so far copy only existing values + fmt_scheme ?= io_fmt_scheme. + endmethod. "load + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_FONT_SCHEME.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_FONT_SCHEME.slnk new file mode 100644 index 0000000..f87d3fa --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_FONT_SCHEME.slnk @@ -0,0 +1,479 @@ + + + + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + + + + + + + + + + + + + + method build_xml. + data: lo_scheme_element type ref to if_ixml_element. + data: lo_font type ref to if_ixml_element. + data: lo_latin type ref to if_ixml_element. + data: lo_ea type ref to if_ixml_element. + data: lo_cs type ref to if_ixml_element. + data: lo_major type ref to if_ixml_element. + data: lo_minor type ref to if_ixml_element. + data: lo_elements type ref to if_ixml_element. + field-symbols: <font> type t_font. + check io_document is bound. + lo_elements ?= io_document->find_from_name_ns( name = zcl_excel_theme=>c_theme_elements ). + if lo_elements is bound. + lo_scheme_element ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = zcl_excel_theme_elements=>c_font_scheme + parent = lo_elements ). + lo_scheme_element->set_attribute( name = c_name value = font_scheme-name ). + + lo_major ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_major + parent = lo_scheme_element ). + if lo_major is bound. + lo_latin ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_latin + parent = lo_major ). + lo_latin->set_attribute( name = c_typeface value = font_scheme-major-latin-typeface ). + if font_scheme-major-latin-panose is not initial. + lo_latin->set_attribute( name = c_panose value = font_scheme-major-latin-panose ). + endif. + if font_scheme-major-latin-pitchfamily is not initial. + lo_latin->set_attribute( name = c_pitchfamily value = font_scheme-major-latin-pitchfamily ). + endif. + if font_scheme-major-latin-charset is not initial. + lo_latin->set_attribute( name = c_charset value = font_scheme-major-latin-charset ). + endif. + + lo_ea ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_ea + parent = lo_major ). + lo_ea->set_attribute( name = c_typeface value = font_scheme-major-ea-typeface ). + if font_scheme-major-ea-panose is not initial. + lo_ea->set_attribute( name = c_panose value = font_scheme-major-ea-panose ). + endif. + if font_scheme-major-ea-pitchfamily is not initial. + lo_ea->set_attribute( name = c_pitchfamily value = font_scheme-major-ea-pitchfamily ). + endif. + if font_scheme-major-ea-charset is not initial. + lo_ea->set_attribute( name = c_charset value = font_scheme-major-ea-charset ). + endif. + + lo_cs ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_cs + parent = lo_major ). + lo_cs->set_attribute( name = c_typeface value = font_scheme-major-cs-typeface ). + if font_scheme-major-cs-panose is not initial. + lo_cs->set_attribute( name = c_panose value = font_scheme-major-cs-panose ). + endif. + if font_scheme-major-cs-pitchfamily is not initial. + lo_cs->set_attribute( name = c_pitchfamily value = font_scheme-major-cs-pitchfamily ). + endif. + if font_scheme-major-cs-charset is not initial. + lo_cs->set_attribute( name = c_charset value = font_scheme-major-cs-charset ). + endif. + + loop at font_scheme-major-fonts assigning <font>. + if <font>-script is not initial and <font>-typeface is not initial. + clear lo_font. + lo_font ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_font + parent = lo_major ). + lo_font->set_attribute( name = c_script value = <font>-script ). + lo_font->set_attribute( name = c_typeface value = <font>-typeface ). + endif. + endloop. + clear: lo_latin, lo_ea, lo_cs, lo_font. + endif. + + lo_minor ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_minor + parent = lo_scheme_element ). + if lo_minor is bound. + lo_latin ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_latin + parent = lo_minor ). + lo_latin->set_attribute( name = c_typeface value = font_scheme-minor-latin-typeface ). + if font_scheme-minor-latin-panose is not initial. + lo_latin->set_attribute( name = c_panose value = font_scheme-minor-latin-panose ). + endif. + if font_scheme-minor-latin-pitchfamily is not initial. + lo_latin->set_attribute( name = c_pitchfamily value = font_scheme-minor-latin-pitchfamily ). + endif. + if font_scheme-minor-latin-charset is not initial. + lo_latin->set_attribute( name = c_charset value = font_scheme-minor-latin-charset ). + endif. + + lo_ea ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_ea + parent = lo_minor ). + lo_ea->set_attribute( name = c_typeface value = font_scheme-minor-ea-typeface ). + if font_scheme-minor-ea-panose is not initial. + lo_ea->set_attribute( name = c_panose value = font_scheme-minor-ea-panose ). + endif. + if font_scheme-minor-ea-pitchfamily is not initial. + lo_ea->set_attribute( name = c_pitchfamily value = font_scheme-minor-ea-pitchfamily ). + endif. + if font_scheme-minor-ea-charset is not initial. + lo_ea->set_attribute( name = c_charset value = font_scheme-minor-ea-charset ). + endif. + + lo_cs ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_cs + parent = lo_minor ). + lo_cs->set_attribute( name = c_typeface value = font_scheme-minor-cs-typeface ). + if font_scheme-minor-cs-panose is not initial. + lo_cs->set_attribute( name = c_panose value = font_scheme-minor-cs-panose ). + endif. + if font_scheme-minor-cs-pitchfamily is not initial. + lo_cs->set_attribute( name = c_pitchfamily value = font_scheme-minor-cs-pitchfamily ). + endif. + if font_scheme-minor-cs-charset is not initial. + lo_cs->set_attribute( name = c_charset value = font_scheme-minor-cs-charset ). + endif. + + loop at font_scheme-minor-fonts assigning <font>. + if <font>-script is not initial and <font>-typeface is not initial. + clear lo_font. + lo_font ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_font + parent = lo_minor ). + lo_font->set_attribute( name = c_script value = <font>-script ). + lo_font->set_attribute( name = c_typeface value = <font>-typeface ). + endif. + endloop. + clear: lo_latin, lo_ea, lo_cs, lo_font. + endif. + + + endif. + endmethod. "build_xml + + + method constructor. + set_defaults( ). + endmethod. "constructor + + + + method load. + data: lo_scheme_children type ref to if_ixml_node_list. + data: lo_scheme_iterator type ref to if_ixml_node_iterator. + data: lo_scheme_element type ref to if_ixml_element. + data: lo_major_children type ref to if_ixml_node_list. + data: lo_major_iterator type ref to if_ixml_node_iterator. + data: lo_major_element type ref to if_ixml_element. + data: lo_minor_children type ref to if_ixml_node_list. + data: lo_minor_iterator type ref to if_ixml_node_iterator. + data: lo_minor_element type ref to if_ixml_element. + data: ls_font type t_font. + check io_font_scheme is not initial. + clear font_scheme. + font_scheme-name = io_font_scheme->get_attribute( name = c_name ). + lo_scheme_children = io_font_scheme->get_children( ). + lo_scheme_iterator = lo_scheme_children->create_iterator( ). + lo_scheme_element ?= lo_scheme_iterator->get_next( ). + while lo_scheme_element is bound. + case lo_scheme_element->get_name( ). + when c_major. + lo_major_children = lo_scheme_element->get_children( ). + lo_major_iterator = lo_major_children->create_iterator( ). + lo_major_element ?= lo_major_iterator->get_next( ). + while lo_major_element is bound. + case lo_major_element->get_name( ). + when c_latin. + font_scheme-major-latin-typeface = lo_major_element->get_attribute( name = c_typeface ). + font_scheme-major-latin-panose = lo_major_element->get_attribute( name = c_panose ). + font_scheme-major-latin-pitchfamily = lo_major_element->get_attribute( name = c_pitchfamily ). + font_scheme-major-latin-charset = lo_major_element->get_attribute( name = c_charset ). + when c_ea. + font_scheme-major-ea-typeface = lo_major_element->get_attribute( name = c_typeface ). + font_scheme-major-ea-panose = lo_major_element->get_attribute( name = c_panose ). + font_scheme-major-ea-pitchfamily = lo_major_element->get_attribute( name = c_pitchfamily ). + font_scheme-major-ea-charset = lo_major_element->get_attribute( name = c_charset ). + when c_cs. + font_scheme-major-cs-typeface = lo_major_element->get_attribute( name = c_typeface ). + font_scheme-major-cs-panose = lo_major_element->get_attribute( name = c_panose ). + font_scheme-major-cs-pitchfamily = lo_major_element->get_attribute( name = c_pitchfamily ). + font_scheme-major-cs-charset = lo_major_element->get_attribute( name = c_charset ). + when c_font. + clear ls_font. + ls_font-script = lo_major_element->get_attribute( name = c_script ). + ls_font-typeface = lo_major_element->get_attribute( name = c_typeface ). + try. + insert ls_font into table font_scheme-major-fonts. + catch cx_root. "not the best but just to avoid duplicate lines dump + + endtry. + endcase. + lo_major_element ?= lo_major_iterator->get_next( ). + endwhile. + when c_minor. + lo_minor_children = lo_scheme_element->get_children( ). + lo_minor_iterator = lo_minor_children->create_iterator( ). + lo_minor_element ?= lo_minor_iterator->get_next( ). + while lo_minor_element is bound. + case lo_minor_element->get_name( ). + when c_latin. + font_scheme-minor-latin-typeface = lo_minor_element->get_attribute( name = c_typeface ). + font_scheme-minor-latin-panose = lo_minor_element->get_attribute( name = c_panose ). + font_scheme-minor-latin-pitchfamily = lo_minor_element->get_attribute( name = c_pitchfamily ). + font_scheme-minor-latin-charset = lo_minor_element->get_attribute( name = c_charset ). + when c_ea. + font_scheme-minor-ea-typeface = lo_minor_element->get_attribute( name = c_typeface ). + font_scheme-minor-ea-panose = lo_minor_element->get_attribute( name = c_panose ). + font_scheme-minor-ea-pitchfamily = lo_minor_element->get_attribute( name = c_pitchfamily ). + font_scheme-minor-ea-charset = lo_minor_element->get_attribute( name = c_charset ). + when c_cs. + font_scheme-minor-cs-typeface = lo_minor_element->get_attribute( name = c_typeface ). + font_scheme-minor-cs-panose = lo_minor_element->get_attribute( name = c_panose ). + font_scheme-minor-cs-pitchfamily = lo_minor_element->get_attribute( name = c_pitchfamily ). + font_scheme-minor-cs-charset = lo_minor_element->get_attribute( name = c_charset ). + when c_font. + clear ls_font. + ls_font-script = lo_minor_element->get_attribute( name = c_script ). + ls_font-typeface = lo_minor_element->get_attribute( name = c_typeface ). + try. + insert ls_font into table font_scheme-minor-fonts. + catch cx_root. "not the best but just to avoid duplicate lines dump + + endtry. + endcase. + lo_minor_element ?= lo_minor_iterator->get_next( ). + endwhile. + endcase. + lo_scheme_element ?= lo_scheme_iterator->get_next( ). + endwhile. + endmethod. "load + + + + + + + + method modify_cs_font. + modify_lec_fonts( + exporting + iv_type = iv_type + iv_font_type = c_cs + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "modify_latin_font + + + + + + + + method modify_ea_font. + modify_lec_fonts( + exporting + iv_type = iv_type + iv_font_type = c_ea + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "modify_latin_font + + + + + + method modify_font. + data: ls_font type t_font. + field-symbols: <font> type t_font. + ls_font-script = iv_script. + ls_font-typeface = iv_typeface. + try. + case iv_type. + when c_major. + read table font_scheme-major-fonts with key script = iv_script assigning <font>. + if sy-subrc eq 0. + <font> = ls_font. + else. + insert ls_font into table font_scheme-major-fonts. + endif. + when c_minor. + read table font_scheme-minor-fonts with key script = iv_script assigning <font>. + if sy-subrc eq 0. + <font> = ls_font. + else. + insert ls_font into table font_scheme-minor-fonts. + endif. + endcase. + catch cx_root. "not the best but just to avoid duplicate lines dump + endtry. + endmethod. "add_font + + + + + + + + method modify_latin_font. + modify_lec_fonts( + exporting + iv_type = iv_type + iv_font_type = c_latin + iv_typeface = iv_typeface + iv_panose = iv_panose + iv_pitchfamily = iv_pitchfamily + iv_charset = iv_charset + ). + endmethod. "modify_latin_font + + + + + + + + + method modify_lec_fonts. + field-symbols: <type> type t_fonts, + <font> type t_fonttype. + case iv_type. + when c_minor. + assign font_scheme-minor to <type>. + when c_major. + assign font_scheme-major to <type>. + when others. + return. + endcase. + check <type> is assigned. + case iv_font_type. + when c_latin. + assign <type>-latin to <font>. + when c_ea. + assign <type>-ea to <font>. + when c_cs. + assign <type>-cs to <font>. + when others. + return. + endcase. + check <font> is assigned. + <font>-typeface = iv_typeface. + <font>-panose = iv_panose. + <font>-pitchfamily = iv_pitchfamily. + <font>-charset = iv_charset. + endmethod. "modify_lec_fonts + + + method set_defaults. + clear font_scheme. + font_scheme-name = 'Office'. + font_scheme-major-latin-typeface = 'Calibri Light'. + font_scheme-major-latin-panose = '020F0302020204030204'. + modify_font( iv_type = c_major iv_script = 'Jpan' iv_typeface = 'MS Pゴシック' ). + modify_font( iv_type = c_major iv_script = 'Hang' iv_typeface = '맑은 고딕' ). + modify_font( iv_type = c_major iv_script = 'Hans' iv_typeface = '宋体' ). + modify_font( iv_type = c_major iv_script = 'Hant' iv_typeface = '新細明體' ). + modify_font( iv_type = c_major iv_script = 'Arab' iv_typeface = 'Times New Roman' ). + modify_font( iv_type = c_major iv_script = 'Hebr' iv_typeface = 'Times New Roman' ). + modify_font( iv_type = c_major iv_script = 'Thai' iv_typeface = 'Tahoma' ). + modify_font( iv_type = c_major iv_script = 'Ethi' iv_typeface = 'Nyala' ). + modify_font( iv_type = c_major iv_script = 'Beng' iv_typeface = 'Vrinda' ). + modify_font( iv_type = c_major iv_script = 'Gujr' iv_typeface = 'Shruti' ). + modify_font( iv_type = c_major iv_script = 'Khmr' iv_typeface = 'MoolBoran' ). + modify_font( iv_type = c_major iv_script = 'Knda' iv_typeface = 'Tunga' ). + modify_font( iv_type = c_major iv_script = 'Guru' iv_typeface = 'Raavi' ). + modify_font( iv_type = c_major iv_script = 'Cans' iv_typeface = 'Euphemia' ). + modify_font( iv_type = c_major iv_script = 'Cher' iv_typeface = 'Plantagenet Cherokee' ). + modify_font( iv_type = c_major iv_script = 'Yiii' iv_typeface = 'Microsoft Yi Baiti' ). + modify_font( iv_type = c_major iv_script = 'Tibt' iv_typeface = 'Microsoft Himalaya' ). + modify_font( iv_type = c_major iv_script = 'Thaa' iv_typeface = 'MV Boli' ). + modify_font( iv_type = c_major iv_script = 'Deva' iv_typeface = 'Mangal' ). + modify_font( iv_type = c_major iv_script = 'Telu' iv_typeface = 'Gautami' ). + modify_font( iv_type = c_major iv_script = 'Taml' iv_typeface = 'Latha' ). + modify_font( iv_type = c_major iv_script = 'Syrc' iv_typeface = 'Estrangelo Edessa' ). + modify_font( iv_type = c_major iv_script = 'Orya' iv_typeface = 'Kalinga' ). + modify_font( iv_type = c_major iv_script = 'Mlym' iv_typeface = 'Kartika' ). + modify_font( iv_type = c_major iv_script = 'Laoo' iv_typeface = 'DokChampa' ). + modify_font( iv_type = c_major iv_script = 'Sinh' iv_typeface = 'Iskoola Pota' ). + modify_font( iv_type = c_major iv_script = 'Mong' iv_typeface = 'Mongolian Baiti' ). + modify_font( iv_type = c_major iv_script = 'Viet' iv_typeface = 'Times New Roman' ). + modify_font( iv_type = c_major iv_script = 'Uigh' iv_typeface = 'Microsoft Uighur' ). + modify_font( iv_type = c_major iv_script = 'Geor' iv_typeface = 'Sylfaen' ). + + font_scheme-minor-latin-typeface = 'Calibri'. + font_scheme-minor-latin-panose = '020F0502020204030204'. + modify_font( iv_type = c_minor iv_script = 'Jpan' iv_typeface = 'MS Pゴシック' ). + modify_font( iv_type = c_minor iv_script = 'Hang' iv_typeface = '맑은 고딕' ). + modify_font( iv_type = c_minor iv_script = 'Hans' iv_typeface = '宋体' ). + modify_font( iv_type = c_minor iv_script = 'Hant' iv_typeface = '新細明體' ). + modify_font( iv_type = c_minor iv_script = 'Arab' iv_typeface = 'Arial' ). + modify_font( iv_type = c_minor iv_script = 'Hebr' iv_typeface = 'Arial' ). + modify_font( iv_type = c_minor iv_script = 'Thai' iv_typeface = 'Tahoma' ). + modify_font( iv_type = c_minor iv_script = 'Ethi' iv_typeface = 'Nyala' ). + modify_font( iv_type = c_minor iv_script = 'Beng' iv_typeface = 'Vrinda' ). + modify_font( iv_type = c_minor iv_script = 'Gujr' iv_typeface = 'Shruti' ). + modify_font( iv_type = c_minor iv_script = 'Khmr' iv_typeface = 'DaunPenh' ). + modify_font( iv_type = c_minor iv_script = 'Knda' iv_typeface = 'Tunga' ). + modify_font( iv_type = c_minor iv_script = 'Guru' iv_typeface = 'Raavi' ). + modify_font( iv_type = c_minor iv_script = 'Cans' iv_typeface = 'Euphemia' ). + modify_font( iv_type = c_minor iv_script = 'Cher' iv_typeface = 'Plantagenet Cherokee' ). + modify_font( iv_type = c_minor iv_script = 'Yiii' iv_typeface = 'Microsoft Yi Baiti' ). + modify_font( iv_type = c_minor iv_script = 'Tibt' iv_typeface = 'Microsoft Himalaya' ). + modify_font( iv_type = c_minor iv_script = 'Thaa' iv_typeface = 'MV Boli' ). + modify_font( iv_type = c_minor iv_script = 'Deva' iv_typeface = 'Mangal' ). + modify_font( iv_type = c_minor iv_script = 'Telu' iv_typeface = 'Gautami' ). + modify_font( iv_type = c_minor iv_script = 'Taml' iv_typeface = 'Latha' ). + modify_font( iv_type = c_minor iv_script = 'Syrc' iv_typeface = 'Estrangelo Edessa' ). + modify_font( iv_type = c_minor iv_script = 'Orya' iv_typeface = 'Kalinga' ). + modify_font( iv_type = c_minor iv_script = 'Mlym' iv_typeface = 'Kartika' ). + modify_font( iv_type = c_minor iv_script = 'Laoo' iv_typeface = 'DokChampa' ). + modify_font( iv_type = c_minor iv_script = 'Sinh' iv_typeface = 'Iskoola Pota' ). + modify_font( iv_type = c_minor iv_script = 'Mong' iv_typeface = 'Mongolian Baiti' ). + modify_font( iv_type = c_minor iv_script = 'Viet' iv_typeface = 'Arial' ). + modify_font( iv_type = c_minor iv_script = 'Uigh' iv_typeface = 'Microsoft Uighur' ). + modify_font( iv_type = c_minor iv_script = 'Geor' iv_typeface = 'Sylfaen' ). + + endmethod. "set_defaults + + + + method set_name. + font_scheme-name = iv_name. + endmethod. "set_name + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_THEME_OBJECTDEFAULTS.slnk b/ZA2X/CLAS/ZCL_EXCEL_THEME_OBJECTDEFAULTS.slnk new file mode 100644 index 0000000..b3f2a9f --- /dev/null +++ b/ZA2X/CLAS/ZCL_EXCEL_THEME_OBJECTDEFAULTS.slnk @@ -0,0 +1,38 @@ + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + *"* use this source file for your ABAP unit test classes + + + + method build_xml. + data: lo_theme_element type ref to if_ixml_element. + data: lo_theme type ref to if_ixml_element. + data: lo_theme_objdef type ref to if_ixml_element. + check io_document is bound. + lo_theme ?= io_document->get_root_element( ). + check lo_theme is bound. + if objectdefaults is initial. + lo_theme_objdef ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix + name = zcl_excel_theme=>c_theme_object_def + parent = lo_theme ). + else. + lo_theme->append_child( new_child = objectdefaults ). + endif. + endmethod. "build_xml + + + + method load. + "! so far copy only existing values + objectdefaults ?= io_object_def. + endmethod. "load + + diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk index 1eb3077..da3697c 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk @@ -1,5 +1,5 @@ - + *"* local class implementation for public class *"* use this source file for the implementation part of @@ -2585,10 +2585,29 @@ ENDMETHOD. lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size + 1. + lv_syindex = lv_size. + shift lv_syindex RIGHT DELETING TRAILING space. + shift lv_syindex left DELETING leading space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + replace all occurrences of '#' in lv_xml_node_ridx_id with lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_theme_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_theme_tg ). + lo_element_root->append_child( new_child = lo_element ). + + " Relationship node lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship parent = lo_document ). - lv_size = lv_size + 2. + lv_size = lv_size + 1. lv_syindex = lv_size. SHIFT lv_syindex RIGHT DELETING TRAILING space. SHIFT lv_syindex LEFT DELETING LEADING space. @@ -2603,22 +2622,6 @@ ENDMETHOD. lo_element_root->append_child( new_child = lo_element ). - " Relationship node - lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship - parent = lo_document ). - lv_size = lv_size - 1. - lv_syindex = lv_size. - SHIFT lv_syindex RIGHT DELETING TRAILING space. - SHIFT lv_syindex LEFT DELETING LEADING space. - lv_xml_node_ridx_id = lc_xml_node_ridx_id. - REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. - lo_element->set_attribute_ns( name = lc_xml_attr_id - value = lv_xml_node_ridx_id ). - lo_element->set_attribute_ns( name = lc_xml_attr_type - value = lc_xml_node_rid_theme_tp ). - lo_element->set_attribute_ns( name = lc_xml_attr_target - value = lc_xml_node_rid_theme_tg ). - lo_element_root->append_child( new_child = lo_element ). lv_size = excel->get_worksheets_size( ). @@ -6624,92 +6627,19 @@ ENDMETHOD. - method CREATE_XL_THEME. + method create_xl_theme. + data: lo_theme type ref to zcl_excel_theme. + excel->get_theme( + importing + eo_theme = lo_theme + ). + if lo_theme is initial. + create object lo_theme. + endif. + ep_content = lo_theme->write_theme( ). -* @TODO * - - DATA: lv_xl_theme TYPE string, - lv_xl_theme_01 TYPE string, - lv_xl_theme_02 TYPE string, - lv_xl_theme_03 TYPE string, - lv_xl_theme_04 TYPE string, - lv_xl_theme_05 TYPE string, - lv_xl_theme_06 TYPE string, - lv_xl_theme_07 TYPE string, - lv_xl_theme_08 TYPE string, - lv_xl_theme_09 TYPE string, - lv_xl_theme_10 TYPE string, - lv_xl_theme_11 TYPE string, - lv_xl_theme_12 TYPE string, - lv_xl_theme_13 TYPE string, - lv_xl_theme_14 TYPE string, - lv_xl_theme_15 TYPE string, - lv_xl_theme_16 TYPE string, - lv_xl_theme_17 TYPE string, - lv_xl_theme_18 TYPE string, - lv_xl_theme_19 TYPE string, - lv_xl_theme_20 TYPE string, - lv_xl_theme_21 TYPE string, - lv_xl_theme_22 TYPE string, - lv_xl_theme_23 TYPE string, - lv_xl_theme_24 TYPE string, - lv_xl_theme_25 TYPE string, - lv_xl_theme_26 TYPE string, - lv_xl_theme_27 TYPE string, - lv_xl_theme_28 TYPE string, - lv_xl_theme_29 TYPE string, - lv_xl_theme_30 TYPE string, - lv_xl_theme_31 TYPE string, - lv_xl_theme_32 TYPE string. - - lv_xl_theme_01 = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'. - lv_xl_theme_02 = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" '. - lv_xl_theme_03 = 'lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr '. - lv_xl_theme_04 = 'val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink>'. - lv_xl_theme_05 = '<a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/>'. - lv_xl_theme_06 = '<a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" '. - lv_xl_theme_07 = 'typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font '. - lv_xl_theme_08 = 'script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" '. - lv_xl_theme_09 = 'typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. - lv_xl_theme_10 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. - lv_xl_theme_11 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/>'. - lv_xl_theme_12 = '<a:font script="Arab" typeface="Arial"/><a:font script="Hebr" '. - lv_xl_theme_13 = 'typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font '. - lv_xl_theme_14 = 'script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font '. - lv_xl_theme_15 = 'script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. - lv_xl_theme_16 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. - lv_xl_theme_17 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. - lv_xl_theme_18 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod '. - lv_xl_theme_19 = 'val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1">'. - lv_xl_theme_20 = '<a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs '. - lv_xl_theme_21 = 'pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" '. - lv_xl_theme_22 = 'algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr '. - lv_xl_theme_23 = 'val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst>'. - lv_xl_theme_24 = '<a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst>'. - lv_xl_theme_25 = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" '. - lv_xl_theme_26 = 'dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig '. - lv_xl_theme_27 = 'rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. - lv_xl_theme_28 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade '. - lv_xl_theme_29 = 'val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" '. - lv_xl_theme_30 = 't="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr '. - lv_xl_theme_31 = 'val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme>'. - lv_xl_theme_32 = '</a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'. - - - CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15 - lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30 - lv_xl_theme_31 lv_xl_theme_32 - INTO lv_xl_theme SEPARATED BY space. - - CALL FUNCTION 'SCMS_STRING_TO_XSTRING' - EXPORTING - text = lv_xl_theme - IMPORTING - buffer = ep_content. - - - endmethod. +endmethod. @@ -6830,8 +6760,8 @@ ENDMETHOD. " fileVersion node lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookpr parent = lo_document ). - lo_element->set_attribute_ns( name = lc_xml_attr_themeversion - value = '124226' ). +* lo_element->set_attribute_ns( name = lc_xml_attr_themeversion +* value = '124226' ). lo_element_root->append_child( new_child = lo_element ). " workbookProtection node