| 4D v18OB Get | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 OB Get 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OB Get ( objeto ; propriedade {; tipo} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| objeto | Objeto, Campo Objeto |   | Objeto estruturado | |||||
| propriedade | Texto |   | Nome da propriedade a ler | |||||
| tipo | Inteiro longo |   | Tipo ao qual converter o valor | |||||
| Resultado | Expression |   | Valor atual de propriedade | |||||
O comando OB Get devolve o valor atual da propriedade do objeto, convertido opcionalmente no tipo definido.
objeto deve ter sido definido com o comando C_OBJECT ou designar um campo objeto 4D..
Nota: este comando suporta definições de atributo em objetos 4D Write Pro, como o comando WP GET ATTRIBUTES (ver o exemplo 9). .
No parâmetro propriedade, passe a etiqueta da propriedade a ler. Tenha em conta que o parâmetro propriedade é sensível a maiúsculas e minúsculas
Por padrão, 4D devolve o valor da propriedade em seu tipo original. Pode "forçar" a escritura do valor devolvido utilizando o parâmetro opcional tipo. Para isso, em tipo passe uma das seguintes constantes que se encontram no tema Tipos de campos e variáveis:
| Constante | Tipo | Valor | 
| Is Boolean | Inteiro longo | 6 | 
| Is collection | Inteiro longo | 42 | 
| Is date | Inteiro longo | 4 | 
| Is longint | Inteiro longo | 9 | 
| Is null | Inteiro longo | 255 | 
| Is object | Inteiro longo | 38 | 
| Is picture | Inteiro longo | 3 | 
| Is pointer | Inteiro longo | 23 | 
| Is real | Inteiro longo | 1 | 
| Is text | Inteiro longo | 2 | 
| Is time | Inteiro longo | 11 | 
O comando devolve o valor da propriedade. Vários tipos de dados estão suportados. Leve em conta que:
Nota de Compatibilidade:
Recuperação de um valor de tipo texto:
 C_OBJECT($ref)
 C_TEXT($FirstName)
 OB SET($ref;"FirstName";"Harry")
 $FirstName:=OB Get($ref;"FirstName") // $FirstName = "Harry" (text)Recuperação de um valor real convertido em inteiro longo:
 OB SET($ref ;"age";42)
 $age:=OB Get($ref ;"age") // $age é um número real (default)
 $age:=OB Get($ref ;"age";Is longint) // $age é um inteiro longoRecuperação dos valores de um 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 a idade de um empregado duas vezes:
 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) // criamos um objeto array
 APPEND TO ARRAY($myArray;$ref_jim)
  // mudamos a idade de John de 35 a 25
 OB SET($myArray{1};"age";25)
  // mudamos a idade de "John" no array
 For($i;1;Size of array($myArray))
    If(OB Get($myArray{$i};"name")="John")
       OB SET($myArray{$i};"age";36) // em troca de 25
  // $ref_john={"name":"John","age":36}
    End if
 End forQuando recuperando uma data, o valor resultante depende das configurações atuais de data no banco de dados.
 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" (fuso horário de Paris) C_OBJECT($object)
 C_DATE($birthday)
 OB SET($object;"Birthday";!30/01/2010!)
 $birthday:=OB Get($object;"Birthday") //30/01/10, não precisa de Is dateNota: Para saber mais sobre essa configuração, veja Página Compatibilidade.
Utilização de objetos aninhados:
 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)Recuperação em 4D de uma hora armazenada em um 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}
  // A hora é armazenada em segundos
 $get_h:=OB Get($obj_o;"myHour";Is time)
  // $get_h = ?01:00:01?Exemplos de manipulação de campos objeto 4D:
  // Definir um valor
 OB SET([People]Identity_OB;"First name";$firstName)
 OB SET([People]Identity_OB;"Last name";$lastName)
 
  // Obter um valor
 $firstName:=OB Get([People]Identity_OB;"First name")
 $lastName:=OB Get([People]Identity_OB;"Last name")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 conhecer o tamanho de uma imagem armazenada em um atributo objeto:
 C_LONGINT($vSize)
 $vSize:=Picture size(OB Get($object;"photo";Is picture))Nota: se atribuir o resultado do comando a uma variável imagem, a constante Is picture não é necessária. Exemplo:
 C_PICTURE($vPict)
 $vPict:=OB Get($object;"photo") //"is picture" é inútil neste caso
	Produto: 4D
	Tema: Objetos (Linguagem)
	Número 
        1224
        
        
        
	
	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