Dokumenty 4D Write Pro často obsahují vzorce vracející data nebo výpočty v závislosti na databázi. Díky použití kontextů je nyní přiřazení těchto dat k dokumentům hračkou!
V tomto příspěvku na blogu si ukážeme, jak kombinace dokumentů 4D Write Pro s daty získanými pomocí ORDA zpřehledňuje kód a usnadňuje jeho údržbu.
4D Write Pro a data
Ať už se jedná o dopisy, e-mailové kampaně, generování katalogů, tisk faktur apod. zobrazovaná nebo tištěná data vždy pocházejí z databáze. Díky ORDA je přístup k těmto datům stále efektivnější a nová koncepce kontextů vám umožní efektivně využívat informace v dokumentech.
Kontext? Co je to kontext?
Kontext je objekt: Kontext může být entita, výběr entit nebo jakýkoli objekt složený z tolika atributů, kolik je potřeba. Po vytvoření a přiřazení k dokumentu lze tento kontext použít přímo v dokumentu pomocí funkce This, kterou již znáte.
Jednoduchý případ: Poštovní kampaň
Řekněme, že máte datovou třídu Lidé a chcete posílat e-maily vybraným z těchto lidí. Nejprve je třeba vytvořit šablonu dopisu s informacemi, které mají být sděleny, a poté do ní vložit údaje jednotlivých osob (jejich jméno, adresu atd.). Tento postup je dobře známý, ale my se podíváme, jak tyto informace vložit, jakmile je kontext vytvořen.
Pro každou osobu…
Před vytištěním vzorového dopisu přiřaďte každou vybranou entitu k šabloně.
A to je vše!
For each ($person; $es_people)
WP SET DATA CONTEXT ($template; $person)
WP PRINT (
$template)
End for each .
Co však model obsahuje?
Kontext $person je v modelu přístupný prostřednictvím vzorce This.data.
Pokud má entita $person atribut lastname, bude tento atribut přístupný prostřednictvím This.data.lastname.
Váš vzorový dopis tedy bude obsahovat tyto druhy výrazů:
Funkce ve třídě PeopleSelection
Pro krásu kódu můžete vytvořit funkci, která obdrží šablonu vypsanou s daty entit.
Class extends EntitySelection
Function mailing($template: Object)
For each ($people; This)
WP SET DATA CONTEXT (
$template; $people)
WP PRINT (
$template)
End for each .
Volání této funkce bude probíhat následujícím výstižným způsobem:
// create entity selection
$es:=ds.People.all()
// mailing based on 4D Write Pro template
$es . mailing($template)
Závěr
Další informace naleznete v dokumentaci. A neváhejte se s námi podělit o své názory a zkušenosti na fóru 4D.