Os objectos são óptimos, todos o dizem. Para além da sua maravilhosa flexibilidade, são incrivelmente rápidos. É possível pesquisar milhões de registos em apenas uma fracção de segundo. 4D v16 permite até encomendar por atributos de objectos, e fazer cálculos tais como Soma ou Média.
Com 4D v16 R4, a linguagem 4D foi drasticamente melhorada para tornar a utilização de objectos muito mais confortável – com o apoio da notação do objecto. Rápido, flexível, eficiente e agora elegante!
O que é possível?
Os objectos em linguagem 4D podem ser manuseados utilizando a notação padrão de objectos para obter ou definir os seus valores. Com a notação de objectos:
- as propriedades dos objectos podem ser acedidas usando um símbolo de “ponto” (por exemplo, empregado.nome)
- elementos de colecção de objectos podem ser acedidos usando parênteses rectos (por exemplo, salas[2])
- os sub-objectos e as propriedades dos sub-objectos podem ser acedidos através de uma sequência de símbolos (por exemplo, empregado.crianças[2].idade).
Boas notícias, agora você tem um meio de se livrar de todos aqueles OB Get e OB SET no seu código! E sabe o quê? A execução do código é 10 vezes mais rápida com a notação do objecto em comparação com OB Get/OB SET utilização!
Exemplos de notação de objectos
Digamos que temos um $o objecto contendo as seguintes informações:
{ "Lastname": "Doe", "Firstname": "John", "Avatar": "[object Picture]" "Child": [{ "Name": "Susan", "Age": 3 } , { "Name": "Bob", "Age": 8 }] }
Para recuperar o “Firstname” atributo, escreve:
Com notação de objecto
C_TEXT($name)
$name :=$o.Primeiro nome
Sem notação de objecto
C_TEXT($name)
$name :=OB Get($o; "Nome próprio")
Para recuperar o atributo “Name” das segundas crianças, escreve:
Com notação de objecto
C_TEXT($name)
$name :=$o.Criança[1].Nome
Sem notação de objecto
ARRAY OBJECT($aChild;0)
C_TEXT ($name)
OB GET ARRAY ($o; "Criança";$aChild)
$name :=OB GET($aChild{2}; "Nome")
Para acrescentar outras crianças, escreve:
Com notação de objecto
$oCriança[2].Nome:="Mike"
$o .Criança[2].Idade:=9
Sem notação de objecto
ARRAY OBJECT($aChild;0)
C_OBJECT ($kid)
OB GET ARRAY ($o; "Criança";$aChild)
OB SET ($kid; "Nome"; "Mike")
OB SET ($kid; "Idade";9)
APPEND TO ARRAY ($aChild;$kid)
OB SET ARRAY ($o; "Criança";$aChild)
Para adicionar uma imagem num atributo de objecto, escreve-se:
Com notação de objecto
C_PICTURE($img)
READ PICTURE FILE("img.jpg";$img )
$o .Avatar:=$img
Sem a notação de objecto
C_PICTURE($img )
READ PICTURE FILE ("img.jpg";$img )
OB SET ($o; "avatar";$img)
Leia mais sobre Fotos em Objectos >
Para utilizar a notação de ponteiro, escreve-se:
Com notação de objecto
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=$p->Primeiro nome
Sem notação de objecto
C_POINTER($p)
$p :=->$o
...
C_TEXT ($name)
$name :=OB Get($p->; "Nome próprio")
Como é que eu activo a notação de objectos?
Para poder beneficiar da notação de objecto, deve ir à página de Definições de Compatibilidade na caixa de diálogo Definições de Base de Dados e clicar no botão “Activar notação de objecto”:
Existem alguns pré-requisitos antes de activar a notação de objecto, mas estamos a ajudá-lo a preparar-se: