issue #377 - Added missing Structureenhancement and autofilter adjustment to get rid of sheet-guid

This commit is contained in:
StefanSchmoecker 2015-07-13 00:24:10 +02:00
parent f1981a4ebd
commit f1b69468d1
2 changed files with 60 additions and 46 deletions

View File

@ -1,87 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<CLAS CLSNAME="ZCL_EXCEL_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" CLSFINAL="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
<CLAS CLSNAME="ZCL_EXCEL_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="Autofilters collection" 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">
<types CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="TS_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilter" EXPOSURE="0" STATE="1" EDITORDER="1 " TYPTYPE="4" SRCROW1="6 " SRCCOLUMN1="4 " SRCROW2="9 " SRCCOLUMN2="23 " TYPESRC_LENG="0 " TYPESRC="BEGIN OF ts_autofilter,
worksheet TYPE REF TO zcl_excel_worksheet,
autofilter TYPE REF TO zcl_excel_autofilter,
END OF ts_autofilter
"/>
<types CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="TT_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="All autofilters" EXPOSURE="0" STATE="1" EDITORDER="2 " TYPTYPE="4" SRCROW1="11 " SRCCOLUMN1="4 " SRCROW2="11 " SRCCOLUMN2="78 " TYPESRC_LENG="0 " TYPESRC="tt_autofilters TYPE HASHED TABLE OF ts_autofilter WITH UNIQUE KEY worksheet
"/>
<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
TYPES: BEGIN OF ts_objects,
sheet_guid TYPE uuid,
autofilter TYPE REF TO zcl_excel_autofilter,
END OF ts_objects,
tt_objects TYPE HASHED TABLE OF ts_objects WITH UNIQUE KEY sheet_guid.</localTypes>
*&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_AUTOFILTERS" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
<forwardDeclaration>ABAP</forwardDeclaration>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="AUTOFILTERS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_OBJECTS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="C_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Excel Autofilter range name" EXPOSURE="2" STATE="1" EDITORDER="2 " ATTDECLTYP="2" ATTVALUE="&apos;_xlnm._FilterDatabase&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="C_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Excel Autofilter range name" EXPOSURE="2" STATE="1" EDITORDER="1 " ATTDECLTYP="2" ATTVALUE="&apos;_xlnm._FilterDatabase&apos;" ATTEXPVIRT="0" TYPTYPE="1" TYPE="STRING" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<attribute CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="MT_AUTOFILTERS" VERSION="1" LANGU="E" DESCRIPT="All autofilters" EXPOSURE="0" STATE="1" EDITORDER="1 " ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_AUTOFILTERS" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " TYPESRC_LENG="0 "/>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" VERSION="1" LANGU="E" DESCRIPT="Adds an Element to the Collection" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" MTDNEWEXC="X" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" SCONAME="IO_SHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" DESCRIPT="Autofilter" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>method ADD.
DATA: ls_autofilters TYPE ts_objects,
l_guid TYPE uuid.
l_guid = io_sheet-&gt;get_guid( ) .
READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = l_guid.
<exception CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="ADD" SCONAME="ZCX_EXCEL" VERSION="1" LANGU="E" DESCRIPT="Exceptions for ABAP2XLSX" MTDTYPE="0" EDITORDER="1 "/>
<source>METHOD add.
DATA: ls_autofilter LIKE LINE OF me-&gt;mt_autofilters.
FIELD-SYMBOLS: &lt;ls_autofilter&gt; LIKE LINE OF me-&gt;mt_autofilters.
READ TABLE me-&gt;mt_autofilters ASSIGNING &lt;ls_autofilter&gt; WITH TABLE KEY worksheet = io_sheet.
IF sy-subrc = 0.
ro_autofilter = ls_autofilters-autofilter.
ELSE.
CREATE OBJECT ro_autofilter
EXPORTING
io_sheet = io_sheet.
ls_autofilters-autofilter = ro_autofilter.
ls_autofilters-sheet_guid = l_guid.
INSERT ls_autofilters INTO TABLE autofilters .
RAISE EXCEPTION TYPE zcx_excel. &quot; adding another autofilter to sheet is not allowed
ENDIF.
endmethod.</source>
CREATE OBJECT ro_autofilter
EXPORTING
io_sheet = io_sheet.
ls_autofilter-worksheet = io_sheet.
ls_autofilter-autofilter = ro_autofilter.
INSERT ls_autofilter INTO TABLE me-&gt;mt_autofilters.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="CLEAR" VERSION="1" LANGU="E" DESCRIPT="Initializes the Collection" EXPOSURE="2" STATE="1" EDITORDER="2 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<source>method CLEAR.
<source>METHOD clear.
REFRESH autofilters.
CLEAR me-&gt;mt_autofilters.
endmethod.</source>
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" VERSION="1" LANGU="E" DESCRIPT="Gets Element" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="I_SHEET_GUID" VERSION="1" LANGU="E" DESCRIPT="GUID for the OLTP System (RAW16)" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="UUID"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>method GET.
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="IO_WORKSHEET" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="ZCL_EXCEL_WORKSHEET" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="I_SHEET_GUID" VERSION="1" LANGU="E" DESCRIPT="Global Unique ID for table" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="UUID" PAROPTIONL="X"/>
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="GET" SCONAME="RO_AUTOFILTER" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="3 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="3" TYPE="ZCL_EXCEL_AUTOFILTER"/>
<source>METHOD get.
DATA: ls_autofilters TYPE ts_objects.
DATA: ls_autofilter LIKE LINE OF me-&gt;mt_autofilters.
READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = i_sheet_guid.
FIELD-SYMBOLS: &lt;ls_autofilter&gt; LIKE LINE OF me-&gt;mt_autofilters.
READ TABLE me-&gt;mt_autofilters ASSIGNING &lt;ls_autofilter&gt; WITH TABLE KEY worksheet = io_worksheet.
IF sy-subrc = 0.
ro_autofilter = ls_autofilters-autofilter.
ro_autofilter = &lt;ls_autofilter&gt;-autofilter.
ELSE.
CLEAR ro_autofilter.
ENDIF.
endmethod.</source>
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="IS_EMPTY" VERSION="1" LANGU="E" DESCRIPT="Checks whether elements are contained" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="IS_EMPTY" SCONAME="R_EMPTY" VERSION="1" LANGU="E" DESCRIPT="General Flag" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="FLAG"/>
<source>method IS_EMPTY.
IF autofilters IS INITIAL.
<source>METHOD is_empty.
IF me-&gt;mt_autofilters IS INITIAL.
r_empty = abap_true.
ENDIF.
endmethod.</source>
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="REMOVE" VERSION="1" LANGU="E" DESCRIPT="Deletes an Element from the Collection" EXPOSURE="2" STATE="1" EDITORDER="5 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="REMOVE" SCONAME="I_SHEET_GUID" VERSION="1" LANGU="E" DESCRIPT="Worksheet" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="UUID"/>
<source>method REMOVE.
DATA: ls_autofilters TYPE ts_objects.
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="REMOVE" SCONAME="IO_SHEET" VERSION="1" LANGU="E" DESCRIPT="REF TO ZCL_EXCEL_WORKSHEET or UUID" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ANY"/>
<source>METHOD remove.
DELETE autofilters WHERE sheet_guid = i_sheet_guid.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet.
endmethod.</source>
FIELD-SYMBOLS: &lt;ls_autofilter&gt; LIKE LINE OF me-&gt;mt_autofilters.
DELETE TABLE me-&gt;mt_autofilters WITH TABLE KEY worksheet = lo_worksheet.
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="SIZE" VERSION="1" LANGU="E" DESCRIPT="Specifies number of contained elements" EXPOSURE="2" STATE="1" EDITORDER="6 " DISPID="0 " MTDTYPE="0" MTDDECLTYP="0" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_AUTOFILTERS" CMPNAME="SIZE" SCONAME="R_SIZE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="I"/>
<source>method SIZE.
DESCRIBE TABLE autofilters LINES r_size.
endmethod.</source>
<source>METHOD size.
DESCRIBE TABLE me-&gt;mt_autofilters LINES r_size.
ENDMETHOD.</source>
</method>
</CLAS>

