mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 19:38:15 +08:00

* remove TYPE-POOLS statements * fix whitespace Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
187 lines
7.8 KiB
ABAP
187 lines
7.8 KiB
ABAP
CLASS zcl_excel_style_fill DEFINITION
|
|
PUBLIC
|
|
FINAL
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
|
|
*"* public components of class ZCL_EXCEL_STYLE_FILL
|
|
*"* do not include other source files here!!!
|
|
CONSTANTS c_fill_none TYPE zexcel_fill_type VALUE 'none'. "#EC NOTEXT
|
|
CONSTANTS c_fill_solid TYPE zexcel_fill_type VALUE 'solid'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_linear TYPE zexcel_fill_type VALUE 'linear'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_path TYPE zexcel_fill_type VALUE 'path'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkdown TYPE zexcel_fill_type VALUE 'darkDown'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkgray TYPE zexcel_fill_type VALUE 'darkGray'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkgrid TYPE zexcel_fill_type VALUE 'darkGrid'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkhorizontal TYPE zexcel_fill_type VALUE 'darkHorizontal'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darktrellis TYPE zexcel_fill_type VALUE 'darkTrellis'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkup TYPE zexcel_fill_type VALUE 'darkUp'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_darkvertical TYPE zexcel_fill_type VALUE 'darkVertical'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_gray0625 TYPE zexcel_fill_type VALUE 'gray0625'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_gray125 TYPE zexcel_fill_type VALUE 'gray125'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lightdown TYPE zexcel_fill_type VALUE 'lightDown'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lightgray TYPE zexcel_fill_type VALUE 'lightGray'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lightgrid TYPE zexcel_fill_type VALUE 'lightGrid'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lighthorizontal TYPE zexcel_fill_type VALUE 'lightHorizontal'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lighttrellis TYPE zexcel_fill_type VALUE 'lightTrellis'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lightup TYPE zexcel_fill_type VALUE 'lightUp'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_lightvertical TYPE zexcel_fill_type VALUE 'lightVertical'. "#EC NOTEXT
|
|
CONSTANTS c_fill_pattern_mediumgray TYPE zexcel_fill_type VALUE 'mediumGray'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_horizontal90 TYPE zexcel_fill_type VALUE 'horizontal90'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_horizontal270 TYPE zexcel_fill_type VALUE 'horizontal270'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_horizontalb TYPE zexcel_fill_type VALUE 'horizontalb'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_vertical TYPE zexcel_fill_type VALUE 'vertical'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_fromcenter TYPE zexcel_fill_type VALUE 'fromCenter'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_diagonal45 TYPE zexcel_fill_type VALUE 'diagonal45'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_diagonal45b TYPE zexcel_fill_type VALUE 'diagonal45b'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_diagonal135 TYPE zexcel_fill_type VALUE 'diagonal135'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_diagonal135b TYPE zexcel_fill_type VALUE 'diagonal135b'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_cornerlt TYPE zexcel_fill_type VALUE 'cornerLT'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_cornerlb TYPE zexcel_fill_type VALUE 'cornerLB'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_cornerrt TYPE zexcel_fill_type VALUE 'cornerRT'. "#EC NOTEXT
|
|
CONSTANTS c_fill_gradient_cornerrb TYPE zexcel_fill_type VALUE 'cornerRB'. "#EC NOTEXT
|
|
DATA gradtype TYPE zexcel_s_gradient_type .
|
|
DATA filltype TYPE zexcel_fill_type .
|
|
DATA rotation TYPE zexcel_rotation .
|
|
DATA fgcolor TYPE zexcel_s_style_color .
|
|
DATA bgcolor TYPE zexcel_s_style_color .
|
|
|
|
METHODS constructor .
|
|
METHODS get_structure
|
|
RETURNING
|
|
VALUE(es_fill) TYPE zexcel_s_style_fill .
|
|
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
|
|
*"* do not include other source files here!!!
|
|
PROTECTED SECTION.
|
|
*"* private components of class ZCL_EXCEL_STYLE_FILL
|
|
*"* do not include other source files here!!!
|
|
PRIVATE SECTION.
|
|
|
|
METHODS build_gradient .
|
|
METHODS check_filltype_is_gradient
|
|
RETURNING
|
|
VALUE(rv_is_gradient) TYPE abap_bool .
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_excel_style_fill IMPLEMENTATION.
|
|
|
|
|
|
METHOD build_gradient.
|
|
CHECK check_filltype_is_gradient( ) EQ abap_true.
|
|
CLEAR gradtype.
|
|
CASE filltype.
|
|
WHEN c_fill_gradient_horizontal90.
|
|
gradtype-degree = '90'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_horizontal270.
|
|
gradtype-degree = '270'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_horizontalb.
|
|
gradtype-degree = '90'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '0.5'.
|
|
gradtype-position3 = '1'.
|
|
WHEN c_fill_gradient_vertical.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_fromcenter.
|
|
gradtype-type = c_fill_gradient_path.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
gradtype-bottom = '0.5'.
|
|
gradtype-top = '0.5'.
|
|
gradtype-left = '0.5'.
|
|
gradtype-right = '0.5'.
|
|
WHEN c_fill_gradient_diagonal45.
|
|
gradtype-degree = '45'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_diagonal45b.
|
|
gradtype-degree = '45'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '0.5'.
|
|
gradtype-position3 = '1'.
|
|
WHEN c_fill_gradient_diagonal135.
|
|
gradtype-degree = '135'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_diagonal135b.
|
|
gradtype-degree = '135'.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '0.5'.
|
|
gradtype-position3 = '1'.
|
|
WHEN c_fill_gradient_cornerlt.
|
|
gradtype-type = c_fill_gradient_path.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
WHEN c_fill_gradient_cornerlb.
|
|
gradtype-type = c_fill_gradient_path.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
gradtype-bottom = '1'.
|
|
gradtype-top = '1'.
|
|
WHEN c_fill_gradient_cornerrt.
|
|
gradtype-type = c_fill_gradient_path.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
gradtype-left = '1'.
|
|
gradtype-right = '1'.
|
|
WHEN c_fill_gradient_cornerrb.
|
|
gradtype-type = c_fill_gradient_path.
|
|
gradtype-position1 = '0'.
|
|
gradtype-position2 = '1'.
|
|
gradtype-bottom = '0.5'.
|
|
gradtype-top = '0.5'.
|
|
gradtype-left = '0.5'.
|
|
gradtype-right = '0.5'.
|
|
ENDCASE.
|
|
|
|
ENDMETHOD. "build_gradient
|
|
|
|
|
|
METHOD check_filltype_is_gradient.
|
|
CASE filltype.
|
|
WHEN c_fill_gradient_horizontal90 OR
|
|
c_fill_gradient_horizontal270 OR
|
|
c_fill_gradient_horizontalb OR
|
|
c_fill_gradient_vertical OR
|
|
c_fill_gradient_fromcenter OR
|
|
c_fill_gradient_diagonal45 OR
|
|
c_fill_gradient_diagonal45b OR
|
|
c_fill_gradient_diagonal135 OR
|
|
c_fill_gradient_diagonal135b OR
|
|
c_fill_gradient_cornerlt OR
|
|
c_fill_gradient_cornerlb OR
|
|
c_fill_gradient_cornerrt OR
|
|
c_fill_gradient_cornerrb.
|
|
rv_is_gradient = abap_true.
|
|
ENDCASE.
|
|
ENDMETHOD. "check_filltype_is_gradient
|
|
|
|
|
|
METHOD constructor.
|
|
filltype = zcl_excel_style_fill=>c_fill_none.
|
|
fgcolor-theme = zcl_excel_style_color=>c_theme_not_set.
|
|
fgcolor-indexed = zcl_excel_style_color=>c_indexed_not_set.
|
|
bgcolor-theme = zcl_excel_style_color=>c_theme_not_set.
|
|
bgcolor-indexed = zcl_excel_style_color=>c_indexed_sys_foreground.
|
|
rotation = 0.
|
|
|
|
ENDMETHOD. "CONSTRUCTOR
|
|
|
|
|
|
METHOD get_structure.
|
|
es_fill-rotation = me->rotation.
|
|
es_fill-filltype = me->filltype.
|
|
es_fill-fgcolor = me->fgcolor.
|
|
es_fill-bgcolor = me->bgcolor.
|
|
me->build_gradient( ).
|
|
es_fill-gradtype = me->gradtype.
|
|
ENDMETHOD. "GET_STRUCTURE
|
|
ENDCLASS.
|