CX_PRODUCT_AMOUNT
Klassenhierarchie
- CX_CLASS
- CX_AMOUNT
- CX_VECTOR_AMOUNT
- CX_PRODUCT_AMOUNT
- CX_VECTOR_AMOUNT
- CX_AMOUNT
Beschreibung: (Business Pattern)
Diese Klasse stellt eine Menge als Produkt mehrerer CX_AMOUNT-Objekte dar.
Code-Beispiel:
Var(amountVector, value, numeric)
CreateTransObject(CX_PRODUCT_AMOUNT) -> amountVector
12.5m -> value // CX_VALUE erzeugen
12.5 -> numeric // CX_NUMERIC erzeugen
value amountVector Call(Insert)
numeric amountVector Call(Insert)
................................
amountVector Call(Amount) // Ergebnis: CX_VALUE 156.2m
Achtung:
Wenn mehrere Werte mit Einheiten gemeinsam in einem Product Amount stehen, werden ihre Einheiten ebenfalls multipliziert!
Wenn also im Product Amount 2m und noch einmal 2m sind, kommt als Ergebnis 4m2 dabei heraus.
Ist dieses Verhalten nicht erwünscht, wie bei der Mengenbildung verschachtelt aufgebauter Fertigungsstücklisten, so muss zwischen alle Einzelwerte ein Normierungsfaktor eingebunden werden. Ein Normierungsfaktor wird folgendermaßen erstellt:
CreateTransObject(CX_VALUE) -> factor
CreateTransObject(CX_VALUE) -> transientFactor
allocationTxn Get(amount.LastElement()) transientFactor Put
transientFactor Call(Reciprocal) factor Put
factor CopyPersObject allocationTxn Call(amount, Insert)
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
Amount | OBJECT | das Produkt aller Objekte | ||
AmountBesidesLast | OBJECT | wie Amount, nur ohne letztes Element | ||
Clear | alle Elemente löschen | |||
Contains | (OBJECT) | INTEGER | Object-Existenz testen | |
Element | * | (INTEGER) | n-te Element Verändern | |
Insert | (OBJECT) | Element einfügen | ||
InsertVector | (VECTOR |
Vektor einfügen | ||
LastElement | * | letzte Element Verändern | ||
Remove | (OBJECT) | Element löschen | ||
Add | CX_AMOUNT | CX_AMOUNT | Operator + als Funktion | |
AddAssign | CX_AMOUNT | Operator += als Funktion | ||
AmountWeak | CX_AMOUNT | |||
Autoformat | INTEGER, INTEGER | CX_AMOUNT | Liefert ein, entsprechend der gegeben Anzahl von Vor- und Nachkommastellen, formatiertes Objekt zurück (nur bei CX_VALUE, sonst das Objekt selbst). | |
DivAssign | CX_AMOUNT | Operator /= als Funktion | ||
Divide | CX_AMOUNT | CX_AMOUNT | Operator / als Funktion | |
MulAssign | CX_AMOUNT | Operator *= als Funktion | ||
Multiply | CX_AMOUNT | CX_AMOUNT | Operator * als Funktion | |
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
SubAssign | CX_AMOUNT | Operator -= als Funktion | ||
Subtract | CX_AMOUNT | CX_AMOUNT | Operator - als Funktion |
* MA = Member-Access-Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
vector | COLL | CX_CLASS |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|