Saltar al contenido principal
Versión: Siguiente

OB SET

OB SET ( objeto ; propiedad ; valor {; propiedad2 ; valor2 ; ... ; propiedadN ; valorN} )

ParámetroTipoDescripción
objetoCampo Objeto, Objeto🡒Objeto estructurado
propiedadTexto🡒Nombre de la propiedad a configurar
valorExpresión🡒Nuevo valor de la propiedad

Descripción

El comando OB SET crea o modifica uno o más pares de propiedad/valor en el objeto de lenguaje designado por el parámetro objeto.

objeto debe haber sido definido usando el comando C_OBJECT o designar un campo objeto 4D.

En el parámetro propiedad, pase la etiqueta de la propiedad a crear o modificar. Si la propiedad ya existe en objeto, su valor se actualiza. Si no existe, se crea.

Tenga en cuenta, que el parámetro propiedad es sensible a las mayúsculas y minúsculas.

En el parámetro valor, pase el valor que desea definir para la propiedad. Se admiten varios tipos de datos. Tenga en cuenta que:

  • si pasa un puntero, se mantiene como es, se evalúa utilizando el comando JSON Stringify
  • si pasa una fecha, se almacenará con el tipo de fecha o como texto en formato ISO dependiendo de la configuración actual de la fecha de la base. Para más información, consulte la opción "Utilizar tipo de fecha en lugar de formato de fecha ISO en objetos" en Página Compatibilidad.
  • si pasa una hora, se almacena en forma de un número de segundos (real) en objeto
  • si pasa un objeto de lenguaje o una colección, el comando utiliza una referencia y no una copia. Toda modificación aplicada al objeto o colección se informará a todas las referencias
  • a partir de 4D v16 R4, puede pasar una imagen de todo tipo soportado (ver Formatos nativos soportados).

Ejemplo 1

Creación de un objeto y adición de una propiedad de tipo texto:

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

Ejemplo 2

Creación de un objeto y adición de una propiedad de tipo booleano:

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

Ejemplo 3

Modificación de una propiedad:

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

Ejemplo 4

Adición de una propiedad:

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

Ejemplo 5

Renombrando una propiedad:

 var $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}

Ejemplo 6

Usando un puntero:

  // $Object = {"FirstName":"Paul","LastName":"Smith"}
 var $LastName : Text
 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"}

Ejemplo 7

Usando un objeto:

 var $ref_smith : Object
 OB SET($ref_smith ;"name";"Smith")
 var $ref_emp : Object
 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)

También puede cambiar un valor sobre la marcha:

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

Ejemplo 8

Si ha definido el campo [Rect]Desc como un campo objeto, puede escribir:

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

Ejemplo 9

Usted quiere exportar datos en JSON que contienen una fecha 4D que desea convertir en una cadena sin información de zona horaria. Note que la conversión ocurre cuando la fecha se guarda en el objeto, debe llamar al comando SET DATABASE PARAMETER antes de llamar a OB SET:

 var $o : Object
 $vDateSetting:=Get database parameter(Dates inside objects) //guardar la configuración actual
 SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
 OB SET($o ;"myDate";Current date) // conversión JSON
 $json:=JSON Stringify($o)
 SET DATABASE PARAMETER(Dates inside objects;$vDateSetting)

Ejemplo 10

En un método formulario, puede escribir:

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

También puede leer los atributos personalizados de los documentos:

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

Ejemplo 11

Usted desea definir una colección como un valor propiedad. Puede escribir:

 var $person : Object
 var $myCol : Collection
 
 $person:=OB New
 $myCol:=New collection("Mike";25;"Denis";12;"Henry";4;True)
 OB SET($person;"Name";"Jones";"Children";$myCol)

Ejemplo 12

Usted desea almacenar una imagen en un campo objeto. Puede escribir:

 var $vPict : Picture
 READ PICTURE FILE("photo.jpg";$vPict)
 If(OK=1)
    OB SET([Emp]Children;"photo";$vPict)
 End if

Ver también

OB Get
OB REMOVE
OB SET ARRAY
OB SET NULL