Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
OB Get
|
OB Get ( objeto ; propiedad {; tipo} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
objeto | Objeto, Campo Objeto |
![]() |
Objeto estructurado | |||||
propiedad | Texto |
![]() |
Nombre de la propiedad a leer | |||||
tipo | Entero largo |
![]() |
Tipo al cual convertir el valor | |||||
Resultado | Expresión |
![]() |
Valor actual de propiedad | |||||
El comando OB Get devuelve el valor actual de la propiedad del objeto, convertido opcionalmente en el tipo definido.
objeto debe haber sido definido con el comando _O_C_OBJECT o designar un campo objeto 4D.
Nota: este comando soporta definiciones de atributo en objetos 4D Write Pro, como el comando WP GET ATTRIBUTES (ver el ejemplo 9).
En el parámetro propiedad, pase la etiqueta de la propiedad a leer. Tenga en cuenta que el parámetro propiedad es sensible a mayúsculas y minúsculas
Por defecto, 4D devuelve el valor de la propiedad en su tipo original. Puede "forzar" la escritura del valor devuelto utilizando el parámetro opcional tipo. Para ello, en tipo pase una de las siguientes constantes que se encuentran en el tema Tipos de campos y variables:
Constante | Tipo | Valor |
Is Boolean | Entero largo | 6 |
Is collection | Entero largo | 42 |
Is date | Entero largo | 4 |
Is longint | Entero largo | 9 |
Is null | Entero largo | 255 |
Is object | Entero largo | 38 |
Is picture | Entero largo | 3 |
Is pointer | Entero largo | 23 |
Is real | Entero largo | 1 |
Is text | Entero largo | 2 |
Is time | Entero largo | 11 |
El comando devuelve el valor de la propiedad. Varios tipos de datos están soportados. Tenga en cuenta que:
Notas de compatibilidad:
Recuperación de un valor de tipo texto:
C_OBJECT($ref)
C_TEXT($FirstName)
OB SET($ref;"FirstName";"Harry")
$FirstName:=OB Get($ref;"FirstName") // $FirstName = "Harry" (text)
Recuperación de un valor real convertido en entero largo:
OB SET($ref ;"age";42)
$age:=OB Get($ref ;"age") // $age es un número real (default)
$age:=OB Get($ref ;"age";Is longint) // $age es un entero largo
Recuperación de los valores de un objeto:
C_OBJECT($ref1;$ref2)
OB SET($ref1;"LastName";"Smith") // $ref1={"LastName":"Smith"}
OB SET($ref2;"son";$ref1) // $ref2={"son":{"LastName":"Smith"}}
$son:=OB Get($ref2;"son") // $son={"LastName":"john"} (object)
$sonsName:=OB Get($son ;"name") // $sonsName="john" (text)
Modificando de la edad de un empleado dos veces:
C_OBJECT($ref_john;$ref_jim)
OB SET($ref_john;"name";"John";"age";35)
OB SET($ref_jim;"name";"Jim";"age";40)
APPEND TO ARRAY($myArray;$ref_john) // creamos un objeto array
APPEND TO ARRAY($myArray;$ref_jim)
// cambiamos la edad de John de 35 a 25
OB SET($myArray{1};"age";25)
// cambiamos la edad de "John" en el array
For($i;1;Size of array($myArray))
If(OB Get($myArray{$i};"name")="John")
OB SET($myArray{$i};"age";36) // en cambio de 25
// $ref_john={"name":"John","age":36}
End if
End for
Al recuperar una fecha, el valor resultante depende de la configuración actual de la fecha de la base.
C_OBJECT($object)
C_DATE($birthday)
C_TEXT($birthdayString)
OB SET($object;"Birthday";!30/01/2010!)
$birthday:=OB Get($object;"Birthday";Is date) //30/01/10
$birthdayString:=OB Get($object;"Birthday") //"2010-01-29T23:00:00.000Z" (Paris time zone)
C_OBJECT($object)
C_DATE($birthday)
OB SET($object;"Birthday";!30/01/2010!)
$birthday:=OB Get($object;"Birthday") //30/01/10, no hay necesidad de Is date
Nota: para más información sobre esta configuración, consulte Página Compatibilidad.
Utilización de objetos anidados:
C_OBJECT($ref1;$child;$children)
C_TEXT($childName)
OB SET($ref1;"firstname";"John";"lastname";"Monroe")
//{"firstname":"john","lastname";"Monroe"}
OB SET($children;"children";$ref1)
$child:=OB Get($children;"children")
//$son = {"firstname":"John","lastname":"Monroe"} (object)
$childName:=OB Get($child;"lastname")
//$childName = "Monroe" (text)
//o
$childName:=OB Get(OB Get($children;"children");"lastname")
// $childName = "Monroe" (text)
Recuperación en 4D de una hora almacenada en un objeto:
C_OBJECT($obj_o)
C_TIME($set_h;$get_h)
$set_h:=?01:00:00?+1
OB SET($obj_o;"myHour";$set_h)
// $obj_o = {"myHour":3601}
// La hora se almacena en segundos
$get_h:=OB Get($obj_o;"myHour";Is time)
// $get_h = ?01:00:01?
Ejemplos de manipulación de campos objeto 4D:
// Definir un valor
OB SET([People]Identity_OB;"First name";$firstName)
OB SET([People]Identity_OB;"Last name";$lastName)
// Obtener un valor
$firstName:=OB Get([People]Identity_OB;"First name")
$lastName:=OB Get([People]Identity_OB;"Last name")
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")
Desea conocer el tamaño de una imagen almacenada en un atributo objeto:
C_LONGINT($vSize)
$vSize:=Picture size(OB Get($object;"photo";Is picture))
Nota: si asigna el resultado del comando a una variable imagen, la constante Is picture no es necesaria. Ejemplo:
C_PICTURE($vPict)
$vPict:=OB Get($object;"photo") //"is picture" es inútil en este caso
Producto: 4D
Tema: Objetos (Lenguaje)
Número
1224
Creado por: 4D v14
Modificado: 4D v15
Modificado: 4D v15 R4
Modificado: 4D v16 R4
Modificado: 4D v16 R6
Manual de lenguaje 4D ( 4D v20 R7)