1. Vyhledávání dat

    Článek: AN0001644Aktualizováno:: 22.09.2018

    V ObjectGears existuje řada možných způsobů vyhledání dat.

    Rychlý filtr

    Na každé třídě je možné zapnout Rychlý filtr a zobrazit pole pro filtrování v datech třídy. Jde o jednoduchý filtr s přímočarým scénářem pro uživatele. Tento filtr však neumožňuje pokročilé filtrování s kombinací různých podmínek jako ObjectGears filtr.

    ObjectGears filtr

    Tento filtr umožňuje použití řady podmínek filtrování v závislosti na datovém typu sloupce, kombinování podmínek pomocí operátorů AND, OR a závorek či filtrování záznamů předka dle třídy potomka. Tento filtr může ovládat uživatel nebo může být nastavován pomocí Url či skriptu (viz níže). ObjectGears filtr slouží nejen k vyhledávání dat v záznamech tříd či dotazů, ve vyhledávacích formulářích nebo v master-detail relacích, ale je použit na řadě dalších míst systému (filtrování v exportech, importech, upozorněních atd.).

    Uložení a kopírování filtru

    Uživatel si může filtru uložit do svého oblíbených položek (viz levé vertikální menu). Filtr lze zaslat i jinému uživateli formou Url odkazu, který obsahuje definici filtru (viz níže Url filtr). Tento Url odkaz je dostupný pod volbou Kopírovat url (viz ozubené kolečko v pravém horním rohu obrazovky).

    Url filtr

    Záznamy je také možné filtrovat pomocí Url filtru. Uživateli je možné nabídnout odkazy (na tlačítcích, v datech atd.), které nastaví ObjectGears filtr a zobrazí vyfiltrované záznamy.

    Filtrování na seznamu záznamů

    Na seznamu záznamů je možné provádět filtrování pomocí kliknutí pravým tlačítkem na myši na některou buňku zobrazeného záznamu. V kontextovém menu pak stačí jen vybrat zda se daná hodnota má vyfiltrovat nebo naopak odfiltrovat. Opakovaným klikáním na buňky v záznamech lze postupně vybrat požadované záznamy.

    Toto filtrování je možné použít pro většinu sloupců (neaplikuje se např. u sloupců typu soubor nebo násobný odkaz).

    Filtrování pomocí skriptu - na tlačítku nebo ve vlastnostech třídy/dotazu

    Záznamy je také možné filtrovat skriptem na tlačítku či ve vlastnostech třídy (nastavení při zobrazení seznamu záznamů), které nastaví ObjectGears filtr a zobrazí vyfiltrované záznamy. Viz příklady.

    Dotazy

    Další možností je práce s dotazy, které přebírají proměnné (např. Id záznamu, z něhož jsou volané nebo Id uživatele, který je spouští).

    Fulltextové hledání

    Na textových sloupcích tříd lze zapnout fulltextové indexy a realizovat hledání zohledňující různé tvary slov dané skloňováním a časováním, specifika dělení slov či necitlivost na diakritiku.

    Globální hledání

    ObjectGears podporuje i globální hledání napříč různými modely, které uživatel využije v situaci, kdy přesně neví, v jakém modelu či třídě se hledaná data nacházejí. Předpokladem použití je zahrnutí konkrétního textového sloupce do globálního hledání. To provádí IT vlastník modelu. Uživatel pro hledání využije textové pole  v pravém horním rohu na stránce ObjectGears. Při hledání jsou plně respektována oprávnění. Uživateli jsou zobrazeny pouze záznamy, na které má právo pro čtení v seznamu. Záznamy jsou na stránce rozděleny do sekcí podle třídy/dotazu, do níž patří. Pokud má uživatel právo na čtení detailu dat, může přejít na detail dat klikem hodnotu ve sloupci Id. Pokud je v rámci globálního hledání nalezen pouze jeden záznam, je uživateli vrácen přímo detail tohoto záznamu.

    Problém při hledání dat

    Při hledání dat pomocí sql nebo filtrů je třeba počítat s následujícím chováním.

    Mějme třídu, ve které jsou záznamy. Následně do ní přidáme sloupec ACTIVE, který bude povinný. Výchozí hodnota sloupce bude false. Následně budeme přidávat další záznamy.

    Dojde k tomu, že původní záznamy před přidáním sloupce budou mít v tomto sloupci hodnotu NULL a nové záznamy true nebo false. ObjectGears vyhodnotí hodnotu NULL ve sloupci typu Ano/Ne jako false a takto bude v GUI zobrazován.

    Problém vzniká při filtrování  na hodnotu false ve skriptech nebo v přímo v SQL. Pokud neprovedete po přidání nového sloupce inicializaci již existujících záznamů, musíte s tím počítat i ve filtrech a SQL. Pro ošetření v SQL můžete použít následující konstrukci:

    (col is null or col = 0)

     

    Data můžete aktualizovat několika způsoby:

    1. aktualizovat každý záznam zvlášť
    2. hromadnou aktualizací všech záznamů
    3. aktualizovat skriptem
    4. aktualizovat updatem v databázi
×