4D v16.3OB Copy |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
OB Copy
|
OB Copy ( objeto {; resuelvePunt} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
objeto | Objeto, Campo Objeto |
![]() |
Objeto estructurado | |||||
resuelvePunt | Booleano |
![]() |
True = resuelve los puntero, False o se omite = no resuelve punteros | |||||
Resultado | Objeto |
![]() |
Copia de objeto | |||||
El comando OB Copy devuelve un objeto que contiene una copia completa de las propiedades, sub objetos y valores de objeto.
objeto debe haber sido definido utilizando el comando C_OBJECT o designar un campo objeto 4D.
Si el objeto contiene valores de tipo de puntero, por defecto la copia también contiene los punteros. Sin embargo, puede resolver los punteros al momento de la copia pasando True en el parámetro resuelvePunt. En este caso, cada puntero presente como valor en objeto se evalúa al momento de la copia y se utiliza su valor desreferenciado.
Usted quiere duplicar un objeto que contiene valores 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) //direct copy
APPEND TO ARRAY($arraySel;$ref_value)
//el contenido de $ref_value es idéntico al de $Object
NEXT RECORD([Product])
End while
//el contenido de $ref_value
$JsonString:=JSON Stringify array($arraySel)
Duplique un objeto que contenga punteros:
C_OBJECT($ref)
OB SET($ref;"name";->[Company]name) //object with pointers
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) // copy without evaluating pointers
// $ref_comp={"name":"->[Company]name","country":"->[Company]Country"}
$ref_comp2:=OB Copy($ref;True) //copy with evaluation of pointers
// $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"}...]
Producto: 4D
Tema: Objetos (Lenguaje)
Número
1225
Creado por: 4D v14
Modificado: 4D v15
Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)