| 4D v18OB Copy | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 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. IEn este caso, cada puntero presente como valor en objeto se evalúa al momento de la copia y se utiliza su valor desreferenciado.
Notas:
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) //copia directa
    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 v18)
	
	
	
 Añadir un comentario
Añadir un comentario