mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 06:16:14 +08:00

git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@272 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
562 lines
28 KiB
XML
562 lines
28 KiB
XML
<?xml version="1.0" encoding="utf-16"?>
|
|
<CLAS CLSNAME="ZCL_EXCEL_CONVERTER_ALV" VERSION="1" LANGU="E" DESCRIPT="ALV grid interface implementation" UUID="4F25C0C5503300EAE1008000C008015A" CATEGORY="00" EXPOSURE="2" STATE="1" RELEASE="0" AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDBY="RTURNHEIM" CHANGEDON="20120131" CHGDANYON="00000000" CLSABSTRCT="X" CLSCCINCL="X" FIXPT="X" UNICODE="X" R3RELEASE="700" CLSBCCAT="00" DURATION_TYPE="0 " RISK_LEVEL="0 ">
|
|
<implementing CLSNAME="ZCL_EXCEL_CONVERTER_ALV" REFCLSNAME="ZIF_EXCEL_CONVERTER" VERSION="1" EXPOSURE="2" STATE="1" AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDBY="RTURNHEIM" CHANGEDON="20120131" RELTYPE="1" IMPABSTRCT="X"/>
|
|
<publicSection>class ZCL_EXCEL_CONVERTER_ALV definition
|
|
public
|
|
abstract
|
|
create public .
|
|
|
|
*"* public components of class ZCL_EXCEL_CONVERTER_ALV
|
|
*"* do not include other source files here!!!
|
|
public section.
|
|
type-pools ABAP .
|
|
type-pools KKBLO .
|
|
|
|
interfaces ZIF_EXCEL_CONVERTER
|
|
all methods abstract .
|
|
|
|
class-methods CLASS_CONSTRUCTOR .</publicSection>
|
|
<protectedSection>*"* protected components of class ZCL_EXCEL_CONVERTER_ALV
|
|
*"* do not include other source files here!!!
|
|
protected section.
|
|
|
|
data WT_SORT type LVC_T_SORT .
|
|
data WT_FILT type LVC_T_FILT .
|
|
data WT_FCAT type LVC_T_FCAT .
|
|
data WS_LAYO type LVC_S_LAYO .
|
|
|
|
methods UPDATE_CATALOG
|
|
changing
|
|
!CS_LAYOUT type ZEXCEL_S_CONVERTER_LAYO
|
|
!CT_FIELDCATALOG type ZEXCEL_T_CONVERTER_FCAT .
|
|
methods APPLY_SORT
|
|
importing
|
|
!IT_TABLE type STANDARD TABLE
|
|
exporting
|
|
!EO_TABLE type ref to DATA .
|
|
methods GET_COLOR
|
|
importing
|
|
!IO_TABLE type ref to DATA
|
|
exporting
|
|
!ET_COLORS type ZEXCEL_T_CONVERTER_COL .
|
|
methods GET_FILTER
|
|
importing
|
|
!IO_TABLE type ref to DATA
|
|
exporting
|
|
!ET_FILTER type ZEXCEL_T_CONVERTER_FIL .</protectedSection>
|
|
<privateSection>*"* private components of class ZCL_EXCEL_CONVERTER_ALV
|
|
*"* do not include other source files here!!!
|
|
private section.
|
|
|
|
class-data WT_COLORS type TT_COL_CONVERTER .</privateSection>
|
|
<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_col_converter,
|
|
col TYPE lvc_col,
|
|
int TYPE lvc_int,
|
|
inv TYPE lvc_inv,
|
|
fontcolor TYPE zexcel_style_color_argb,
|
|
fillcolor TYPE zexcel_style_color_argb,
|
|
END OF ts_col_converter,
|
|
|
|
tt_col_converter TYPE HASHED TABLE OF ts_col_converter WITH UNIQUE KEY col int inv.</localTypes>
|
|
<localMacros>*"* use this source file for any macro definitions you need
|
|
*"* in the implementation part of the class</localMacros>
|
|
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER_ALV" TYPEGROUP="ABAP" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
|
|
<typeUsage CLSNAME="ZCL_EXCEL_CONVERTER_ALV" TYPEGROUP="KKBLO" VERSION="1" TPUTYPE="0" EXPLICIT="X"/>
|
|
<forwardDeclaration>ABAP</forwardDeclaration>
|
|
<forwardDeclaration>KKBLO</forwardDeclaration>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WS_LAYO" VERSION="1" LANGU="E" DESCRIPT="ALV control: Layout structure" EXPOSURE="1" STATE="1" EDITORDER="4 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_S_LAYO" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="700" TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_COLORS" VERSION="1" LANGU="E" EXPOSURE="0" STATE="1" EDITORDER="5 " AUTHOR="RTURNHEIM" CREATEDON="20120206" CHANGEDBY="RTURNHEIM" CHANGEDON="20120212" ATTDECLTYP="1" ATTEXPVIRT="0" TYPTYPE="1" TYPE="TT_COL_CONVERTER" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="700" TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_FCAT" VERSION="1" LANGU="E" DESCRIPT="Field Catalog for List Viewer Control" EXPOSURE="1" STATE="1" EDITORDER="3 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_FCAT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="700" TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_FILT" VERSION="1" LANGU="E" DESCRIPT="ALV control: Table of filter conditions" EXPOSURE="1" STATE="1" EDITORDER="2 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_FILT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="700" TYPESRC_LENG="0 "/>
|
|
<attribute CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="WT_SORT" VERSION="1" LANGU="E" DESCRIPT="ALV Control: Table of Sort Criteria" EXPOSURE="1" STATE="1" EDITORDER="1 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" ATTDECLTYP="0" ATTEXPVIRT="0" TYPTYPE="1" TYPE="LVC_T_SORT" SRCROW1="0 " SRCCOLUMN1="0 " SRCROW2="0 " SRCCOLUMN2="0 " R3RELEASE="700" TYPESRC_LENG="0 "/>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" VERSION="1" LANGU="E" DESCRIPT="Apply sort criteria to data table" EXPOSURE="1" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120207" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="700" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" SCONAME="IT_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120208" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STANDARD TABLE"/>
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="APPLY_SORT" SCONAME="EO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120208" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
|
|
<source>METHOD apply_sort.
|
|
DATA: lt_otab TYPE abap_sortorder_tab,
|
|
ls_otab TYPE abap_sortorder.
|
|
|
|
FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE,
|
|
<fs_sort> TYPE lvc_s_sort.
|
|
|
|
CREATE DATA eo_table LIKE it_table.
|
|
ASSIGN eo_table->* TO <fs_table>.
|
|
|
|
<fs_table> = it_table.
|
|
|
|
sort wt_sort by spos.
|
|
LOOP AT wt_sort ASSIGNING <fs_sort>.
|
|
IF <fs_sort>-up = abap_true.
|
|
ls_otab-name = <fs_sort>-fieldname.
|
|
ls_otab-descending = abap_false.
|
|
* ls_otab-astext = abap_true. " not only text fields
|
|
INSERT ls_otab INTO TABLE lt_otab.
|
|
ENDIF.
|
|
IF <fs_sort>-down = abap_true.
|
|
ls_otab-name = <fs_sort>-fieldname.
|
|
ls_otab-descending = abap_true.
|
|
* ls_otab-astext = abap_true. " not only text fields
|
|
INSERT ls_otab INTO TABLE lt_otab.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
IF lt_otab IS NOT INITIAL.
|
|
SORT <fs_table> BY (lt_otab).
|
|
ENDIF.
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="CLASS_CONSTRUCTOR" VERSION="1" LANGU="E" DESCRIPT="CLASS_CONSTRUCTOR" EXPOSURE="2" STATE="1" EDITORDER="1 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120206" CHANGEDON="00000000" MTDTYPE="2" MTDDECLTYP="1" R3RELEASE="700" BCMTDCAT="00" BCMTDSYN="0">
|
|
<source>METHOD class_constructor.
|
|
* let's fill the color conversion routines.
|
|
DATA: ls_color TYPE ts_col_converter.
|
|
* 0 all combination the same
|
|
ls_color-col = 0.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 0.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 0.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 0.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
* Blue
|
|
ls_color-col = 1.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFB0E4FC'. " 176 228 252 blue
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 1.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFB0E4FC'. " 176 228 252 blue
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 1.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FF5FCBFE'. " 095 203 254 Int blue
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 1.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FF5FCBFE'. " 095 203 254
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
* Gray
|
|
ls_color-col = 2.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'.
|
|
ls_color-fillcolor = 'FFE5EAF0'. " 229 234 240 gray
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 2.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFE5EAF0'. " 229 234 240 gray
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 2.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFD8E8F4'. " 216 234 244 int gray
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 2.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFD8E8F4'. " 216 234 244 int gray
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
*Yellow
|
|
ls_color-col = 3.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFEFEB8'. " 254 254 184 yellow
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 3.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFFEFEB8'. " 254 254 184 yellow
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 3.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFF9ED5D'. " 249 237 093 int yellow
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 3.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFF9ED5D'. " 249 237 093 int yellow
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
* light blue
|
|
ls_color-col = 4.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFCEE7FB'. " 206 231 251 light blue
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 4.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFCEE7FB'. " 206 231 251 light blue
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 4.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FF9ACCEF'. " 154 204 239 int light blue
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 4.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FF9ACCEF'. " 154 204 239 int light blue
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
* Green
|
|
ls_color-col = 5.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFCEF8AE'. " 206 248 174 Green
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 5.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFCEF8AE'. " 206 248 174 Green
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 5.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FF7AC769'. " 122 199 105 int Green
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 5.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FF7AC769'. " 122 199 105 int Green
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
* Red
|
|
ls_color-col = 6.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFDBBBC'. " 253 187 188 Red
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 6.
|
|
ls_color-int = 0.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFFDBBBC'. " 253 187 188 Red
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 6.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 0.
|
|
ls_color-fontcolor = 'FF000000'. " 000 000 000 Black
|
|
ls_color-fillcolor = 'FFFB6B6B'. " 251 107 107 int Red
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ls_color-col = 6.
|
|
ls_color-int = 1.
|
|
ls_color-inv = 1.
|
|
ls_color-fontcolor = 'FFFB6B6B'. " 251 107 107 int Red
|
|
ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White
|
|
INSERT ls_color INTO TABLE wt_colors.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" VERSION="1" LANGU="E" DESCRIPT="Create color table for formating" EXPOSURE="1" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120210" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="700" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120210" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_COLOR" SCONAME="ET_COLORS" VERSION="1" LANGU="E" DESCRIPT="Table type for color information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120212" CHANGEDON="00000000" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_COL"/>
|
|
<source>METHOD get_color.
|
|
DATA: ls_con_col TYPE zexcel_s_converter_col,
|
|
ls_color TYPE ts_col_converter,
|
|
l_line TYPE i.
|
|
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE,
|
|
<fs_stab> TYPE ANY,
|
|
<fs> TYPE ANY,
|
|
<fs_tcol> TYPE lvc_t_scol,
|
|
<fs_scol> TYPE lvc_s_scol.
|
|
* Loop trough the table to set the color properties of each line. The color properties field is
|
|
* Char 4 and the characters is set as follows:
|
|
* Char 1 = C = This is a color property
|
|
* Char 2 = 6 = Color code (1 - 7)
|
|
* Char 3 = Intensified on/of = 1 = on
|
|
* Char 4 = Inverse display = 0 = of
|
|
|
|
ASSIGN io_table->* TO <fs_tab>.
|
|
|
|
IF ws_layo-info_fname IS NOT INITIAL OR
|
|
ws_layo-ctab_fname IS NOT INITIAL.
|
|
LOOP AT <fs_tab> ASSIGNING <fs_stab>.
|
|
l_line = sy-tabix.
|
|
IF ws_layo-info_fname IS NOT INITIAL.
|
|
ASSIGN COMPONENT ws_layo-info_fname OF STRUCTURE <fs_stab> TO <fs>.
|
|
IF sy-subrc = 0.
|
|
IF <fs> IS NOT INITIAL.
|
|
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = <fs>+1(1)
|
|
int = <fs>+2(1)
|
|
inv = <fs>+3(1).
|
|
IF sy-subrc = 0.
|
|
ls_con_col-rownumber = l_line.
|
|
ls_con_col-columnname = space.
|
|
ls_con_col-fontcolor = ls_color-fontcolor.
|
|
ls_con_col-fillcolor = ls_color-fillcolor.
|
|
INSERT ls_con_col INTO TABLE et_colors.
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDIF.
|
|
IF ws_layo-ctab_fname IS NOT INITIAL.
|
|
ASSIGN COMPONENT ws_layo-ctab_fname OF STRUCTURE <fs_stab> TO <fs_tcol>.
|
|
IF sy-subrc = 0.
|
|
LOOP AT <fs_tcol> ASSIGNING <fs_scol>.
|
|
READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = <fs_scol>-color-col
|
|
int = <fs_scol>-color-int
|
|
inv = <fs_scol>-color-inv.
|
|
IF sy-subrc = 0.
|
|
ls_con_col-rownumber = l_line.
|
|
ls_con_col-columnname = <fs_scol>-fname.
|
|
ls_con_col-fontcolor = ls_color-fontcolor.
|
|
ls_con_col-fillcolor = ls_color-fillcolor.
|
|
ls_con_col-nokeycol = <fs_scol>-nokeycol.
|
|
INSERT ls_con_col INTO TABLE et_colors.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
ENDIF.
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" VERSION="1" LANGU="E" DESCRIPT="Create filter values" EXPOSURE="1" STATE="1" EDITORDER="5 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120305" CHANGEDON="00000000" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="700" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" SCONAME="IO_TABLE" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120305" CHANGEDON="00000000" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="3" TYPE="DATA"/>
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="GET_FILTER" SCONAME="ET_FILTER" VERSION="1" LANGU="E" DESCRIPT="Table type for filter information of cells for converter" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120305" CHANGEDBY="RTURNHEIM" CHANGEDON="20120305" PARDECLTYP="1" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FIL"/>
|
|
<source>METHOD get_filter.
|
|
DATA: ls_filt TYPE lvc_s_filt,
|
|
l_line TYPE i,
|
|
ls_filter TYPE zexcel_s_converter_fil.
|
|
DATA: lo_addit TYPE REF TO cl_abap_elemdescr,
|
|
lt_components_tab TYPE cl_abap_structdescr=>component_table,
|
|
ls_components TYPE abap_componentdescr,
|
|
lo_table TYPE REF TO cl_abap_tabledescr,
|
|
lo_struc TYPE REF TO cl_abap_structdescr,
|
|
lo_tdata TYPE REF TO data,
|
|
lo_sdata TYPE REF TO data.
|
|
|
|
FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE,
|
|
<fs_stab> TYPE ANY,
|
|
<fs> TYPE ANY,
|
|
<fs1> TYPE ANY,
|
|
<fs_srange> TYPE ANY,
|
|
<fs_trange> TYPE STANDARD TABLE.
|
|
|
|
ASSIGN io_table->* TO <fs_tab>.
|
|
|
|
LOOP AT wt_filt INTO ls_filt.
|
|
LOOP AT <fs_tab> ASSIGNING <fs_stab>.
|
|
l_line = sy-tabix.
|
|
ASSIGN COMPONENT ls_filt-fieldname OF STRUCTURE <fs_stab> TO <fs>.
|
|
IF sy-subrc = 0.
|
|
IF l_line = 1.
|
|
REFRESH lt_components_tab.
|
|
ls_components-name = 'SIGN'.
|
|
lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-sign ).
|
|
ls_components-type = lo_addit .
|
|
INSERT ls_components INTO TABLE lt_components_tab.
|
|
ls_components-name = 'OPTION'.
|
|
lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-option ).
|
|
ls_components-type = lo_addit .
|
|
INSERT ls_components INTO TABLE lt_components_tab.
|
|
ls_components-name = 'LOW'.
|
|
lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ).
|
|
ls_components-type = lo_addit .
|
|
INSERT ls_components INTO TABLE lt_components_tab.
|
|
ls_components-name = 'HIGH'.
|
|
lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ).
|
|
ls_components-type = lo_addit .
|
|
INSERT ls_components INTO TABLE lt_components_tab.
|
|
"create new line type
|
|
lo_struc = cl_abap_structdescr=>create( lt_components_tab ).
|
|
lo_table = cl_abap_tabledescr=>create( lo_struc ).
|
|
|
|
CREATE DATA lo_tdata TYPE HANDLE lo_table.
|
|
CREATE DATA lo_sdata TYPE HANDLE lo_struc.
|
|
|
|
ASSIGN lo_tdata->* TO <fs_trange>.
|
|
ASSIGN lo_sdata->* TO <fs_srange>.
|
|
ENDIF.
|
|
REFRESH <fs_trange>.
|
|
ASSIGN COMPONENT 'SIGN' OF STRUCTURE <fs_srange> TO <fs1>.
|
|
<fs1> = ls_filt-sign.
|
|
ASSIGN COMPONENT 'OPTION' OF STRUCTURE <fs_srange> TO <fs1>.
|
|
<fs1> = ls_filt-option.
|
|
ASSIGN COMPONENT 'LOW' OF STRUCTURE <fs_srange> TO <fs1>.
|
|
<fs1> = ls_filt-low.
|
|
ASSIGN COMPONENT 'HIGH' OF STRUCTURE <fs_srange> TO <fs1>.
|
|
<fs1> = ls_filt-high.
|
|
INSERT <fs_srange> INTO TABLE <fs_trange>.
|
|
IF <fs> IN <fs_trange>.
|
|
ls_filter-rownumber = l_line.
|
|
ls_filter-columnname = ls_filt-fieldname.
|
|
INSERT ls_filter INTO TABLE et_filter.
|
|
ENDIF.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
ENDLOOP.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
<method CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" VERSION="1" LANGU="E" DESCRIPT="Create fieldcatalog and layout" EXPOSURE="1" STATE="1" EDITORDER="2 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDBY="RTURNHEIM" CHANGEDON="20120206" MTDTYPE="0" MTDDECLTYP="0" R3RELEASE="700" BCMTDCAT="00" BCMTDSYN="0">
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" SCONAME="CS_LAYOUT" VERSION="1" LANGU="E" DESCRIPT="Converter settings for table" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_S_CONVERTER_LAYO"/>
|
|
<parameter CLSNAME="ZCL_EXCEL_CONVERTER_ALV" CMPNAME="UPDATE_CATALOG" SCONAME="CT_FIELDCATALOG" VERSION="1" LANGU="E" DESCRIPT="Conter table for tabel fields" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="RTURNHEIM" CREATEDON="20120131" CHANGEDON="00000000" PARDECLTYP="2" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_T_CONVERTER_FCAT"/>
|
|
<source>METHOD update_catalog.
|
|
DATA: ls_fieldcatalog TYPE zexcel_s_converter_fcat,
|
|
ls_ref TYPE salv_s_ddic_reference,
|
|
ls_fcat TYPE lvc_s_fcat,
|
|
ls_sort TYPE lvc_s_sort,
|
|
l_decimals TYPE lvc_decmls.
|
|
|
|
FIELD-SYMBOLS: <fs_scat> TYPE zexcel_s_converter_fcat.
|
|
|
|
IF ws_layo-zebra IS NOT INITIAL.
|
|
cs_layout-is_stripped = abap_true.
|
|
ENDIF.
|
|
IF ws_layo-no_keyfix IS INITIAL OR
|
|
ws_layo-no_keyfix = '0'.
|
|
cs_layout-is_fixed = abap_true.
|
|
ENDIF.
|
|
LOOP AT wt_fcat INTO ls_fcat.
|
|
CLEAR: ls_fieldcatalog,
|
|
l_decimals.
|
|
IF ls_fcat-tech = abap_false.
|
|
ls_fieldcatalog-tabname = ls_fcat-tabname.
|
|
ls_fieldcatalog-fieldname = ls_fcat-fieldname .
|
|
ls_fieldcatalog-columnname = ls_fcat-fieldname .
|
|
ls_fieldcatalog-position = ls_fcat-col_pos.
|
|
ls_fieldcatalog-col_id = ls_fcat-col_id.
|
|
ls_fieldcatalog-convexit = ls_fcat-convexit.
|
|
ls_fieldcatalog-inttype = ls_fcat-inttype.
|
|
ls_fieldcatalog-scrtext_s = ls_fcat-scrtext_s .
|
|
ls_fieldcatalog-scrtext_m = ls_fcat-scrtext_m .
|
|
ls_fieldcatalog-scrtext_l = ls_fcat-scrtext_l.
|
|
l_decimals = ls_fcat-decimals_o.
|
|
IF l_decimals IS NOT INITIAL.
|
|
ls_fieldcatalog-decimals = l_decimals.
|
|
ELSE.
|
|
ls_fieldcatalog-decimals = ls_fcat-decimals .
|
|
ENDIF.
|
|
CASE ls_fcat-do_sum.
|
|
WHEN abap_true.
|
|
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum.
|
|
WHEN 'A'.
|
|
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_min.
|
|
WHEN 'B' .
|
|
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_max.
|
|
WHEN 'C' .
|
|
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_average.
|
|
WHEN OTHERS.
|
|
CLEAR ls_fieldcatalog-totals_function .
|
|
ENDCASE.
|
|
ls_fieldcatalog-fix_column = ls_fcat-fix_column.
|
|
IF ws_layo-cwidth_opt IS INITIAL.
|
|
IF ls_fcat-col_opt IS NOT INITIAL.
|
|
ls_fieldcatalog-is_optimized = abap_true.
|
|
ENDIF.
|
|
ELSE.
|
|
ls_fieldcatalog-is_optimized = abap_true.
|
|
ENDIF.
|
|
IF ls_fcat-no_out IS NOT INITIAL.
|
|
ls_fieldcatalog-is_hidden = abap_true.
|
|
ls_fieldcatalog-position = ls_fieldcatalog-col_id. " We hide based on orginal data structure
|
|
ENDIF.
|
|
* Alignment in each cell
|
|
CASE ls_fcat-just.
|
|
WHEN 'R'.
|
|
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_right.
|
|
WHEN 'L'.
|
|
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_left.
|
|
WHEN 'C'.
|
|
ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_center.
|
|
WHEN OTHERS.
|
|
CLEAR ls_fieldcatalog-alignment.
|
|
ENDCASE.
|
|
* Check for subtotals.
|
|
READ TABLE wt_sort INTO ls_sort WITH KEY fieldname = ls_fcat-fieldname.
|
|
IF sy-subrc = 0.
|
|
ls_fieldcatalog-sort_level = 0 .
|
|
ls_fieldcatalog-is_subtotalled = ls_sort-subtot.
|
|
ls_fieldcatalog-is_collapsed = ls_sort-expa.
|
|
IF ls_fieldcatalog-is_subtotalled = abap_true.
|
|
ls_fieldcatalog-sort_level = ls_sort-spos.
|
|
ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum. " we need function for text
|
|
ENDIF.
|
|
ENDIF.
|
|
APPEND ls_fieldcatalog TO ct_fieldcatalog.
|
|
ENDIF.
|
|
ENDLOOP.
|
|
SORT ct_fieldcatalog BY sort_level ASCENDING.
|
|
cs_layout-max_subtotal_level = 0.
|
|
LOOP AT ct_fieldcatalog ASSIGNING <fs_scat> WHERE sort_level > 0.
|
|
cs_layout-max_subtotal_level = cs_layout-max_subtotal_level + 1.
|
|
<fs_scat>-sort_level = cs_layout-max_subtotal_level.
|
|
ENDLOOP.
|
|
|
|
ENDMETHOD.</source>
|
|
</method>
|
|
</CLAS>
|