| 4D v18OB SET | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 OB SET 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OB SET ( objeto ; propriedade ; valor {; propriedade2 ; valor2 ; ... ; propriedadeN ; valorN} ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| objeto | Campo Objeto, Objeto |   | Objeto estruturado | |||||
| propriedade | Texto |   | Nome da propriedade a configurar | |||||
| valor | Expression |   | 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.
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:
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])Se quiser 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)
 $vDateSetting:=Get database parameter(Dates inside objects) //salva a configuração atual
 SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
 OB SET($o ;"myDate";Current date) // JSON conversion
 $json:=JSON Stringify($o)
 SET DATABASE PARAMETER(Dates inside objects;$vDateSetting)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 ifTambém pode ler os atributos personalizados dos documentos:
 vAttrib:=OB Get([MyDocuments]My4DWP;"myatt_Last edition by")Se quiser definir uma coleção como um valor propriedade. Pode escrever:
 C_OBJECT($person)
 C_COLLECTION($myCol)
 
 $person:=OB New
 $myCol:=New collection("Mike";25;"Denis";12;"Henry";4;True)
 OB SET($person;"Name";"Jones";"Children";$myCol)Se quiser armazenar uma imagem em um campo objeto. Pode escrever:
 C_PICTURE($vPict)
 READ PICTURE FILE("photo.jpg";$vPict)
 If(OK=1)
    OB SET([Emp]Children;"photo";$vPict)
 End if
	Produto: 4D
	Tema: Objetos (Linguagem)
	Número 
        1220
        
        
        
	
	Criado por: 4D v14
	Modificado: 4D v15
	Modificado: 4D v15 R4
	Modificado: 4D v16 R4
	Modificado: 4D v16 R6
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
	
	
	
 Adicionar um comentário
Adicionar um comentário