Put
Put(zugriffsAusdruck), Put, Put(STACK)
Parameter: ein Zugriffsausdruck
Stack | Position | Beschreibung |
---|---|---|
Stack(In) | Top | Zielobjekt |
Top-1 | ein Wert | |
Stack(Out) | Top | - |
Wird über den Zugriffsausdruck ein elementares Datenmember erreicht, so wird der Wert in das Datenmember eingetragen.
Ein Slot wird gegebenenfalls neu erzeugt. Handelt es sich bei dem Datenmember um ein Objekt, sind folgende Fälle möglich:
Wert vom Stack ist:
Wert vom Stack Top -1 | Zuweisung | Beispiel |
---|---|---|
ein Objekt | Übertragung in das Zielobjekt mit virtual Function Assign |
Automatisches Anlegen eines persistenten Objektes (Datum) am übergebenen Objekt |
ein String | Import in das Zielobjekt mit virtual Function ViewImport |
Einfaches Speichern eines Strings |
ein String u. Zielobjekt CX_FORMULA | Der String wird als Formel importiert, analysiert und in die interne Darstellung (IPN) konvertiert |
Erstellen eines Formelobjektes und Zuweisen der Formel |
ein String u. Zielobjekt CX_CONDITIONED_BAG |
Speichern von Spalten in bedingten Tabellen (Spalten durch Kommata getrennt) |
Put ohne Operand 'schreibt' den Wert von Stack-Top-1 gemäß obiger Tabelle direkt in das auf dem Stack-Top liegende Objekt.
Hinweis: Bei einem persistenten Objekt beginnt eine Transaktion.
Achtung: Bei Put auf CX_NUMERIC und CX_VALUE muss beachtet werden, wie sich die precision auf den Import auswirkt.
Hinweis: Da bei Put keine Flags übergeben werden können, um den Import zu steuern, bieten Klassen deren Import per Flag gesteuert werden kann, entsprechedne Set...-Methoden an, um den Import mit Flags trotzdem zu ermöglichen.
Bsp.: SetValue, SetNumeric, SetTime, ...
Put(zugriffsAusdruck, OVERWRITE), Put(STACK, OVERWRITE)
Parameter: ein Zugriffsausdruck, Schlüsselwort OVERWRITE
Stack | Position | Beschreibung |
---|---|---|
Stack(In) | Top | Zielobjekt |
Top-1 | ein Wert | |
Stack(Out) | Top | - |
Ist das Zielobjekt ein Objekt der Klasse CX_OVERWRITING_REF (bzw. davon abgeleitet), so können mit dem Zugriffsausdruck Daten des Originalobjekts überschrieben werden. Ohne Parameter OVERWRITE wird nur dann geschrieben, wenn die zu schreibenden Daten sich von denen des Originalobjektes unterscheiden. Mit Parameter OVERWRITE wird immer geschrieben, auch wenn im "Wrapper" eine identische Kopie des Datenelements entsteht.
Put(STACK), Put(STACK, OVERWRITE)
Stack | Position | Beschreibung |
---|---|---|
Stack(In) | Top | ein Zugriffsausdruck als Zeichenkette |
Zielobjekt | ||
Top-1 | ein Wert | |
Stack(Out) | Top | - |
Diese Form der Anweisung Put ist nützlich, wenn mit einem variablen Zugriffsausdruck gearbeitet werden soll.