VaxNt.Podřízené pohledy
	Na desktopu můžeme v aplikaci zobrazit několik pohledů. Tyto mohou být zcela nezávislé, ale pomocí tzv.
	podřízenosti je možno mezi nimi vytvářet i systematické a "živé" vazby.  Předpokládejme, že v databázi existuje
	tabulka oblastí a rovněž tabulka objektů, které do těchto oblastí patří. Obecně tedy jde o seznam a širší množinu, 
	která je tímto seznamem nějak logicky členěna. Přirozeně vzniká
	požadavek snadno a rychle se dívat na data patřící jenom do jedné skupiny:
	
	Nejsnazžím způsobem prezentace takových dat jsou dvě okénka zobrazující dva svázané seznamy. V jednom
	například seznam oblastí a ve druhém seznam objektů - ovšem vždy takových, na jaké oblasti se nacházíme
	v seznamu oblastí. Posouváním po oblastech (uživatelích, typech poruch, ...) se pak druhý seznam zařízení (zařízení,
	poruch,...) automaticky aktualizuje a přeobrazuje. Stejně tak je možno chtít sestavit podřízený graf, který
	automaticky kreslí po každém pohybu v seznamu oblastí přehled četnosti poruch podle typů ve formě
	koláčového grafu.
	
	K tomu slouží pojem podřízenosti. Podřízený pohled získáme výběrem po stisku pravého 
	tlačítka myši na nadřízeném, tedy původním pohledu. V našem případě nad pohledem na seznam oblastí. 
	Vybereme Podřízený a potom Pohled. Z menu si vybereme opět libovolný pohled - v našem případě například
	pohled na databázovou tabulku Kmen. Potom v okénku SQL definujícím dotaz na databázi v podřízeném 
	pohledu vyplníme vazbu. Ta bude typicky zprostředkována pomocí stejnojmenné položky v obou 
	tabulkách, ne však nutně. Okénko bude obsahovat 
	standardní sql dotaz, pravděpodobně:
		
	Nakonec oba pohledy uspořádáme vhodně na obrazovku, například jako "dlaždice svisle" a uložíme jako
	konfiguraci desktopu - viz Layouts. Například pod jménem "OblastiAZarizeni"
	Můžeme se pak kdykoli vrátit k takto zhotovené konfiguraci. Ukládá se tam, odkud byl spuštěn binár vaxnt.exe,
	vi dialogu si ale můžete vybrat jakékoli jiné místo.
	
	V této konfiguraci tedy můžeme "browsit" po oblastech v základním pohledu a v podřízeném pohledu
	se automaticky budou objevovat odpovídající zařízení v nich. 
	Je jasné, že podmínku v podřízeném pohledu můžeme ještě jakkoli doplnit, například omezit datum
	uvedení do provozu atd.
	
	Zcela analogickým způsobem můžeme sestavit i podřízený graf. Ten pak může při "browsení" přes 
	zařízení automaticky kreslit koláčový graf rozložení typů poruch na daném zařízení. 
	
	Tato technika se hodí všude tam, kde existují vazby 1:N v datech, která je vhodné prohlížet
	jako parciální seznamy. Uspoří to sáhodlouhé zadávání filtrů a rovněž se omezí i datový
	tok mezi serverem a vaším PC. Takže vedle oblastí a zařízení nebo zařízení a poruch to mohou být 
	odběratelé a smlouvy apod.
	Podřízenost může být samozřejmě řetězená a může tedy existovat ještě podřízený pohled nebo graf
	k pohledu už podřízenému. Čili je možno vytvořit kaskádu Oblast -> Zařízení -> Rozložení poruch.
	
	Vtip je v tom, že třebas i složitě zkonstruovaná kaskáda podřízenosti pak uspoří mnoho psaní a
	umožní využívat data nečekaně flexibilním způsobem. Důležité je to, že "živost" a automatické
	překreslování celé kaskády jsou zaručeny systémem automaticky.
	
	Poznámka pro znalce SQL. Obrat "SELECT * FROM KMEN WHERE Zavod='$(^Zavod)'" je
	rozšířením syntaxe SQL. Proměnné typu $(Zavod) jsou řešeny softwarem na konstanty těsně
	před položením dotazu a to podle kontextu, parametrů a nebo dialogem s operátorem. Proměnná
	^Zavod je vlastně metaproměnnou a značí totéž co "hodnota proměnné Zavod z nadřízeného pohledu
	a tam z aktuálního záznamu". Stojíme-li tedy v nadřízeném pohledu na záznamu, kde Zavod je "ZC",
	pak je obrat kompilován těsně před odesláním do databáze na
	dotaz "SELECT * FROM KMEN WHERE Zavod='ZC'". Flexibility systému je zde
	dosaženo vhodnou interpretací kontextu a kompilací dynamických sql dotazů metodou just-in-time.
	Stejná technika je použita při zadávání sloupcových filtrů. To také ukazuje sílu interpretace oproti
	tvrdému zadrátování aplikací do EXE souborů.
	
	Vedle proměnných, jako byla výše $(Zavod) řeší některé proměnné systém
	automaticky, takové jsou například $(Today), $(Yesterday), $(Tomorrow), $(ThisWeek) a celá
	řada jiných.
	
	Při řešení hodnot just-in-time se někdy musí rozvinout dialog nebo kalendář apod.
	V tom případě se software snaží vyhnout duplicitním dotazům na to, na co už uživatel nějak odpověděl.
	To se hodí hlavně tam, kde se opakuje použití stejné proměnné. Například:
		
	Viz kapitola o gridech.
	
	Viz kapitola o metaproměnných.
	
	Hlavní obsahová stránka / rejstřík
Aktualizováno dne 20000623. Komentář: info@jlabs.cz