1. Příklad: Omezení dat ve vyhledávacích prvcích

    Článek: AN0002368Aktualizováno:: 08.11.2018

    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.

    1. Seznam projektů - odkazují se na něj obě zbývající třídy
    2. Seznam subprojektů - u každého Subprojektu je určen Projekt, do kterého patří
    3. 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.

×