I documenti di 4D Write Pro contengono spesso formule che restituiscono dati o calcoli a seconda del database. Grazie all’uso dei contesti, associare questi dati ai documenti è ora un gioco da ragazzi!
In questo post vedremo come la combinazione di documenti 4D Write Pro e dati recuperati con ORDA renda il codice chiaro e facile da mantenere.
4D Write Pro e i dati
Che si tratti di lettere, campagne e-mail, generazione di cataloghi, stampa di fatture e così via, i dati visualizzati o stampati provengono sempre dal database. Grazie a ORDA, l’accesso a questi dati è sempre più efficiente e il nuovo concetto di contesto vi permetterà di sfruttare in modo efficace le informazioni contenute nei vostri documenti.
Un contesto? Che cos’è un contesto?
Un contesto è un oggetto: Un’entità, una selezione di entità o qualsiasi oggetto composto da tutti gli attributi necessari. Una volta creato e associato a un documento, questo contesto può essere utilizzato direttamente all’interno del documento utilizzando la funzione This, che ormai conoscete bene.
Un caso semplice: CAMPAGNA DI MAILING
Supponiamo di avere una classe di dati Persone e di voler inviare e-mail a una selezione di queste persone. La prima cosa da fare è creare il modello di lettera con le informazioni da comunicare, quindi inserire i dati di ciascuna persona (nome, indirizzo, ecc.) in tale modello. Questo processo è ben noto, ma vedremo come inserire queste informazioni una volta creato il contesto.
Per ogni persona…
Prima di stampare la lettera modello, associate ogni entità della vostra selezione al modello.
E questo è tutto!
For each ($person; $es_people)
WP SET DATA CONTEXT ($template; $person)
WP PRINT (
$template)
End for each
Ma cosa contiene il modello?
Il contesto $person è accessibile nel modello tramite la formula This.data.
Se l’entità $person ha un attributo lastname, questo attributo sarà accessibile tramite This.data.lastname.
Il vostro modello di lettera conterrà quindi questo tipo di espressioni:
Una funzione della classe PeopleSelection
Per la bellezza del codice, si può creare una funzione che riceverà il modello stampato con i dati delle entità.
Class extends EntitySelection
Function mailing($template: Object)
For each ($people; This)
WP SET DATA CONTEXT (
$template; $people)
WP PRINT (
$template)
End for each
La chiamata di questa funzione avverrà come segue in modo squisito:
// create entity selection
$es:=ds.People.all()
// mailing based on 4D Write Pro template
$es . mailing($template)
Conclusione
Ulteriori informazioni sono disponibili nella documentazione. E sentitevi liberi di condividere con noi il vostro feedback e la vostra esperienza sul forum 4D.