| 4D v18OB Get | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 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 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 largoRecuperació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 forAl 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 dateNota: 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 ifTambié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 v18)
	
	
	
	
	
 Añadir un comentario
Añadir un comentario