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 | 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 |