View File

@ -4,4 +4,5 @@
<dd03p TABNAME="ZEXCEL_CONDITIONAL_TOP10" FIELDNAME="TOPXX_COUNT" DDLANGUAGE="E" POSITION="0001" ROLLNAME="INT4" ADMINFIELD="0" INTTYPE="X" INTLEN="000004" DOMNAME="INT4" ROUTPUTLEN="000000" HEADLEN="00" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="INT4" LENG="000010" OUTPUTLEN="000010" DECIMALS="000000" SIGNFLAG="X" MASK=" INT4E" MASKLEN="0000" DDTEXT="Natural Number" SCRTEXT_S="Number" SCRTEXT_M="Number" SCRTEXT_L="Natural Number" DOMNAME3L="INT4" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_TOP10" FIELDNAME="PERCENT" DDLANGUAGE="E" POSITION="0002" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_TOP10" FIELDNAME="BOTTOM" DDLANGUAGE="E" POSITION="0003" ROLLNAME="FLAG" ADMINFIELD="0" INTTYPE="C" INTLEN="000002" DOMNAME="FLAG" ROUTPUTLEN="000000" HEADLEN="55" SCRLEN1="10" SCRLEN2="15" SCRLEN3="20" DTELMASTER="D" DATATYPE="CHAR" LENG="000001" OUTPUTLEN="000001" DECIMALS="000000" VALEXI="X" MASK=" CHARE" MASKLEN="0000" DDTEXT="General Flag" REPTEXT="Flag" SCRTEXT_S="Indicator" SCRTEXT_M="Indicator" SCRTEXT_L="Indicator" DOMNAME3L="FLAG" SHLPORIGIN="F" DEPTH="00" COMPTYPE="E" DEFFDNAME="FLAG" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
<dd03p TABNAME="ZEXCEL_CONDITIONAL_TOP10" FIELDNAME="CELL_STYLE" DDLANGUAGE="E" POSITION="0004" ROLLNAME="ZEXCEL_CELL_STYLE" ADMINFIELD="0" INTTYPE="X" INTLEN="000016" DOMNAME="UUID" ROUTPUTLEN="000000" HEADLEN="16" SCRLEN1="10" SCRLEN2="16" SCRLEN3="20" DTELMASTER="E" DATATYPE="RAW" LENG="000016" OUTPUTLEN="000032" DECIMALS="000000" MASK=" RAW E" MASKLEN="0000" DDTEXT="Style identifier" REPTEXT="Style identifier" SCRTEXT_S="Style no" SCRTEXT_M="Style identifier" SCRTEXT_L="Style identifier" DOMNAME3L="UUID" DEPTH="00" COMPTYPE="E" EXCLASS="0" DBPOSITION="0000" OUTPUTSTYLE="00" STRORLOCPOS="00"/>
</TABL>