Lade...
 

CX_DATA_CUBE::DataCubeCore

CX_DATA_CUBE::DataCubeCore

Beschreibung:

Wie DataCube, nur die Elemente des Vektors der Dimensionen werden anderes behandelt: für CX_OVERWRITING_REF wird das Originalobjekt zum Dimensionsvergleich benutzt.  

Beispiel:

Dabei ist drücken die beiden folgenden Schreibweisen das gleiche aus:

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

Die Methoden DataCube und DataCubeCore sollten immer von dem Objekt - also der Dimension - aufgerufen werden, welche (voraussichtlich) die geringere Anzahl an Monitoren besitzt. Aus Sicht der Performance muss so die kleine Collection durchsucht werden.

Code-Beispiel:
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 Objekttyp Kurzbeschreibung
Stack(In) Top CX_DATA_CUBE Monitor
  Top-1 INTEGER Flag
  Top-2 VECTOR Vektor der Dimensionen
Stack(Out) Top CX_MONITOR Ergebnis
Funktionsaufruf: Call(DataCubeCore)