4D Os documentos Write Pro contêm frequentemente fórmulas de devolução de dados ou cálculos, dependendo da base de dados. Graças à utilização de contextos, associar esses dados a documentos é agora uma brincadeira de crianças!
Neste post do blog, veremos como a combinação de documentos 4D Write Pro com dados recuperados usando ORDA torna o código claro e fácil de manter.
4D Write Pro e dados
Quer se trate de cartas, campanhas por e-mail, geração de catálogos, impressão de facturas, etc., os dados apresentados ou impressos provêm sempre da base de dados. Graças à ORDA, o acesso a esses dados é cada vez mais eficiente, e o novo conceito de contextos permitir-lhe-á explorar eficazmente a informação contida nos seus documentos.
Um contexto? O que é um contexto A?
Um contexto é um objecto: Uma entidade, uma selecção de entidade, ou qualquer objecto composto de tantos atributos quantos forem necessários. Uma vez criado e associado a um documento, este contexto pode ser utilizado directamente dentro do documento, utilizando a função This, com a qual está agora familiarizado.
Um caso simples: CAMPANHA DE CORREIO
Digamos que tem um dataclass People e deseja enviar e-mails a uma selecção destas pessoas. A primeira coisa a fazer é criar o modelo de carta com as informações a comunicar, e depois inserir dados de cada pessoa (o seu nome, morada, etc.) nesse modelo. Este processo é bem conhecido, mas veremos como inserir esta informação assim que o contexto for criado.
Para cada pessoa…
Antes de imprimir a sua carta modelo, associe cada entidade da sua selecção com o modelo.
E é tudo!
For each ($person; $es_people)
WP SET DATA CONTEXT ($template; $person)
WP PRINT (
$template)
End for each
Mas o que é que o modelo contém?
O contexto $person está acessível no modelo através da fórmula This.data.
Se a entidade $person tiver um atributo lastname, este atributo será acessível através de This.data.lastname.
A sua carta modelo conterá, portanto, este tipo de expressões:
Uma função na classe PeopleSelection
Para a beleza do código, pode criar uma função que receberá o modelo impresso com os dados das entidades.
Class extends EntitySelection
Function mailing($template: Object)
For each ($people; This)
WP SET DATA CONTEXT (
$template; $people)
WP PRINT (
$template)
End for each
A chamada desta função será feita da seguinte forma, de uma forma requintada:
// create entity selection
$es:=ds.People.all()
// mailing based on 4D Write Pro template
$es . mailing($template)
Conclusão
Mais informações podem ser encontradas na documentação. E sinta-se à vontade para partilhar connosco o seu feedback e experiência no fórum 4D.