4D v16.3OB Copy |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
OB Copy
|
OB Copy ( Objekt {; ZeigerAuflösen} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Objekt | Objekt, Objektfeld |
![]() |
Strukturiertes Objekt | |||||
ZeigerAuflösen | Boolean |
![]() |
Wahr = Zeiger auflösen Falsch oder weggelassen = Zeiger nicht auflösen |
|||||
Funktionsergebnis | Objekt |
![]() |
Kopie von Objekt | |||||
Die Funktion OB Copy gibt ein Objekt zurück, das die vollständige Kopie der Eigenschaften, Unterobjekte und Werte für Objekt enthält.
Objekt muss zuvor über den Befehl C_OBJECT definiert werden oder ein 4D Objektfeld angeben.
Enthält Objekt Werte vom Typ Zeiger, enthält die Kopie standardmäßig auch die Zeiger. Sie können jedoch Zeiger beim Kopieren auflösen, wenn Sie im Parameter ZeigerAuflösen Wahr übergeben. In diesem Fall wird jeder als Wert in Objekt verfügbare Zeiger beim Kopieren bewertet und sein dereferenzierter Wert verwendet.
Ein Objekt mit einfachen Werten duplizieren:
C_OBJECT($Object)
C_TEXT($JsonString)
ARRAY OBJECT($arraySel;0)
ALL RECORDS([Product])
While(Not(End selection([Product])))
OB SET($Object;"id";[Product]ID_Product)
OB SET($Object;"Product Name";[Product]Product_Name)
OB SET($Object;"Price";[Product]Price)
OB SET($Object;"Tax rate";[Product]Tax_rate)
$ref_value:=OB Copy($Object) //direkt kopieren
APPEND TO ARRAY($arraySel;$ref_value)
//der Inhalt von $ref_value ist identisch mit dem Inhalt von $Object
NEXT RECORD([Product])
End while
//Inhalt von $ref_value
$JsonString:=JSON Stringify array($arraySel)
Ein Objekt mit Zeigern duplizieren:
C_OBJECT($ref)
OB SET($ref;"name";->[Company]name) //Objekt mit Zeigern
OB SET($ref;"country";->[Company]country)
ARRAY OBJECT($sel;0)
ARRAY OBJECT($sel2;0)
ALL RECORDS([Company])
While(Not(End selection([Company])))
$ref_comp:=OB Copy($ref) //ohne Bewertung der Zeiger kopieren
// $ref_comp={"name":"->[Company]name","country":"->[Company]Country"}
$ref_comp2:=OB Copy($ref;True) //mit Bewertung der Zeiger kopieren
// $ref_comp={"name":"4D SAS","country":"France"}
APPEND TO ARRAY($sel;$ref_comp)
APPEND TO ARRAY($sel2;$ref_comp2)
NEXT RECORD([Company])
End while
$Object:=JSON Stringify array($sel)
$Object2:=JSON Stringify array($sel2)
// $Object = [{"name":"","country":""},{"name":"","country":""},...]
// $Object2 = [{"name":"4D SAS","country":"France"},{"name":"4D, Inc","country":"USA"},{"name":"Catalan","country":"France"}...]
Produkt: 4D
Thema: Objekte (Sprache)
Nummer:
1225
Erstellt: 4D v14
Geändert: 4D v15
4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)