4D v16.3

OB SET

Página Inicial

 
4D v16.3
OB SET

OB SET 


 

OB SET ( objeto ; propriedade ; valor {; propriedade2 ; valor2 ; ... ; propriedadeN ; valorN} ) 
Parâmetro Tipo   Descrição
objeto  Objeto, Campo Objeto in Objeto estruturado
propriedade  Texto in Nome da propriedade a configurar
valor  Texto, Data, Booleano, Ponteiro, Número, Objeto in Novo valor da propriedade

O comando OB SET cria ou modifica um ou mais pares de propriedade/valor no objeto de linguagem designado pelo parâmetro objeto.

objeto deve ter sido definido usando o comando C_OBJECT ou designar um campo objeto 4D.

Nota: este comando suporta definições de atributo nos objetos 4D Write Pro, como o comando WP SET ATTRIBUTES (ver o exemplo 10). Entretanto, ao contrário de WP SET ATTRIBUTES, OB SET não permite manipular diretamente uma variável ou campo como valor de atributo.


No parâmetro propriedade, passe a etiqueta da propriedade a criar ou modificar. Se a propriedade já existe em objeto, seu valor se atualiza. Se não existe, é criado.
Tenha em conta, que o parâmetro propriedade é sensível as maiúsculas e minúsculas.

No parâmetro valor, passe o valor que deseja definir para a propriedade. Se admitem vários tipos de dados. Tenha em conta que:

  • Se passar um ponteiro, é mantido como ele é, se avalia utilizando o comando JSON Stringify
  • As datas devem estar no formato "\"YYYY-MM-DDTHH:mm.SSSZ\"" Quando converter datas 4D para texto antes de armazená-las em um objeto, como padrão o programa usa a zona horária local. Pode modificar isso usando o seletor  JSON use local time do comando SET DATABASE PARAMETER.
  • Se passar uma hora, se armazena em forma de um número de milissegundos (Real) em objeto
  • Se passar um objeto de linguagem, o comando utiliza a referência do objeto e não uma cópia.

Criação de um objeto e adição de uma propriedade de tipo texto:

 C_OBJECT($Object)
 OB SET($Object ;"FirstName";"John";"LastName";"Smith")
  // $Object = {"FirstName":"John","LastName":"Smith"}

Criação de um objeto e adição de uma propriedade de tipo booleano:

 C_OBJECT($Object)
 OB SET($Object ;"LastName";"smith";"age";42;"client";True)
  // $Object = {"LastName":"smith","age":42,"client":true}

Modificação de uma propriedade:

  // $Object = {"FirstName":"John","LastName":"Smith"}
 OB SET($Object ;"FirstName";"Paul")
  // $Object = {"FirstName":"Paul","LastName":"Smith"}

Adição de uma propriedade:

  // $Object = {"FirstName":"John","LastName":"Smith"}
 OB SET($Object ;"department";"Accounting")
  // $Object = {"FirstName":"Paul","LastName":"Smith","department":"Accounting"}

Renomeando uma propriedade:

 C_OBJECT($Object)
 OB SET($Object ;"LastName";"James";"age";35)
  // $Object = {"LastName":"James","age":35}
 OB SET($Object ;"FirstName";OB Get($Object ;"LastName"))
  // $Object = {"FirstName":""James","nom":"James","age":35}
 OB REMOVE($Object ;"LastName")
  // $Object = {"FirstName":""James","age":35}

Usando um ponteiro:

  // $Object = {"FirstName":"Paul","LastName":"Smith"}
 C_TEXT($LastName)
 OB SET($Object ;"LastName";->$LastName)
  // $Object = {"FirstName":"Paul","LastName":"->$LastName"}
 $JsonString:=JSON Stringify($Object)
  // $JsonString="{"FirstName":"Paul","LastName":""}
 $LastName:="Wesson"
 $JsonString:=JSON Stringify($Object)
  // $JsonString="{"FirstName":"Paul","LastName":"Wesson"}

Usando um objeto:

 C_OBJECT($ref_smith)
 OB SET($ref_smith ;"name";"Smith")
 C_OBJECT($ref_emp)
 OB SET($ref_emp ;"employee";$ref_smith)
 $Json_string :=JSON Stringify($ref_emp)
  // $ref_emp = {"employee":{"name":"Smith"}} (object)
  // $Json_string = "{"employee":{"name":"Smith"}}" (string)

Também pode mudar um valor sobre a marcha:

 OB SET($ref_smith ;"name";"Smyth")
  // $ref_smith = {"employee":{"name":"Smyth"}}
 $string:=JSON Stringify($ref_emp)
  // $string = "{"employee":{"name":"Smyth"}}"

Se você tiver definido o campo [Rect]Desc como um campo objeto, pode escrever:

 CREATE RECORD([Rect])
 [Rect]Name:="Blue square"
 OB SET([Rect]Desc;"x";"50";"y";"50";"color";"blue")
 SAVE RECORD([Rect])

Você quer exportar dados em JSON que contém uma data 4D convertida. Note que a conversão ocorre quando a data se guarda no objeto, deve chamar ao comando SET DATABASE PARAMETER antes de chamar a OB SET:

 C_OBJECT($o)
 SET DATABASE PARAMETER(JSON use local time;0)
 OB SET($o ;"myDate";Current date// conversão JSON
 $json:=JSON Stringify($o)
 SET DATABASE PARAMETER(JSON use local time;1)

Em um método formulário, pode escrever:

 If(Form event=On Validate)
    OB SET([MyDocuments]My4DWP;"myatt_Last edition by";Current user)
    OB SET([MyDocuments]My4DWP;"myatt_Category";"Memo")
 End if

Também pode ler os atributos personalizados dos documentos:

 vAttrib:=OB Get([MyDocuments]My4DWP;"myatt_Last edition by")



Ver também 

OB REMOVE
OB SET ARRAY
OB SET NULL

 
PROPRIEDADES 

Produto: 4D
Tema: Objetos (Linguagem)
Número 1220

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v14
Modificado: 4D v15
Modificado: 4D v15 R4

 
ARTICLE USAGE

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)