Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20.6
OB SET

OB SET 


 

OB SET ( Objekt ; Eigenschaft ; Wert {; Eigenschaft2 ; Wert2 ; ... ; EigenschaftN ; WertN} ) 
Parameter Typ   Beschreibung
Objekt  Objektfeld, Objekt in Strukturiertes Objekt
Eigenschaft  Text in Name der zu setzenden Eigenschaft
Wert  Ausdruck in 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:

  • Übergeben Sie einen Zeiger, bleibt er genauso erhalten; er wird über die Funktion JSON Stringify bewertet
  • Übergeben Sie ein Datum, hängt es von der aktuellen Einstellung in Ihrer Datenbank ab, ob es als Datumstyp oder als Text im ISO Format gespeichert wird. Weitere Informationen dazu finden Sie auf der Seite Kompatibilität, Option Verwende Datumstyp statt ISO Datumsformat in Objekten.
  • Übergeben Sie eine Zeit, wird sie in Objekt als Zahl in Sekunden (Typ Zahl) gespeichert.
  • Übergeben Sie ein Programmiersprache-Objekt oder eine Collection, verwendet der Befehl nicht eine Kopie, sondern die Referenz. Jede Änderung im Objekt oder der Collection wird an alle Referenzen weitergegeben.
  • Ab 4D v16 R4 können Sie ein Bild jedes unterstützten Typs übergeben. Weitere Informationen dazu finden Sie im Abschnitt Native Unterstützung von Formaten .

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



Siehe auch 

OB Get
OB REMOVE
OB SET ARRAY
OB SET NULL

 
EIGENSCHAFTEN 

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

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

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

 
ARTIKELVERWENDUNG

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)