ORDA é uma grande inovação do 4D v17, é por isso que estamos a dedicar uma série inteira de posts de blogues à ORDA. Embora a ORDA tenha os seus próprios conceitos que são muito diferentes da abordagem clássica, ainda é possível misturar a ORDA com o seu código existente.
Em poucas palavras, este post no blog irá mostrar-lhe como pode actualizar a selecção actual de uma tabela a partir da selecção de uma entidade e obter uma selecção de entidade a partir da selecção actual de uma tabela. Permitir-lhe-á integrar sem problemas os conceitosORDA no seu código 4D existente, passo a passo.
Exemplo: da selecção de entidade à selecção actual e vice-versa
INTRODUÇÃO
Com ORDA, os dados são acedidos através de uma camada de abstracção: a datastore. Uma datastore é um objecto que fornece uma interface para a base de dados e os seus dados através de objectos. E lembre-se, com ORDA, cada tabela é mapeada com um dataclass.
Uma vez que tenha uma selecção de entidade relacionada com um dataclass, pode actualizar a selecção actual do correspondente [Quadro] com o USE ENTITY SELECTION comando. E, uma vez que tenha uma selecção actual numa [Tabela], pode obter uma selecção de entidade relacionada com a classe de dados correspondente, com o Create entity selection comando.
Para guiá-lo através da exploração das características ORDA , preparámos um glossário dos diferentes termos e conceitos, juntamente com a sua definição.
Exemplo de código
Selecção actual a partir de uma selecção de entidade
No código abaixo, a selecção da entidade $entitySelection está relacionada com o comando Employee dataclass que corresponde efectivamente à tabela [Empregado] com o mesmo nome. O USE ENTITY SELECTION actualiza a selecção actual da tabela em conformidade.
C_OBJECT($entitySelection)
$entitySelection :=ds.Employee.query("lastName=:1"; "R@")
// The current selection of the [Employee] table is replaced according to the content of $entitySelection
USE ENTITY SELECTION (
$entitySelection)
//... Go on with your classic 4D code ...
PRINT SELECTION (
[Employee])
//...
selecção de entidades da selecção actual
Aqui, a selecção actual foi actualizada após a realização de uma consulta sobre a tabela [Empregado]. O Create entity selection() cria a selecção da entidade $entitySelection em conformidade. A selecção da entidade criada está relacionada com o comando Employee dataclass.
C_OBJECT($entitySelection)
// The current selection of the [Employee] table is updated after the query
QUERY ([Employee])
// $entitySelection is created from the current selection of the [Employee] table
$entitySelection :=Create entity selection([Empregado])