4D v16.3

OB Copy

Accueil

 
4D v16.3
OB Copy

OB Copy 


 

OB Copy ( objet {; résoudrePtrs} ) -> Résultat 
Paramètre Type   Description
objet  Objet, Champ objet in Objet structuré
résoudrePtrs  Booléen in Vrai = résoudre les pointeurs, Faux ou omis = ne pas les résoudre
Résultat  Objet in Copie de objet

La commande OB Copy retourne un objet contenant une copie complète des propriétés, sous-objets et valeurs de objet.

objet doit avoir été défini via la commande C_OBJECT ou désigner un champ objet 4D.

Si objet contient des valeurs de type pointeur, par défaut la copie contient également les pointeurs. Vous pouvez cependant résoudre les pointeurs au moment de la copie : pour cela, passez Vrai dans le paramètre résoudrePtrs. Dans ce cas, chaque pointeur présent comme valeur dans objet sera évalué au moment de la copie et sa valeur dépointée sera utilisée.

Vous souhaitez dupliquer un objet contenant des valeurs simples :

 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//copie directe
    APPEND TO ARRAY($arraySel;$ref_value)
           //le contenu de $ref_value est identique à celui de $Object
    NEXT RECORD([Product])
 End while
     //le contenu de $ref_value
 $JsonString:=JSON Stringify array($arraySel)

Vous dupliquez un objet contenant des pointeurs :

 C_OBJECT($ref)
 
 OB SET($ref;"name";->[Company]name) //objet avec pointeurs
 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// copie sans évaluation des pointeurs
           //$ref_comp={"name":"->[Company]name","country":"->[Company]Country"}
       $ref_comp2:=OB Copy($ref;True//copie avec évaluation des pointeurs
           //$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"}...]



Voir aussi  

OB Get

 
PROPRIÉTÉS 

Produit : 4D
Thème : Objets (Langage)
Numéro : 1225

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
HISTORIQUE 

Créé : 4D v14
Modifié : 4D v15

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)