mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 19:26:10 +08:00
Merge branch 'main' into fix-bind_no_filter
This commit is contained in:
commit
29d18c3241
|
@ -19,15 +19,18 @@ CLASS zcl_excel_theme_fmt_scheme DEFINITION
|
||||||
METHODS get_default_fmt
|
METHODS get_default_fmt
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_string) TYPE string .
|
VALUE(rv_string) TYPE string .
|
||||||
|
|
||||||
|
METHODS parse_string
|
||||||
|
IMPORTING iv_string TYPE string
|
||||||
|
RETURNING VALUE(ri_node) TYPE REF TO if_ixml_node.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_excel_theme_fmt_scheme IMPLEMENTATION.
|
CLASS ZCL_EXCEL_THEME_FMT_SCHEME IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD build_xml.
|
METHOD build_xml.
|
||||||
DATA: lo_xml TYPE REF TO cl_xml_document.
|
|
||||||
DATA: lo_node TYPE REF TO if_ixml_node.
|
DATA: lo_node TYPE REF TO if_ixml_node.
|
||||||
DATA: lo_elements TYPE REF TO if_ixml_element.
|
DATA: lo_elements TYPE REF TO if_ixml_element.
|
||||||
CHECK io_document IS BOUND.
|
CHECK io_document IS BOUND.
|
||||||
|
@ -35,9 +38,7 @@ CLASS zcl_excel_theme_fmt_scheme IMPLEMENTATION.
|
||||||
IF lo_elements IS BOUND.
|
IF lo_elements IS BOUND.
|
||||||
|
|
||||||
IF fmt_scheme IS INITIAL.
|
IF fmt_scheme IS INITIAL.
|
||||||
CREATE OBJECT lo_xml.
|
lo_node = parse_string( get_default_fmt( ) ).
|
||||||
lo_xml->parse_string( get_default_fmt( ) ).
|
|
||||||
lo_node = lo_xml->get_first_node( ).
|
|
||||||
lo_elements->append_child( new_child = lo_node ).
|
lo_elements->append_child( new_child = lo_node ).
|
||||||
ELSE.
|
ELSE.
|
||||||
lo_elements->append_child( new_child = fmt_scheme ).
|
lo_elements->append_child( new_child = fmt_scheme ).
|
||||||
|
@ -191,4 +192,28 @@ CLASS zcl_excel_theme_fmt_scheme IMPLEMENTATION.
|
||||||
METHOD load.
|
METHOD load.
|
||||||
fmt_scheme = zcl_excel_common=>clone_ixml_with_namespaces( io_fmt_scheme ).
|
fmt_scheme = zcl_excel_common=>clone_ixml_with_namespaces( io_fmt_scheme ).
|
||||||
ENDMETHOD. "load
|
ENDMETHOD. "load
|
||||||
|
|
||||||
|
|
||||||
|
METHOD parse_string.
|
||||||
|
DATA li_stream TYPE REF TO if_ixml_istream.
|
||||||
|
DATA li_ixml TYPE REF TO if_ixml.
|
||||||
|
DATA li_document TYPE REF TO if_ixml_document.
|
||||||
|
DATA li_factory TYPE REF TO if_ixml_stream_factory.
|
||||||
|
DATA li_parser TYPE REF TO if_ixml_parser.
|
||||||
|
DATA li_istream TYPE REF TO if_ixml_istream.
|
||||||
|
|
||||||
|
li_ixml = cl_ixml=>create( ).
|
||||||
|
li_document = li_ixml->create_document( ).
|
||||||
|
li_factory = li_ixml->create_stream_factory( ).
|
||||||
|
li_istream = li_factory->create_istream_string( iv_string ).
|
||||||
|
li_parser = li_ixml->create_parser(
|
||||||
|
stream_factory = li_factory
|
||||||
|
istream = li_istream
|
||||||
|
document = li_document ).
|
||||||
|
li_parser->add_strip_space_element( ).
|
||||||
|
li_parser->parse( ).
|
||||||
|
li_istream->close( ).
|
||||||
|
ri_node = li_document->get_first_child( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
54
src/zcl_excel_theme_fmt_scheme.clas.testclasses.abap
Normal file
54
src/zcl_excel_theme_fmt_scheme.clas.testclasses.abap
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS build_xml FOR TESTING.
|
||||||
|
|
||||||
|
DATA mi_ixml TYPE REF TO if_ixml.
|
||||||
|
DATA mi_document TYPE REF TO if_ixml_document.
|
||||||
|
METHODS setup.
|
||||||
|
METHODS render
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xml) TYPE string.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
mi_ixml = cl_ixml=>create( ).
|
||||||
|
mi_document = mi_ixml->create_document( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD render.
|
||||||
|
DATA li_ostream TYPE REF TO if_ixml_ostream.
|
||||||
|
DATA li_renderer TYPE REF TO if_ixml_renderer.
|
||||||
|
DATA li_factory TYPE REF TO if_ixml_stream_factory.
|
||||||
|
|
||||||
|
li_factory = mi_ixml->create_stream_factory( ).
|
||||||
|
li_ostream = li_factory->create_ostream_cstring( rv_xml ).
|
||||||
|
li_renderer = mi_ixml->create_renderer(
|
||||||
|
ostream = li_ostream
|
||||||
|
document = mi_document ).
|
||||||
|
li_renderer->render( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD build_xml.
|
||||||
|
DATA lo_theme_fmt TYPE REF TO zcl_excel_theme_fmt_scheme.
|
||||||
|
DATA li_ixml TYPE REF TO if_ixml.
|
||||||
|
DATA li_document TYPE REF TO if_ixml_document.
|
||||||
|
DATA lv_xml TYPE string.
|
||||||
|
|
||||||
|
mi_document->create_simple_element(
|
||||||
|
name = zcl_excel_theme=>c_theme_elements
|
||||||
|
parent = mi_document ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_theme_fmt.
|
||||||
|
lo_theme_fmt->build_xml( mi_document ).
|
||||||
|
|
||||||
|
lv_xml = render( ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_char_cp(
|
||||||
|
act = lv_xml
|
||||||
|
exp = '*<a:fmtScheme name="Office">*' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user