abap2xlsx/ZA2X/CLAS/ZCL_EXCEL_DRAWING.slnk
StefanSchmoecker af00a56683 Issue #379 - obsolete function modules
Added new class/method to wrap obsolete function GUID_CREATE and use replacement class SAP provides.  Old function call still found in wrapper class commented out for use in older releases, which don't have the new methods from SAP yet ( 7.01 does not have it for example )
Replaced calls to function by calls to wrapper-method
Changed calculation of last date in month in ZDEMO_CALENDAR since it was calling an obsoleted function as well.
2015-06-16 16:03:05 +02:00

1047 lines
73 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<CLAS CLSNAME="ZCL_EXCEL_DRAWING" VERSION="1" LANGU="E" DESCRIPT="Drawing" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 " ZSAPLINK_PLUGIN_MAJOR_VERSION="0 " ZSAPLINK_PLUGIN_MINOR_VERSION="1 " ZSAPLINK_PLUGIN_BUILD_VERSION="0 " ZSAPLINK_PLUGIN_INFO1="ZSAPLINK_CLASS is part of the main ZSAPLINK project --&gt; This plugin found there instead of ZSAPLINK_PLUGINS projects" ZSAPLINK_PLUGIN_INFO2="SAPLINK homepage: https://www.assembla.com/spaces/saplink/wiki" ZSAPLINK_PLUGIN_INFO3="Download from https://www.assembla.com/code/saplink/subversion/nodes" ZSAPLINK_PLUGIN_INFO4="and navigate to: trunk -&gt; core -&gt; ZSAPLINK -&gt; CLAS -&gt; ZSAPLINK_CLASS.slnk">
<localImplementation>*&quot;* local class implementation for public class
*&quot;* use this source file for the implementation part of
*&quot;* local helper classes</localImplementation>
<localTypes>*&quot;* use this source file for any type declarations (class
*&quot;* definitions, interfaces or data types) you need for method
*&quot;* implementation or private method&apos;s signature</localTypes>
<localMacros>*&quot;* use this source file for any macro definitions you need
*&quot;* in the implementation part of the class</localMacros>
<typeUsage CLSNAME="ZCL_EXCEL_DRAWING" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="0" STATE="1" EDITORDER="16 " ATTDECLTYP="0" ATTVALUE="ANCHOR_ONE_CELL" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_ABSOLUTE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="10 " ATTDECLTYP="2" ATTVALUE="&apos;ABS&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_ONE_CELL" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="11 " ATTDECLTYP="2" ATTVALUE="&apos;ONE&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="ANCHOR_TWO_CELL" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" EXPOSURE="2" STATE="1" EDITORDER="12 " ATTDECLTYP="2" ATTVALUE="&apos;TWO&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_BARS" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="3 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_LINE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_GRAPH_PIE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_MIME" VERSION="1" LANGU="E" DESCRIPT="miem repository" EXPOSURE="0" STATE="1" EDITORDER="19 " ATTDECLTYP="2" ATTVALUE="2" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_WWW" VERSION="1" LANGU="E" DESCRIPT="www repository SMW0" EXPOSURE="0" STATE="1" EDITORDER="17 " ATTDECLTYP="2" ATTVALUE="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_SOURCE_XSTRING" VERSION="1" LANGU="E" DESCRIPT="Binary data as XSTRING" EXPOSURE="0" STATE="1" EDITORDER="18 " ATTDECLTYP="2" ATTVALUE="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_BMP" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="14 " ATTDECLTYP="2" ATTVALUE="&apos;bmp&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_JPG" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="16 " ATTDECLTYP="2" ATTVALUE="&apos;jpg&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="C_MEDIA_TYPE_XML" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="15 " ATTDECLTYP="2" ATTVALUE="&apos;xml&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="FROM_LOC" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" EXPOSURE="0" STATE="1" EDITORDER="27 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GRAPH" VERSION="1" LANGU="E" DESCRIPT="Graphic" EXPOSURE="2" STATE="1" EDITORDER="13 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="3" TYPE="ZCL_EXCEL_GRAPH" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GRAPH_TYPE" VERSION="1" LANGU="E" DESCRIPT="Graph type" EXPOSURE="2" STATE="1" EDITORDER="4 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_GRAPH_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" EXPOSURE="0" STATE="1" EDITORDER="20 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="GUID_16" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="INDEX" VERSION="1" LANGU="E" DESCRIPT="Index in collection" EXPOSURE="0" STATE="1" EDITORDER="15 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="IO" VERSION="1" LANGU="E" DESCRIPT="KW Framework: Object Key" EXPOSURE="0" STATE="1" EDITORDER="26 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="SKWF_IO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="21 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="XSTRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_KEY_WWW" VERSION="1" LANGU="E" DESCRIPT="Contents of table WWWDATA" EXPOSURE="0" STATE="1" EDITORDER="22 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="WWWDATATAB" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_NAME" VERSION="1" LANGU="E" DESCRIPT="Generated file name" EXPOSURE="0" STATE="1" EDITORDER="23 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_SOURCE" VERSION="1" LANGU="E" DESCRIPT="0=XSTRING, 1=WWW" EXPOSURE="0" STATE="1" EDITORDER="24 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="MEDIA_TYPE" VERSION="1" LANGU="E" DESCRIPT="Type of media, file extension" EXPOSURE="0" STATE="1" EDITORDER="25 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Drawing size for Excel" EXPOSURE="0" STATE="1" EDITORDER="29 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_SIZE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" EXPOSURE="2" STATE="1" EDITORDER="5 " ATTDECLTYP="0" ATTVALUE="&apos;image1.jpg&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TO_LOC" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" EXPOSURE="0" STATE="1" EDITORDER="28 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE" VERSION="1" LANGU="E" DESCRIPT="Drawing type: image|chart" EXPOSURE="0" STATE="1" EDITORDER="14 " ATTDECLTYP="0" ATTVALUE="TYPE_IMAGE" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE_CHART" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" EXPOSURE="2" STATE="1" EDITORDER="9 " ATTDECLTYP="2" ATTVALUE="&apos;chart&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="TYPE_IMAGE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" EXPOSURE="2" STATE="1" EDITORDER="8 " ATTDECLTYP="2" ATTVALUE="&apos;image&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="X_REFERENCES" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="2" STATE="1" EDITORDER="6 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="Y_REFERENCES" VERSION="1" LANGU="E" DESCRIPT="Single-Character Indicator" EXPOSURE="2" STATE="1" EDITORDER="7 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="CHAR1" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="2" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" SCONAME="IP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="2" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE" PARVALUE="ZCL_EXCEL_DRAWING=&gt;TYPE_IMAGE"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CONSTRUCTOR" SCONAME="IP_TITLE" VERSION="1" LANGU="E" DESCRIPT="Title" CMPTYPE="1" MTDTYPE="2" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_SHEET_TITLE" PAROPTIONL="X"/>
<source>METHOD constructor.
* CALL FUNCTION &apos;GUID_CREATE&apos; &quot; del issue #379 - function is outdated in newer releases
* IMPORTING
* ev_guid_16 = me-&gt;guid.
me-&gt;guid = zcl_excel_obsolete_func_wrap=&gt;guid_create( ). &quot; ins issue #379 - replacement for outdated function call
IF ip_title IS NOT INITIAL.
title = ip_title.
ELSE.
title = me-&gt;guid.
ENDIF.
me-&gt;type = ip_type.
* inizialize dimension range
anchor = anchor_one_cell.
from_loc-col = 1.
from_loc-row = 1.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CREATE_MEDIA_NAME" VERSION="1" LANGU="E" DESCRIPT="Generate media name image#.ext" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="CREATE_MEDIA_NAME" SCONAME="IP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="I"/>
<source>method CREATE_MEDIA_NAME.
* if media name is initial, create unique name
CHECK media_name IS INITIAL.
index = ip_index.
CONCATENATE me-&gt;type index INTO media_name.
CONDENSE media_name NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="From col" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_COL" SCONAME="R_FROM_COL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method GET_FROM_COL.
r_from_col = me-&gt;from_loc-col.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="From row" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_FROM_ROW" SCONAME="R_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method GET_FROM_ROW.
r_from_row = me-&gt;from_loc-row.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_GUID" VERSION="1" LANGU="E" DESCRIPT="Get sheet guid" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_GUID" SCONAME="EP_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID in &apos;RAW&apos; format" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="GUID_16"/>
<source>method GET_GUID.
ep_guid = me-&gt;guid.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_HEIGHT_EMU_STR" VERSION="1" LANGU="E" DESCRIPT="Height of bitmap in EMU as string" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_HEIGHT_EMU_STR" SCONAME="R_HEIGHT" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_HEIGHT_EMU_STR.
r_height = pixel2emu( size-height ).
CONDENSE r_height NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_INDEX" VERSION="1" LANGU="E" DESCRIPT="Get index" EXPOSURE="2" STATE="1" EDITORDER="22 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_INDEX" SCONAME="RP_INDEX" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_INDEX.
rp_index = me-&gt;index.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA" VERSION="1" LANGU="E" DESCRIPT="Returns media as XSTRING" EXPOSURE="2" STATE="1" EDITORDER="7 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA" SCONAME="R_MEDIA" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="XSTRING"/>
<source>METHOD get_media.
DATA: lv_language TYPE sylangu.
DATA: lt_bin_mime TYPE sdokcntbins.
DATA: lt_mime TYPE tsfmime,
lv_filesize TYPE i,
lv_filesizec(10).
CASE media_source.
WHEN c_media_source_xstring.
r_media = media.
WHEN c_media_source_www.
CALL FUNCTION &apos;WWWDATA_IMPORT&apos;
EXPORTING
key = media_key_www
TABLES
mime = lt_mime
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION &apos;WWWPARAMS_READ&apos;
EXPORTING
relid = media_key_www-relid
objid = media_key_www-objid
name = &apos;filesize&apos;
IMPORTING
value = lv_filesizec.
lv_filesize = lv_filesizec.
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filesize
IMPORTING
buffer = r_media
TABLES
binary_tab = lt_mime
EXCEPTIONS
failed = 1
OTHERS = 2.
WHEN c_media_source_mime.
lv_language = sy-langu.
cl_wb_mime_repository=&gt;load_mime( EXPORTING
io = me-&gt;io
IMPORTING
filesize = lv_filesize
bin_data = lt_bin_mime
CHANGING
language = lv_language ).
CALL FUNCTION &apos;SCMS_BINARY_TO_XSTRING&apos;
EXPORTING
input_length = lv_filesize
IMPORTING
buffer = r_media
TABLES
binary_tab = lt_bin_mime
EXCEPTIONS
failed = 1
OTHERS = 2.
ENDCASE.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_NAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="8 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_NAME" SCONAME="R_NAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_MEDIA_NAME.
CONCATENATE media_name `.` media_type INTO r_name.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_TYPE" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="9 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_MEDIA_TYPE" SCONAME="R_TYPE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_MEDIA_TYPE.
r_type = media_type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_NAME" VERSION="1" LANGU="E" EXPOSURE="2" STATE="1" EDITORDER="10 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_NAME" SCONAME="R_NAME" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_NAME.
r_name = title.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_POSITION" VERSION="1" LANGU="E" DESCRIPT="Get position of drawing" EXPOSURE="2" STATE="1" EDITORDER="20 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_POSITION" SCONAME="RP_POSITION" VERSION="1" LANGU="E" DESCRIPT="Drawing position for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_POSITION"/>
<source>method GET_POSITION.
rp_position-anchor = anchor.
rp_position-from = from_loc.
rp_position-to = to_loc.
rp_position-size = size.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_COL" VERSION="1" LANGU="E" DESCRIPT="To col" EXPOSURE="2" STATE="1" EDITORDER="11 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_COL" SCONAME="R_TO_COL" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method GET_TO_COL.
r_to_col = me-&gt;to_loc-col.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="To row" EXPOSURE="2" STATE="1" EDITORDER="12 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TO_ROW" SCONAME="R_TO_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<source>method GET_TO_ROW.
r_to_row = me-&gt;to_loc-row.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TYPE" VERSION="1" LANGU="E" DESCRIPT="Get drawing type" EXPOSURE="2" STATE="1" EDITORDER="21 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_TYPE" SCONAME="RP_TYPE" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing type" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_TYPE"/>
<source>method GET_TYPE.
rp_type = me-&gt;type.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_WIDTH_EMU_STR" VERSION="1" LANGU="E" DESCRIPT="Width of bitmap in EMU as string" EXPOSURE="2" STATE="1" EDITORDER="13 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="GET_WIDTH_EMU_STR" SCONAME="R_WIDTH" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method GET_WIDTH_EMU_STR.
r_width = pixel2emu( size-width ).
CONDENSE r_width NO-GAPS.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="LOAD_CHART_ATTRIBUTES" VERSION="1" LANGU="E" DESCRIPT="Load chart attributes" EXPOSURE="2" STATE="1" EDITORDER="23 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="LOAD_CHART_ATTRIBUTES" SCONAME="IP_CHART" VERSION="1" LANGU="E" DESCRIPT="IF_IXML_DOCUMENT" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="0" TYPTYPE="3" TYPE="IF_IXML_DOCUMENT"/>
<source>method LOAD_CHART_ATTRIBUTES.
DATA: node TYPE REF TO if_ixml_element.
DATA: node2 TYPE REF TO if_ixml_element.
DATA: node3 TYPE REF TO if_ixml_element.
DATA: node4 TYPE REF TO if_ixml_element.
DATA: iterator TYPE REF TO if_ixml_node_iterator.
DATA: chartspace TYPE REF TO if_ixml_node_collection.
DATA: coll_length TYPE i.
DATA: chartelem TYPE REF TO if_ixml_element.
DATA lo_barchart TYPE REF TO zcl_excel_graph_bars.
DATA lo_piechart TYPE REF TO zcl_excel_graph_pie.
DATA lo_linechart TYPE REF TO zcl_excel_graph_line.
TYPES: BEGIN OF t_prop,
val TYPE string,
rtl TYPE string,
lang TYPE string,
formatcode TYPE string,
sourcelinked TYPE string,
END OF t_prop.
TYPES: BEGIN OF t_pagemargins,
b TYPE string,
l TYPE string,
r TYPE string,
t TYPE string,
header TYPE string,
footer TYPE string,
END OF t_pagemargins.
DATA ls_prop TYPE t_prop.
DATA ls_pagemargins TYPE t_pagemargins.
DATA lo_collection TYPE REF TO if_ixml_node_collection.
DATA lo_node TYPE REF TO if_ixml_node.
DATA lo_iterator TYPE REF TO if_ixml_node_iterator.
DATA lv_idx TYPE i.
DATA lv_order TYPE i.
DATA lv_invertifnegative TYPE string.
DATA lv_symbol TYPE string.
DATA lv_smooth TYPE c.
DATA lv_sername TYPE string.
DATA lv_label TYPE string.
DATA lv_value TYPE string.
DATA lv_axid TYPE string.
DATA lv_orientation TYPE string.
DATA lv_delete TYPE string.
DATA lv_axpos TYPE string.
DATA lv_formatcode TYPE string.
DATA lv_sourcelinked TYPE string.
DATA lv_majortickmark TYPE string.
DATA lv_minortickmark TYPE string.
DATA lv_ticklblpos TYPE string.
DATA lv_crossax TYPE string.
DATA lv_crosses TYPE string.
DATA lv_auto TYPE string.
DATA lv_lblalgn TYPE string.
DATA lv_lbloffset TYPE string.
DATA lv_nomultilvllbl TYPE string.
DATA lv_crossbetween TYPE string.
node ?= ip_chart-&gt;if_ixml_node~get_first_child( ).
CHECK node IS NOT INITIAL.
CASE me-&gt;graph_type.
WHEN c_graph_bars.
CREATE OBJECT lo_barchart.
me-&gt;graph = lo_barchart.
WHEN c_graph_pie.
CREATE OBJECT lo_piechart.
me-&gt;graph = lo_piechart.
WHEN c_graph_line.
CREATE OBJECT lo_linechart.
me-&gt;graph = lo_linechart.
WHEN OTHERS.
ENDCASE.
&quot;Fill properties
node2 ?= node-&gt;find_from_name( name = &apos;date1904&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_1904val = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;lang&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_langval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;roundedCorners&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_roundedcornersval = ls_prop-val.
&quot;style
node2 ?= node-&gt;find_from_name( name = &apos;style&apos; namespace = &apos;c14&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_c14styleval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;style&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_styleval = ls_prop-val.
&quot;---------------------------Read graph properties
node2 ?= node-&gt;find_from_name( name = &apos;autoTitleDeleted&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_autotitledeletedval = ls_prop-val.
&quot;plotArea
CASE me-&gt;graph_type.
WHEN c_graph_bars.
node2 ?= node-&gt;find_from_name( name = &apos;barDir&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_bardirval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;grouping&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_groupingval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;invertIfNegative&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_invertifnegative = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_barchart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_invertifnegative = lv_invertifnegative
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_showbubblesizeval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;gapWidth&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_gapwidthval = ls_prop-val.
&quot;Load axes
node2 ?= node-&gt;find_from_name( name = &apos;barChart&apos; namespace = &apos;c&apos; ).
CALL METHOD node2-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;axId&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lv_axid = ls_prop-val.
IF sy-index EQ 1. &quot;catAx
node2 ?= node-&gt;find_from_name( name = &apos;catAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;auto&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_auto = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblAlgn&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lblalgn = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblOffset&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lbloffset = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;noMultiLvlLbl&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_nomultilvllbl = ls_prop-val.
CALL METHOD lo_barchart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_bars=&gt;c_catax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_auto = lv_auto
ip_lblalgn = lv_lblalgn
ip_lbloffset = lv_lbloffset
ip_nomultilvllbl = lv_nomultilvllbl.
ELSEIF sy-index EQ 2. &quot;valAx
node2 ?= node-&gt;find_from_name( name = &apos;valAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossBetween&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossbetween = ls_prop-val.
CALL METHOD lo_barchart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_bars=&gt;c_valax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_crossbetween = lv_crossbetween.
ENDIF.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
WHEN c_graph_pie.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_piechart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showbubblesizeval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showLeaderLines&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_showleaderlinesval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;firstSliceAng&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_firstsliceangval = ls_prop-val.
WHEN c_graph_line.
node2 ?= node-&gt;find_from_name( name = &apos;grouping&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_groupingval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;varyColors&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_varycolorsval = ls_prop-val.
&quot;Load series
CALL METHOD node-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;ser&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
node3 ?= node2-&gt;find_from_name( name = &apos;idx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_idx = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;order&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_order = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;symbol&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_symbol = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;smooth&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_smooth = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;v&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
lv_sername = node3-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;strRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_label = node4-&gt;get_value( ).
ENDIF.
node3 ?= node2-&gt;find_from_name( name = &apos;numRef&apos; namespace = &apos;c&apos; ).
IF node3 IS BOUND.
node4 ?= node3-&gt;find_from_name( name = &apos;f&apos; namespace = &apos;c&apos; ).
lv_value = node4-&gt;get_value( ).
ENDIF.
CALL METHOD lo_linechart-&gt;create_serie
EXPORTING
ip_idx = lv_idx
ip_order = lv_order
ip_symbol = lv_symbol
ip_smooth = lv_smooth
ip_lbl = lv_label
ip_ref = lv_value
ip_sername = lv_sername.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
&quot;note: numCache avoided
node2 ?= node-&gt;find_from_name( name = &apos;showLegendKey&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showlegendkeyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showVal&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showvalval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showCatName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showcatnameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showSerName&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showsernameval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showPercent&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showpercentval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showBubbleSize&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_showbubblesizeval = ls_prop-val.
node ?= node-&gt;find_from_name( name = &apos;lineChart&apos; namespace = &apos;c&apos; ).
node2 ?= node-&gt;find_from_name( name = &apos;marker&apos; namespace = &apos;c&apos; DEPTH = &apos;1&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;NS_MARKERVAL = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;smooth&apos; namespace = &apos;c&apos; DEPTH = &apos;1&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;NS_SMOOTHVAL = ls_prop-val.
node ?= ip_chart-&gt;if_ixml_node~get_first_child( ).
CHECK node IS NOT INITIAL.
&quot;Load axes
node2 ?= node-&gt;find_from_name( name = &apos;lineChart&apos; namespace = &apos;c&apos; ).
CALL METHOD node2-&gt;get_elements_by_tag_name
EXPORTING
* depth = 0
name = &apos;axId&apos;
* namespace = &apos;&apos;
RECEIVING
rval = lo_collection.
CALL METHOD lo_collection-&gt;create_iterator
RECEIVING
rval = lo_iterator.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
WHILE lo_node IS BOUND.
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lv_axid = ls_prop-val.
IF sy-index EQ 1. &quot;catAx
node2 ?= node-&gt;find_from_name( name = &apos;catAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
* node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
* zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
* lv_formatcode = ls_prop-formatcode.
* lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;auto&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_auto = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblAlgn&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lblalgn = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;lblOffset&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_lbloffset = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;noMultiLvlLbl&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_nomultilvllbl = ls_prop-val.
CALL METHOD lo_linechart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_line=&gt;c_catax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_auto = lv_auto
ip_lblalgn = lv_lblalgn
ip_lbloffset = lv_lbloffset
ip_nomultilvllbl = lv_nomultilvllbl.
ELSEIF sy-index EQ 2. &quot;valAx
node2 ?= node-&gt;find_from_name( name = &apos;valAx&apos; namespace = &apos;c&apos; ).
node3 ?= node2-&gt;find_from_name( name = &apos;orientation&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_orientation = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;delete&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_delete = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;axPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_axpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;numFmt&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_formatcode = ls_prop-formatcode.
lv_sourcelinked = ls_prop-sourcelinked.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_majortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;majorTickMark&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_minortickmark = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;tickLblPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_ticklblpos = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossAx&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossax = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crosses&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crosses = ls_prop-val.
node3 ?= node2-&gt;find_from_name( name = &apos;crossBetween&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ).
lv_crossbetween = ls_prop-val.
CALL METHOD lo_linechart-&gt;create_ax
EXPORTING
ip_axid = lv_axid
ip_type = zcl_excel_graph_line=&gt;c_valax
ip_orientation = lv_orientation
ip_delete = lv_delete
ip_axpos = lv_axpos
ip_formatcode = lv_formatcode
ip_sourcelinked = lv_sourcelinked
ip_majortickmark = lv_majortickmark
ip_minortickmark = lv_minortickmark
ip_ticklblpos = lv_ticklblpos
ip_crossax = lv_crossax
ip_crosses = lv_crosses
ip_crossbetween = lv_crossbetween.
ENDIF.
lo_node = lo_iterator-&gt;get_next( ).
IF lo_node IS BOUND.
node2 ?= lo_node-&gt;query_interface( ixml_iid_element ).
ENDIF.
ENDWHILE.
WHEN OTHERS.
ENDCASE.
&quot;legend
CASE me-&gt;graph_type.
WHEN c_graph_bars.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_barchart-&gt;ns_overlayval = ls_prop-val.
WHEN c_graph_line.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_linechart-&gt;ns_overlayval = ls_prop-val.
WHEN c_graph_pie.
node2 ?= node-&gt;find_from_name( name = &apos;legendPos&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_legendposval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;overlay&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_overlayval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;pPr&apos; namespace = &apos;a&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_pprrtl = ls_prop-rtl.
node2 ?= node-&gt;find_from_name( name = &apos;endParaRPr&apos; namespace = &apos;a&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
lo_piechart-&gt;ns_endpararprlang = ls_prop-lang.
WHEN OTHERS.
ENDCASE.
node2 ?= node-&gt;find_from_name( name = &apos;plotVisOnly&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_plotvisonlyval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;dispBlanksAs&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_dispblanksasval = ls_prop-val.
node2 ?= node-&gt;find_from_name( name = &apos;showDLblsOverMax&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
me-&gt;graph-&gt;ns_showdlblsovermaxval = ls_prop-val.
&quot;---------------------
node2 ?= node-&gt;find_from_name( name = &apos;pageMargins&apos; namespace = &apos;c&apos; ).
zcl_excel_reader_2007=&gt;fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_pagemargins ).
me-&gt;graph-&gt;pagemargins = ls_pagemargins.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" VERSION="1" LANGU="E" DESCRIPT="Convert pixel to EMU" EXPOSURE="2" STATE="1" EDITORDER="14 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="1" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="IP_PIXEL" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="IP_DPI" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT2" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="PIXEL2EMU" SCONAME="R_EMU" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="STRING"/>
<source>method PIXEL2EMU.
* suppose 96 DPI
IF ip_dpi IS SUPPLIED.
r_emu = ip_pixel * 914400 / ip_dpi.
ELSE.
* suppose 96 DPI
r_emu = ip_pixel * 914400 / 96.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" VERSION="1" LANGU="E" DESCRIPT="Add media to drawing as XSTRING" EXPOSURE="2" STATE="1" EDITORDER="15 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_MEDIA" VERSION="1" LANGU="E" DESCRIPT="used only for template of charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="XSTRING" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_MEDIA_TYPE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="used only for image types, not for charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PARVALUE="0"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="used only for image types, not for charts" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PARVALUE="0"/>
<source>method SET_MEDIA.
IF ip_media IS SUPPLIED.
media = ip_media.
ENDIF.
media_type = ip_media_type.
media_source = c_media_source_xstring.
IF ip_width IS SUPPLIED.
size-width = ip_width.
ENDIF.
IF ip_height IS SUPPLIED.
size-height = ip_height.
ENDIF.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" VERSION="1" LANGU="E" DESCRIPT="Add media from mime repository" EXPOSURE="2" STATE="1" EDITORDER="16 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_IO" VERSION="1" LANGU="E" DESCRIPT="KW Framework: Object Key" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="SKWF_IO"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_MIME" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Natural Number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>METHOD set_media_mime.
DATA: lv_language TYPE sylangu.
io = ip_io.
media_source = c_media_source_mime.
size-width = ip_width.
size-height = ip_height.
lv_language = sy-langu.
cl_wb_mime_repository=&gt;load_mime( EXPORTING
io = ip_io
IMPORTING
filename = media_name
&quot;mimetype = media_type
CHANGING
language = lv_language ).
SPLIT media_name AT &apos;.&apos; INTO media_name media_type.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" VERSION="1" LANGU="E" DESCRIPT="Add media from www repository SMW0" EXPOSURE="2" STATE="1" EDITORDER="17 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_KEY" VERSION="1" LANGU="E" DESCRIPT="Contents of table WWWDATA" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="WWWDATATAB"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_WIDTH" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_MEDIA_WWW" SCONAME="IP_HEIGHT" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4"/>
<source>method SET_MEDIA_WWW.
DATA: lv_value(20).
media_key_www = ip_key.
media_source = c_media_source_www.
CALL FUNCTION &apos;WWWPARAMS_READ&apos;
EXPORTING
relid = media_key_www-relid
objid = media_key_www-objid
name = &apos;fileextension&apos;
IMPORTING
value = lv_value.
media_type = lv_value.
SHIFT media_type LEFT DELETING LEADING &apos;.&apos;.
size-width = ip_width.
size-height = ip_height.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" VERSION="1" LANGU="E" DESCRIPT="Set position of drawing" EXPOSURE="2" STATE="1" EDITORDER="18 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_FROM_ROW" VERSION="1" LANGU="E" DESCRIPT="Cell Row" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_ROW"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_FROM_COL" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_ROWOFF" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION" SCONAME="IP_COLOFF" VERSION="1" LANGU="E" DESCRIPT="Natural number" CMPTYPE="1" MTDTYPE="0" EDITORDER="4 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="INT4" PAROPTIONL="X"/>
<source>method SET_POSITION.
from_loc-col = zcl_excel_common=&gt;convert_column2int( ip_from_col ) - 1.
IF ip_coloff IS SUPPLIED.
from_loc-col_offset = ip_coloff.
ENDIF.
from_loc-row = ip_from_row - 1.
IF ip_rowoff IS SUPPLIED.
from_loc-row_offset = ip_rowoff.
ENDIF.
anchor = anchor_one_cell.
endmethod.</source>
</method>
<method CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" VERSION="1" LANGU="E" DESCRIPT="Set position of drawing" EXPOSURE="2" STATE="1" EDITORDER="19 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_FROM" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_TO" VERSION="1" LANGU="E" DESCRIPT="Drawing location for Excel" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_LOCATION"/>
<parameter CLSNAME="ZCL_EXCEL_DRAWING" CMPNAME="SET_POSITION2" SCONAME="IP_ANCHOR" VERSION="1" LANGU="E" DESCRIPT="Excel Drawing anchor" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_DRAWING_ANCHOR" PAROPTIONL="X"/>
<source>method SET_POSITION2.
data: lv_anchor type zexcel_drawing_anchor.
lv_anchor = ip_anchor.
IF lv_anchor IS INITIAL.
IF ip_to IS NOT INITIAL.
lv_anchor = anchor_two_cell.
ELSE.
lv_anchor = anchor_one_cell.
ENDIF.
ENDIF.
CASE lv_anchor.
WHEN anchor_absolute OR anchor_one_cell.
CLEAR: me-&gt;to_loc.
WHEN anchor_two_cell.
CLEAR: me-&gt;size.
ENDCASE.
me-&gt;from_loc = ip_from.
me-&gt;to_loc = ip_to.
me-&gt;anchor = lv_anchor.
endmethod.</source>
</method>
</CLAS>