V tomto článku si na příkladech ukážeme, jak můžeme omezit data, která uživatel může zobrazit/vybrat ve vyhledávacích polích sloupců Číselníková hodnota. V těchto sloupcích se odkazujeme na záznamy z jiných tříd.
Sloupec typu Číselníková hodnota může dle zvoleného nastavení odkazovat na jeden nebo více záznamů, přičemž může odkazovat do jiné třídy nebo tabulky uživatelů.
Sloupec typu Číselníková hodnota (na různé třídy) může dle zvoleného nastavení odkazovat na jeden nebo více záznamů ze více tříd, které jsou zvoleny.
Typ sloupce |
Odkaz na jeden nebo více záznamů |
Odkaz na třídu |
Odkaz na uživatele |
Odkaz na více tříd |
Číselníková hodnota |
Ano |
Ano |
Ano |
|
Číselníková hodnota (na různé třídy) |
Ano |
Ano |
|
Ano |
V případě sloupce Číselníková hodnota máme možnost buď uživatele nechat vybírat ze všech záznamů v odkazované třídě nebo v tabulce uživatelů nebo tyto množiny omezit. Máme tyto možnosti:
Typ omezení |
Číselníková hodnota: Odkaz na třídu |
Číselníková hodnota: Odkaz na uživatele |
Třída pro omezení záznamů |
Ano |
|
Filtr |
Ano |
|
Skript |
Ano |
Ano |
Viditelnost uživatelů |
|
Ano |
Třída pro omezení záznamů
Ve sloupci typu Číselníková hodnota můžeme zvolit třídu pro omezení záznamů, která nám velmi efektivně dokáže zajistit, že budeme vybírat z relevantních záznamů. Představte si tři třídy dle níže uvedeného schématu.
- Seznam projektů - odkazují se na něj obě zbývající třídy
- Seznam subprojektů - u každého Subprojektu je určen Projekt, do kterého patří
- Seznam úkolů - u každého úkolu vybíráme Projekt, do nějž patří a dále Subprojekt
Otázka zní, jak zajistit, aby uživatelé po výběru projektu, vybírali pouze pro z relevantních Subprojektů (těch, které patří do zvoleného Projektu). Pomocí této vlastnosti toho jednoduše docílíme. Po vytvoření všech sloupců ve třídě Úkol v definici sloupce Subprojekt zvolíme v comboboxu Třída pro omezení záznamů nabízenou hodnotu Projekt.
Tuto vlastnost můžeme v jedné třídě u různých sloupců použít opakovaně, a tak postupně zúžovat okruh volených záznamů na základě předchozích výběrů. Každý sloupec se může odkazovat na jinou třídu nebo na stejnou třídu, v níž je omezení docíleno sloupcem odkazujícím na třídu samou (self-reference).
Filtr
Níže uvedený filtr určuje, že uživateli budou nabízeny pouze záznamy, které splňují uvedenou podmínku.
Skript
Skript nám dává největší flexibilitu v definování logiky, která se má uplatnit při nabídnutí hodnot k výběru. Uvedené skripty představují přiřazení konkrétních hodnot, které mají být nabídnuty. Ve skriptu jim může předcházet komplexní logika a v přiřazení pak může být použita proměnná.
Níže uvedený skript použitý na záložce Reference u sloupce typu Číselníková hodnota umožní výběr ze záznamů definovaných prostřednictvím jejich Id.
Skript nastaví omezení jen na aktivní záznamy a záznamy s cenou menší nebo rovno 100.
OGDataRowFilter['active'] = true;
var c = OG.DataRow.CreateConGe(OGDataParent.Columns['price'], 100); OGDataRowFilter.AddAndCon(c);
Níže uvedený skript použitý na záložce Reference u sloupce typu Číselníková hodnota umožní výběr ze dvou uživatelů (definovaných prostřednictvím jejich Id).
OGPersonIds.Add(6);
OGPersonIds.Add(9);
Viditelnost uživatelů
Viditelnost představuje komplexní řešení znepřístupnění informací o ostatních uživatelích. Na rozdíl od předcházejících příkladů toto řeší pro celou instanci (všechny sloupce), ne jen jeden konkrétní sloupec, a určuje i zobrazení stránky PersonQuickInfo. Každý uživatel tak vybírá jen z definovaných pro něho relevantních uživatelů. Viditelnost je popsána ve zvláštním článku.
Forma výběru hodnot
U sloupců typu Číselníková hodnota volíme výběr formou comboboxu (vhodné pro menší počet záznamů) nebo formou vyhledávacího formuláře (vhodné pro více záznamů, umožňuje filtrování mezi záznamy). U vyhledávacího formuláře máme možnost zvolit, jaké sloupce záznamů mají být zobrazeny. V případě comboboxu je záznam vždy reprezentován hodnotou krátkého popisu. Pokud tento není definován, pak je zobrazen FullId záznamu: , kde X je Id třídy a Y je Id záznamu.
Příklad: Výběr v comboboxu
Příklad: Výběr ve vyhledávacím formuláři
V případě sloupce typu Číselníková hodnota (odkaz na více tříd) vybíráme vždy ve vyhledávacím formuláři, u kterého v levém horním rohu volíme, která z definovaných tříd má být aktuálně prohledávána.
Lokalizace dat ve vyhledávacích prvcích
Odkazovaný záznam může obsahovat více jazykových variant jednoho textu. Uživateli se pak v odkazovaném sloupci zobrazí varianta dle jeho nastavení jazyka. Ve sloupcích je třeba zaškrtnout volbu Lokalizovaná hodnota. To je třeba provést v textovém sloupci obsahujícím vlastní data (viz níže), ve sloupci Krátký popis (v stejné třídě jako textový sloupec) a také ve sloupci Číselníková hodnota, který obsahuje odkaz na lokalizovaná data.