4D v16.3

OB Copy

Home

 
4D v16.3
OB Copy

OB Copy 


 

OB Copy ( Objekt {; ZeigerAuflösen} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Objekt  Objekt, Objektfeld in Strukturiertes Objekt
ZeigerAuflösen  Boolean in Wahr = Zeiger auflösen
Falsch oder weggelassen = Zeiger nicht auflösen
Funktionsergebnis  Objekt in 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"}...]



Siehe auch 

OB Get

 
EIGENSCHAFTEN 

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

This command can be run in preemptive processes

 
GESCHICHTE 

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

 
ARTIKELVERWENDUNG

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