4D v16.3

OB SET

Home

 
4D v16.3
OB SET

OB SET 


 

OB SET ( Objekt ; Eigenschaft ; Wert {; Eigenschaft2 ; Wert2 ; ... ; EigenschaftN ; WertN} ) 
Parameter Typ   Beschreibung
Objekt  Objekt, Objektfeld in Strukturiertes Objekt
Eigenschaft  Text in Name der zu setzenden Eigenschaft
Wert  Text, Datum, Boolean, Zeiger, Zahl, Objekt in Neuer Wert der Eigenschaft

Der Befehl OB SET erstellt oder ändert ein oder mehrere Paare Eigenschaft/Wert im Objekt, das im Parameter Objekt definiert ist.

Objekt muss zuvor über den Befehl C_OBJECT definiert werden oder ein 4D Objektfeld angeben.

Hinweis: Dieser Befehl unterstützt Attributdefinitionen in 4D Write Pro Objekten, wie mit dem Befehl WP SET ATTRIBUTES (siehe Beispiel 10). Jedoch erlaubt OB SET nicht, eine Bild - oder Feldvariable direkt als Attributwert zu verwalten.

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:

  • Übergeben Sie einen Zeiger, bleibt er genauso erhalten; er wird über die Funktion JSON Stringify bewertet
  • Datum wird im Format "YYYY-MM-DDTHH:mm:ss.SSSZ" gespeichert. Wird ein 4D Datum vor dem Speichern im Objekt in Text konvertiert, nimmt das Programm standardmäßig die lokale Zeitzone. Dieses Verhalten können Sie über den Selector JSON use local time des Befehls SET DATABASE PARAMETER ändern.
  • Übergeben Sie eine Zeit, wird sie in Objekt als Zahl in Millisekunden (Typ Zahl) gespeichert
  • Übergeben Sie ein Programmiersprache-Objekt, verwendet der Befehl die Objektreferenz und keine Kopie

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, die ein konvertiertes 4D Datum enthalten. 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)
 SET DATABASE PARAMETER(JSON use local time;0)
 OB SET($o ;"myDate";Current date// JSON Konvertierung
 $json:=JSON Stringify($o)
 SET DATABASE PARAMETER(JSON use local time;1)

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



Siehe auch 

OB REMOVE
OB SET ARRAY
OB SET NULL

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Objekte (Sprache)
Nummer: 1220

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v14
Geändert: 4D v15
Geändert: 4D v15 R4

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)