Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
OB SET
|
OB SET ( Objekt ; Eigenschaft ; Wert {; Eigenschaft2 ; Wert2 ; ... ; EigenschaftN ; WertN} ) | ||||||||
Parameter | Typ | Beschreibung | ||||||
Objekt | Objektfeld, Objekt |
![]() |
Strukturiertes Objekt | |||||
Eigenschaft | Text |
![]() |
Name der zu setzenden Eigenschaft | |||||
Wert | Ausdruck |
![]() |
Neuer Wert der Eigenschaft | |||||
Der Befehl OB SET erstellt oder ändert ein oder mehrere Paare Eigenschaft/Wert im Programmiersprache-Objekt, das im Parameter Objekt definiert ist.
Objekt muss zuvor über den Befehl C_OBJECT definiert werden oder ein 4D Objektfeld angeben.
Im Parameter Eigenschaft übergeben Sie die Bezeichnung der Eigenschaft zum Erstellen oder Ändern. Ist die Eigenschaft bereits in Objekt vorhanden, wird ihr Wert aktualisiert. Ist sie noch nicht vorhanden, wird sie angelegt.
Beachten Sie, dass Eigenschaft Groß- und Kleinschreibung berücksichtigt.
Im Parameter Wert übergeben Sie den passenden Wert für die Eigenschaft. Es werden mehrere Datentypen unterstützt. Dabei müssen Sie folgendes beachten:
Ein Objekt erstellen und eine Eigenschaft vom Typ Text hinzufügen:
C_OBJECT($Object)
OB SET($Object ;"FirstName";"John";"LastName";"Smith")
// $Object = {"FirstName":"John","LastName":"Smith"}
Ein Objekt erstellen und eine Eigenschaft vom Typ Boolean hinzufügen:
C_OBJECT($Object)
OB SET($Object ;"LastName";"smith";"age";42;"client";True)
// $Object = {"LastName":"smith","age":42,"client":true}
Eine Eigenschaft ändern:
// $Object = {"FirstName":"John","LastName":"Smith"}
OB SET($Object ;"FirstName";"Paul")
// $Object = {"FirstName":"Paul","LastName":"Smith"}
Eine Eigenschaft hinzufügen:
// $Object = {"FirstName":"John","LastName":"Smith"}
OB SET($Object ;"department";"Accounting")
// $Object = {"FirstName":"Paul","LastName":"Smith","department":"Accounting"}
Eine Eigenschaft umbenennen:
C_OBJECT($Object)
OB SET($Object ;"LastName";"James";"age";35)
// $Object = {"LastName":"James","age":35}
OB SET($Object ;"FirstName";OB Get($Object ;"LastName"))
// $Object = {"FirstName":""James","nom":"James","age":35}
OB REMOVE($Object ;"LastName")
// $Object = {"FirstName":""James","age":35}
Zeiger verwenden:
// $Object = {"FirstName":"Paul","LastName":"Smith"}
C_TEXT($LastName)
OB SET($Object ;"LastName";->$LastName)
// $Object = {"FirstName":"Paul","LastName":"->$LastName"}
$JsonString:=JSON Stringify($Object)
// $JsonString="{"FirstName":"Paul","LastName":""}
$LastName:="Wesson"
$JsonString:=JSON Stringify($Object)
// $JsonString="{"FirstName":"Paul","LastName":"Wesson"}
Ein Objekt verwenden:
C_OBJECT($ref_smith)
OB SET($ref_smith ;"name";"Smith")
C_OBJECT($ref_emp)
OB SET($ref_emp ;"employee";$ref_smith)
$Json_string :=JSON Stringify($ref_emp)
// $ref_emp = {"employee":{"name":"Smith"}} (object)
// $Json_string = "{"employee":{"name":"Smith"}}" (string)
Sie können einen Wert auch direkt ändern:
OB SET($ref_smith ;"name";"Smyth")
// $ref_smith = {"employee":{"name":"Smyth"}}
$string:=JSON Stringify($ref_emp)
// $string = "{"employee":{"name":"Smyth"}}"
Haben Sie das Feld [Rect]Desc als Objektfeld definiert, können Sie schreiben:
CREATE RECORD([Rect])
[Rect]Name:="Blue square"
OB SET([Rect]Desc;"x";"50";"y";"50";"color";"blue")
SAVE RECORD([Rect])
Sie wollen Daten in JSON exportieren. Sie enthalten ein 4D Datum, das in einen String ohne Angabe der Zeitzone konvertiert werden soll. Beachten Sie, dass die Konvertierung passiert, wenn das Datum im Objekt gesichert wird. Deshalb müssen Sie den Befehl SET DATABASE PARAMETER vor OB SET aufrufen:
C_OBJECT($o)
$vDateSetting:=Get database parameter(Dates inside objects) // Die aktuelle Einstellung sichern
SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
OB SET($o ;"myDate";Current date) // In JSON konvertieren
$json:=JSON Stringify($o)
SET DATABASE PARAMETER(Dates inside objects;$vDateSetting)
In der Methode eines Formulars mit einem 4D Write Pro Bereich können Sie schreiben:
If(FORM Event=On Validate)
OB SET([MyDocuments]My4DWP;"myatt_Last edition by";Current user)
OB SET([MyDocuments]My4DWP;"myatt_Category";"Memo")
End if
Sie können auch eigene Attribute des Dokuments lesen:
vAttrib:=OB Get([MyDocuments]My4DWP;"myatt_Last edition by")
Eine Collection als einen Eigenschaftswert setzen:
C_OBJECT($person)
C_COLLECTION($myCol)
$person:=OB New
$myCol:=New collection("Mike";25;"Denis";12;"Henry";4;True)
OB SET($person;"Name";"Jones";"Children";$myCol)
Ein Bild in einem Objektfeld speichern:
C_PICTURE($vPict)
READ PICTURE FILE("photo.jpg";$vPict)
If(OK=1)
OB SET([Emp]Children;"photo";$vPict)
End if
Produkt: 4D
Thema: Objekte (Sprache)
Nummer:
1220
Erstellt: 4D v14
Geändert: 4D v15
Geändert: 4D v15 R4
Geändert: 4D v16 R4
Geändert: 4D v16 R6
4D Programmiersprache ( 4D v20)
4D Programmiersprache ( 4D v20.1)
4D Programmiersprache ( 4D v20.2)
4D Programmiersprache ( 4D v20.3)
4D Programmiersprache ( 4D v20.4)
4D Programmiersprache ( 4D v20.5)
4D Programmiersprache ( 4D v20.6)