CX_VALUE_PER
Klassenhierarchie
- CX_CLASS
- CX_AMOUNT
- CX_NUMERIC
- CX_VALUE
- CX_VALUE_PER
- CX_VALUE
- CX_NUMERIC
- CX_AMOUNT
Beschreibung:
Die Klasse erlaubt es, einen Wert an einen anderen Wert zu koppeln. Dieses ist üblicherweise bei Preisangaben, wie z.B. "10 DM pro 5 STÜCK", der Fall. Rechenoperationen sind nur dann möglich, falls sich das andere Objekt auf die gleiche Bezugsgröße richtet.
Code-Beispiel:
Darstellung am Bildschirm
Zur Darstellung von Objekten dieser Klasse existieren folgende Möglichkeiten:
1. Verwendung eines Oberflächenobjektes vom Typ String. In diesem Fall wird das Objekt in einem einzigen Eingabefeld angegeben. Dabei werden die beiden Werte ("Zähler" und "Nenner") durch den im System definierten Trenner für Brüche getrennt eingegeben bzw. angezeigt wie z.B. in der folgenden Abbildung (Programmcode):
2. Die Verwendung von zwei Oberflächenobjekten vom Typ String, wobei in dem einen Feld der "Zähler" und in dem anderen der "Nenner" eingegeben wird (Programmcode):
Anmerkung: Da die Bestandteile eines Bereichs-Wertes Werte sind, gelten für diese die entsprechenden Ein- und Ausgabemöglichkeiten. D.h., dass z.B. der Zähler über zwei Oberflächenobjekte angesprochen werden kann, wobei das eine für die Zahl und das andere für die Einheit zuständig ist.
Verhalten bei Put
Wird der Wert eines CX_VALUE_PER-Objekts mit einem String gesetzt, gelten folgende Regeln:
- Existiert kein Nenner, wird der bestehende Nenner auf 1 gesetzt. Die Einheit im Nenner wird nicht verändert.
Die Präzision im Nenner wird auf die gerade eingestellte System-Präzision gesetzt.
223665 wird die Präzision im Nenner nicht mehr verändert, da das Verhalten nicht zum Verhalten beim Import von "#x/y" gepasst hat. - Existiert kein Zähler (Bsp: "/3kg"), dann wird der Zähler mit "0" importiert (Einheit bleibt erhalten) und der Nenner mit "3kg".
- Die Präzision des Zählers bleibt erhalten.
- Die Präzision des Nenners bleibt erhalten, wenn der String einen Nenner enthält.
- Der Import von Nenner und Zähler wird auf das Verhalten von Put auf CX_VALUE zurückgeführt.
Achtung: Im Unterschied zum Import von CX_VALUE werden numerische Werte immer mit voller Präzision importiert. Bei CX_VALUE bestimmt die im Objekt gesetzte Präzision die Anzahl der Nachkommastellen, die importiert werden. - Der Import eines Leerstrings ist äquivalent zum Import von "0/1"
Operator | Kurzbeschreibung |
---|---|
+, -, *, / | Arithmetik |
+=, -=, *=, /= | Arithmetik |
>, <, = | Vergleiche |
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
abs | OBJECT | Wert ohne Vorzeichen | ||
Denominator | OBJECT | Rückgabe des Nenners | ||
Get1Value | OBJECT | Rückgabe: Wert mit Nenner 1 und Zähler 1 | ||
GetFraction | OBJECT | Wert in Bruchzahl-Form | ||
GetNumeric | OBJECT | Rückgabe: Objekt als reelle Zahl | ||
GetValue | OBJECT | Rückgabe: Objekt als Wert | ||
Numerator | OBJECT | Rückgabe des Zählers | ||
NumericNumeratorMA | * | OBJECT | Rückgabe des Zählers als CX_NUMERIC | |
Reciprocal | OBJECT | Kehrwert bilden | ||
RoundAutomatically | OBJECT | Runden der Zahl mit der Präzision, die sich aus der Einheit ergibt | ||
RoundByPrecision | Runden mit aktueller Präzision | |||
SetValuePer 231532 |
STRING, INTEGER | Bereichswert aus der Zeichenkette importieren | ||
UnitNumeratorMA | * | STRING | Rückgabe der Einheit des Zählers als STRING | |
Add | CX_AMOUNT | CX_AMOUNT | Operator + als Funktion | |
AddAssign | CX_AMOUNT | Operator += als Funktion | ||
AdjustPrecision | Anpassen der Genauigkeit des Zählers | |||
Amount | OBJECT | Rückgabe des Objektswertes | ||
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 oder abgeleiteten Klassen, sonst das Objekt selbst). | |
DivAssign | CX_AMOUNT | Operator /= als Funktion | ||
Divide | CX_AMOUNT | CX_AMOUNT | Operator / als Funktion | |
IsZero | INTEGER | Zahl auf Null testen | ||
MulAssign | CX_AMOUNT | Operator *= als Funktion | ||
Multiply | CX_AMOUNT | CX_AMOUNT | Operator * als Funktion | |
Precision | * | Verändern der Genauigkeit des Zählers | ||
PrecisionAdjusted | OBJECT | wie AdjustPrecision, nur mit Rückgabe des Objektes | ||
Rounded | (INTEGER) | |||
SetNumeric | STRING, INTEGER | Zähler als CX_NUMERIC aus der Zeichenkette importieren | ||
SetPrecision | (INTEGER) | Anzahl an Nachkommastellen für den Zähler setzen | ||
SetValue | STRING, INTEGER | Zähler als CX_VALUE aus der Zeichenkette importieren | ||
SetZero | Zahl auf Null setzen | |||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes | |
SubAssign | CX_AMOUNT | Operator -= als Funktion | ||
Subtract | CX_AMOUNT | CX_AMOUNT | Operator - als Funktion | |
Unit | * | Ein-/Ausgabesteuerung der Einheit des Zählers | ||
ValueNumeratorMA | * | Zugriff auf Zähler-Value |
* MA = Member-Access-Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
this | CX_VALUE | Der Wert | ||
val | CX_VALUE | Der Bezugswert bzw. Nenner | ||
denominator | CX_VALUE | wie 'val' |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|