Loading...
 

CX_DATA_CUBE::DataCubeCore

CX_DATA_CUBE::DataCubeCore

Description:

Like DataCube, only the elements of the vector of dimensions are treated differently: for CX_OVERWRITING_REF the original object is used for dimension comparison.

Example:

The following two spellings express the same thing:

[ a b ] FALSE monitor Call(DataCubeCore) // <=> [ a Core b Core] FALSE monitor Call(DataCube)
Programming note:

The methods DataCube and DataCubeCore should always be called by the object - i.e. the dimension - which (presumably) has the smaller number of monitors. From a performance point of view, the small collection must be searched in this way.

Code example:
periodBalance Copy(opening.illTime) Dup if { illTimeBalance Swap + illTimeBalance Put } else Drop periodBalance Copy(current.illTime) Dup if { illTimeBalance Swap + illTimeBalance Put } else Drop // Get next balance flextimePeriod Get(term.StartOfPeriod()) Dup 1 Swap Call(AddMonth) -> nextStartDate // Check, if year remains the same [ worktimeAccount nextStartDate Call(Year) ] TRUE worktimeAccount Call(DataCubeCore) Dup yearBalance @! -> isNextYearBalance -> yearBalance [ yearBalance nextStartDate Call(Month) ] TRUE yearBalance Call(DataCubeCore) -> nextBalance
Stack
Stack Position Object type Brief description
Stack(In) Top CX_DATA_CUBE Monitor
Top 1 INTEGER Flag
top 2 VECTOR Vector of dimensions
Stack(Out) Top CX_MONITOR Result
Function call: Call(DataCubeCore)