4D v16.3OB Copy |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
OB Copy
|
OB Copy ( objeto {; resolvePont} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
objeto | Objeto, Campo Objeto |
![]() |
Objeto estruturado | |||||
resolvePont | Booleano |
![]() |
True = resolve os ponteiros, False ou se omitido = não resolve ponteiros | |||||
Resultado | Objeto |
![]() |
Cópia de objeto | |||||
O comando OB Copy devolve um objeto que contém uma cópia completa das propriedades, sub objetos e valores de objeto.
objeto deve ter sido definido utilizando o comando C_OBJECT ou designar um campo objeto 4D..
Se o objeto contém valores de tipo de ponteiro, por padrão a cópia também contém os ponteiros. No entanto, pode resolver os ponteiros ao momento da cópia passando True no parâmetro resolvePont. Neste caso, cada ponteiro presente como valor em objeto se avalia ao momento da cópia e utiliza seu valor não referenciado.
Você quer duplicar um objeto que contém 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)
//o conteúdo de $ref_value é idêntico ao do $Object
NEXT RECORD([Product])
End while
//o conteúdo de $ref_value
$JsonString:=JSON Stringify array($arraySel)
Duplique um objeto que contenha ponteiros:
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"}...]
Produto: 4D
Tema: Objetos (Linguagem)
Número
1225
Criado por: 4D v14
Modificado: 4D v15
Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)