From cd5e43193bd9cf3b4cc0fc4951db3a68ed11abfc Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Thu, 31 Oct 2013 21:05:10 +0000 Subject: [PATCH] Databar Conditional Formatting by Albert Lladanosa git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@437 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk | 190 +++++++-------------- ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk | 47 ++++- ZA2X/TABL/ZEXCEL_CONDITIONAL_DATABAR.slnk | 9 + 3 files changed, 113 insertions(+), 133 deletions(-) create mode 100644 ZA2X/TABL/ZEXCEL_CONDITIONAL_DATABAR.slnk diff --git a/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk b/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk index 270e89b..f90f932 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk @@ -1,79 +1,5 @@ - - - class ZCL_EXCEL_STYLE_CONDITIONAL definition - public - final - create public . - -public section. -*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL -*"* do not include other source files here!!! - - constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT - constants C_CFVO_TYPE_NUMBER type ZEXCEL_CONDITIONAL_TYPE value 'num'. "#EC NOTEXT - constants C_CFVO_TYPE_PERCENT type ZEXCEL_CONDITIONAL_TYPE value 'percent'. "#EC NOTEXT - constants C_CFVO_TYPE_PERCENTILE type ZEXCEL_CONDITIONAL_TYPE value 'percentile'. "#EC NOTEXT - constants C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT - constants C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT - constants C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT - constants C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT - constants C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT - constants C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT - constants C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT - constants C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT - constants C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT - constants C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT - constants C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT - constants C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT - constants C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT - constants C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT - constants C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT - constants C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT - constants C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT - constants C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT - constants C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT - constants C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT - constants C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT - constants C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT - constants C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT - constants C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT - constants C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT - constants C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT - constants C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT - constants C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT - constants C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT - constants C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT - constants C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT - constants C_SHOWVALUE_FALSE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 0. "#EC NOTEXT - constants C_SHOWVALUE_TRUE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 1. "#EC NOTEXT - data MODE_CELLIS type ZEXCEL_CONDITIONAL_CELLIS . - data MODE_EXPRESSION type ZEXCEL_CONDITIONAL_EXPRESSION . - data MODE_ICONSET type ZEXCEL_CONDITIONAL_ICONSET . - data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . - data RULE type ZEXCEL_CONDITION_RULE . - - methods CONSTRUCTOR . - methods GET_DIMENSION_RANGE - returning - value(EP_DIMENSION_RANGE) type STRING . - methods SET_RANGE - importing - !IP_START_ROW type ZEXCEL_CELL_ROW - !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA - !IP_STOP_ROW type ZEXCEL_CELL_ROW - !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . - *"* protected components of class ZABAP_EXCEL_STYLE_FONT -*"* do not include other source files here!!! -protected section. - private section. -*"* private components of class ZCL_EXCEL_STYLE_CONDITIONAL -*"* do not include other source files here!!! - - data START_CELL type ZEXCEL_S_CELL_DATA . - data STOP_CELL type ZEXCEL_S_CELL_DATA . + + *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -82,54 +8,56 @@ protected section. *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. DATA: ls_iconset TYPE zexcel_conditional_iconset. @@ -158,8 +86,8 @@ protected section. me->start_cell-cell_column = 1. endmethod. - - + + method GET_DIMENSION_RANGE. IF stop_cell EQ start_cell. "only one cell ep_dimension_range = start_cell-cell_coords. @@ -168,11 +96,11 @@ endmethod. ENDIF. endmethod. - - - - - + + + + + method SET_RANGE. DATA: lv_column TYPE zexcel_cell_column, lv_row_alpha TYPE string. diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk index 63b8623..de5b2b9 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk @@ -2624,7 +2624,7 @@ endmethod. - method CREATE_XL_SHEET. + METHOD create_xl_sheet. *--------------------------------------------------------------------* * issue #237 - Error writing column-style * - Stefan Schmöcker, 2012-11-01 @@ -2673,6 +2673,8 @@ endmethod. lc_xml_node_pagesetuppr TYPE string VALUE 'pageSetUpPr', lc_xml_node_condformatting TYPE string VALUE 'conditionalFormatting', lc_xml_node_cfrule TYPE string VALUE 'cfRule', + lc_xml_node_color TYPE string VALUE 'color', " Databar by Albert Lladanosa + lc_xml_node_databar TYPE string VALUE 'dataBar', " Databar by Albert Lladanosa lc_xml_node_iconset TYPE string VALUE 'iconSet', lc_xml_node_cfvo TYPE string VALUE 'cfvo', lc_xml_node_formula TYPE string VALUE 'formula', @@ -2824,6 +2826,7 @@ endmethod. lv_cell_value TYPE zexcel_cell_value, lv_style_guid TYPE zexcel_cell_style, lv_flag TYPE c, + ls_databar TYPE zexcel_conditional_databar, " Databar by Albert Lladanosa ls_iconset TYPE zexcel_conditional_iconset, ls_cellis TYPE zexcel_conditional_cellis, ls_expression TYPE zexcel_conditional_expression, @@ -3679,6 +3682,46 @@ endmethod. value = lv_value ). CASE lo_style_conditional->rule. + " Start >> Databar by Albert Lladanosa + WHEN zcl_excel_style_conditional=>c_rule_databar. + + ls_databar = lo_style_conditional->mode_databar. + + CLEAR lt_cfvo. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_databar + parent = lo_document ). + + MOVE ls_databar-cfvo1_value TO ls_cfvo-value. + MOVE ls_databar-cfvo1_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + + MOVE ls_databar-cfvo2_value TO ls_cfvo-value. + MOVE ls_databar-cfvo2_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + + LOOP AT lt_cfvo INTO ls_cfvo. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lv_value = ls_cfvo-type. + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = ls_cfvo-value. + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_3->append_child( new_child = lo_element_4 ). " cfvo node + ENDLOOP. + + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_databar-colorrgb. + lo_element_4->set_attribute_ns( name = lc_xml_attr_tabcolor_rgb + value = lv_value ). + + lo_element_3->append_child( new_child = lo_element_4 ). " color node + + lo_element_2->append_child( new_child = lo_element_3 ). " databar node + " End << Databar by Albert Lladanosa WHEN zcl_excel_style_conditional=>c_rule_iconset. ls_iconset = lo_style_conditional->mode_iconset. @@ -4232,7 +4275,7 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. diff --git a/ZA2X/TABL/ZEXCEL_CONDITIONAL_DATABAR.slnk b/ZA2X/TABL/ZEXCEL_CONDITIONAL_DATABAR.slnk new file mode 100644 index 0000000..0e22d51 --- /dev/null +++ b/ZA2X/TABL/ZEXCEL_CONDITIONAL_DATABAR.slnk @@ -0,0 +1,9 @@ + + + + + + + + +