4D View Pro nabízí nový způsob načítání dat a vytváření šablon: kontext dat. Umožňuje vytvořit dokument se zástupnými symboly a naplnit je nastavením tohoto datového kontextu.
Pomocí několika málo řádků kódu můžete zobrazit objekty nebo kolekce, aniž byste je nejprve autorizovali pomocí VP SET CUSTOM FUNCTION! Pojďme se ponořit do podrobností.
Vytvoření dokumentu se zástupnými symboly
Nejprve musíte vytvořit dokument s atributy vašich objektů. Pokud například používáte objekt se dvěma atributy, Křestní jméno a Příjmení, můžete vytvořit dva zástupné symboly pomocí příkazu VP SET BINDING PATH příkazem:
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 0); "Firstname")
VP SET BINDING PATH(VP Cell("ViewProArea"; 0; 1); "Lastname")
V listu se nezobrazí žádné hodnoty, protože datový kontext ještě není definován. Chcete-li ověřit, zda jsou vaše buňky správně svázány, přejděte na kartu DATA v rozhraní Ribbon a klikněte na tlačítko Vazba listu. Názvy vašich atributů se objeví v závorkách:
Datový kontext
Nyní, když je vaše šablona připravena, stačí nastavit kontext dat s vaším objektem pomocí příkazu VP SET DATA CONTEXT:
$object:=New object
$object.Firstname:="John"
$object.Lastname:="Smith"
VP SET DATA CONTEXT("ViewProArea"; $object)
Šablona se tedy automaticky aktualizuje:
Uživatel samozřejmě může data upravovat:
V tomto případě není problém; stačí použít příkaz VP Get data context metodu pro načtení vašeho objektu s úpravami:
$object:=VP Get data context("ViewProArea")
//$object={Firstname:Judith,Lastname:Smith}
Vstřikování dat do listuS
Pokud svému datovému kontextu předáte kolekci, bude tato kolekce automaticky svázána s listem. Pokud je na adrese autoGenerateColumns možnost VP SET DATA CONTEXT příkazu nastavena na hodnotu true, kolekce se automaticky zobrazí v listu.
Chcete-li například zobrazit tabulku z databáze, stačí napsat:
$people:=ds.People.all().toCollection()
VP SET DATA CONTEXT("ViewProArea"; $people; New object("autoGenerateColumns"; True)
získáte:
Počet sloupců a řádků se automaticky vypočítá a názvy sloupců jsou názvy polí tabulky.
Všimněte si, že pokud není nastavena hodnota autoGenerateColumns na true, nezobrazí se žádná data!
Podívejte se na výše uvedené HDI, abyste viděli tyto příkazy v akci. Nezapomeňte si také přečíst dokumentaci, kde najdete další podrobnosti!