mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-04 15:16:21 +08:00
issue #377 - Added missing Structureenhancement and autofilter adjustment to get rid of sheet-guid
This commit is contained in:
parent
f1981a4ebd
commit
f1b69468d1
|
@ -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 --> 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 -> core -> ZSAPLINK -> CLAS -> 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>*"* local class implementation for public class
|
||||
*"* use this source file for the implementation part of
|
||||
*"* local helper classes</localImplementation>
|
||||
<localTypes>*"* use this source file for any type declarations (class
|
||||
*"* definitions, interfaces or data types) you need for method
|
||||
*"* implementation or private method'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>
|
||||
*"* implementation or private method's signature</localTypes>
|
||||
<localMacros>*"* use this source file for any macro definitions you need
|
||||
*"* 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="'_xlnm._FilterDatabase'" 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="'_xlnm._FilterDatabase'" 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->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->mt_autofilters.
|
||||
|
||||
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
|
||||
|
||||
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> 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. " 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->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->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->mt_autofilters.
|
||||
|
||||
READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = i_sheet_guid.
|
||||
FIELD-SYMBOLS: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
|
||||
|
||||
READ TABLE me->mt_autofilters ASSIGNING <ls_autofilter> WITH TABLE KEY worksheet = io_worksheet.
|
||||
IF sy-subrc = 0.
|
||||
ro_autofilter = ls_autofilters-autofilter.
|
||||
ro_autofilter = <ls_autofilter>-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->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: <ls_autofilter> LIKE LINE OF me->mt_autofilters.
|
||||
|
||||
DELETE TABLE me->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->mt_autofilters LINES r_size.
|
||||
ENDMETHOD.</source>
|
||||
</method>
|
||||
</CLAS>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user