Added hashtables for columns and rows objects

This commit is contained in:
pacojka 2018-07-14 22:28:35 +02:00
parent dd5018ee44
commit 2217873519
3 changed files with 4145 additions and 4122 deletions

View File

@ -5,38 +5,45 @@ class ZCL_EXCEL_COLUMNS definition
*"* public components of class ZCL_EXCEL_COLUMNS
*"* do not include other source files here!!!
public section.
public section.
types:
begin of MTY_S_HASHED_COLUMN,
COLUMN_INDEX type INT4,
COLUMN type ref to ZCL_EXCEL_COLUMN,
end of MTY_S_HASHED_COLUMN ,
MTY_TS_HASEHD_COLUMN type hashed table of MTY_S_HASHED_COLUMN with unique key COLUMN_INDEX.
methods ADD
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods SIZE
returning
value(EP_SIZE) type I .
methods ADD
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods SIZE
returning
value(EP_SIZE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
protected section.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
private section.
private section.
data COLUMNS type ref to CL_OBJECT_COLLECTION .
data COLUMNS type ref to CL_OBJECT_COLLECTION .
data COLUMNS_HASEHD type MTY_TS_HASEHD_COLUMN .
ENDCLASS.
@ -44,44 +51,57 @@ ENDCLASS.
CLASS ZCL_EXCEL_COLUMNS IMPLEMENTATION.
METHOD add.
columns->add( io_column ).
ENDMETHOD.
method ADD.
data: LS_HASHED_COLUMN type MTY_S_HASHED_COLUMN.
LS_HASHED_COLUMN-COLUMN_INDEX = IO_COLUMN->GET_COLUMN_INDEX( ).
LS_HASHED_COLUMN-COLUMN = IO_COLUMN.
modify table COLUMNS_HASEHD from LS_HASHED_COLUMN .
COLUMNS->ADD( IO_COLUMN ).
endmethod.
METHOD clear.
columns->clear( ).
ENDMETHOD.
method CLEAR.
clear COLUMNS_HASEHD.
COLUMNS->CLEAR( ).
endmethod.
METHOD constructor.
method CONSTRUCTOR.
CREATE OBJECT columns.
create object COLUMNS.
ENDMETHOD.
endmethod.
METHOD get.
eo_column ?= columns->if_object_collection~get( ip_index ).
ENDMETHOD.
method GET.
field-symbols: <LS_HASHED_COLUMN> type MTY_S_HASHED_COLUMN.
read table COLUMNS_HASEHD with key COLUMN_INDEX = IP_INDEX assigning <LS_HASHED_COLUMN>.
if SY-SUBRC = 0.
EO_COLUMN = <LS_HASHED_COLUMN>-COLUMN.
endif.
endmethod.
METHOD get_iterator.
eo_iterator ?= columns->if_object_collection~get_iterator( ).
ENDMETHOD.
method GET_ITERATOR.
EO_ITERATOR ?= COLUMNS->IF_OBJECT_COLLECTION~GET_ITERATOR( ).
endmethod.
METHOD is_empty.
is_empty = columns->if_object_collection~is_empty( ).
ENDMETHOD.
method IS_EMPTY.
IS_EMPTY = COLUMNS->IF_OBJECT_COLLECTION~IS_EMPTY( ).
endmethod.
METHOD remove.
columns->remove( io_column ).
ENDMETHOD.
method REMOVE.
delete table COLUMNS_HASEHD with table key COLUMN_INDEX = IO_COLUMN->GET_COLUMN_INDEX( ) .
COLUMNS->REMOVE( IO_COLUMN ).
endmethod.
METHOD size.
ep_size = columns->if_object_collection~size( ).
ENDMETHOD.
method SIZE.
EP_SIZE = COLUMNS->IF_OBJECT_COLLECTION~SIZE( ).
endmethod.
ENDCLASS.

View File

@ -12,36 +12,44 @@ class ZCL_EXCEL_ROWS definition
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
public section.
public section.
types:
begin of MTY_S_HASHED_ROW,
ROW_INDEX type INT4,
ROW type ref to ZCL_EXCEL_ROW,
end of MTY_S_HASHED_ROW ,
MTY_TS_HASEHD_ROW type hashed table of MTY_S_HASHED_ROW with unique key ROW_INDEX.
methods ADD
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods SIZE
returning
value(EP_SIZE) type I .
PROTECTED SECTION.
methods ADD
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods SIZE
returning
value(EP_SIZE) type I .
protected section.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
PRIVATE SECTION.
private section.
data ROWS type ref to CL_OBJECT_COLLECTION .
data ROWS_HASEHD type MTY_TS_HASEHD_ROW .
DATA rows TYPE REF TO cl_object_collection .
ENDCLASS.
@ -49,44 +57,58 @@ ENDCLASS.
CLASS ZCL_EXCEL_ROWS IMPLEMENTATION.
METHOD add.
rows->add( io_row ).
ENDMETHOD. "ADD
method ADD.
data: LS_HASHED_ROW type MTY_S_HASHED_ROW.
LS_HASHED_ROW-ROW_INDEX = IO_ROW->GET_ROW_INDEX( ).
LS_HASHED_ROW-ROW = IO_ROW.
modify table ROWS_HASEHD from LS_HASHED_ROW .
ROWS->ADD( IO_ROW ).
endmethod. "ADD
METHOD clear.
rows->clear( ).
ENDMETHOD. "CLEAR
method CLEAR.
clear ROWS_HASEHD.
ROWS->CLEAR( ).
endmethod. "CLEAR
METHOD constructor.
method CONSTRUCTOR.
CREATE OBJECT rows.
create object ROWS.
ENDMETHOD. "CONSTRUCTOR
endmethod. "CONSTRUCTOR
METHOD get.
eo_row ?= rows->if_object_collection~get( ip_index ).
ENDMETHOD. "GET
method GET.
field-symbols: <LS_HASHED_ROW> type MTY_S_HASHED_ROW.
read table ROWS_HASEHD with key ROW_INDEX = IP_INDEX assigning <LS_HASHED_ROW>.
if SY-SUBRC = 0.
EO_ROW = <LS_HASHED_ROW>-ROW.
endif.
endmethod. "GET
METHOD get_iterator.
eo_iterator ?= rows->if_object_collection~get_iterator( ).
ENDMETHOD. "GET_ITERATOR
method GET_ITERATOR.
EO_ITERATOR ?= ROWS->IF_OBJECT_COLLECTION~GET_ITERATOR( ).
endmethod. "GET_ITERATOR
METHOD is_empty.
is_empty = rows->if_object_collection~is_empty( ).
ENDMETHOD. "IS_EMPTY
method IS_EMPTY.
IS_EMPTY = ROWS->IF_OBJECT_COLLECTION~IS_EMPTY( ).
endmethod. "IS_EMPTY
METHOD remove.
rows->remove( io_row ).
ENDMETHOD. "REMOVE
method REMOVE.
delete table ROWS_HASEHD with table key ROW_INDEX = IO_ROW->GET_ROW_INDEX( ) .
ROWS->REMOVE( IO_ROW ).
endmethod. "REMOVE
METHOD size.
ep_size = rows->if_object_collection~size( ).
ENDMETHOD. "SIZE
method SIZE.
EP_SIZE = ROWS->IF_OBJECT_COLLECTION~SIZE( ).
endmethod. "SIZE
ENDCLASS.

File diff suppressed because it is too large Load Diff