1. Datový typ OG - OGFilter

    Article: AN0001714Updated: 03.12.2018

    Objekt umožňuje nastavit filtrovací podmínky pro třídu/dotaz. Používá se pro tvorbu filtru ze skriptu a následnému načtení záznamů.

    Vlastnosti objektu

    Název Popis
    void Add(bool andOr, string columnCode, string oper) Metoda přidá novou podmínku.
    void Add(bool andOr, string columnCode, string oper, object data) Metoda přidá novou podmínku.
    void Add(int? parentIndex, bool andOr, string columnCode, string oper) Metoda přidá novou podmínku.
    void Add(int? parentIndex, bool andOr, string columnCode, string oper, object data) Metoda přidá novou podmínku.
    int AddBracket( bool andOr) Metoda přidá do filtru novou závorku.
    int AddBracket(int? parentIndex, bool andOr) Metoda přidá do filtru novou závorku.
    void Clear() Metoda vymaže filtr.
    void Run() Metoda spustí filtr.
    void Minimize() Metoda maximalizuje blok filtru na stránce Datas.aspx.
    void Maximize() Metoda minimalizuje blok filtru na stránce Datas.aspx.

    Podmínky se přidávají jednotlivě za sebou. Pro vnoření podmínky je třeba nejprve zadat závorku metodou AddBracket. Pro vnořenou podmínku pak nastavíte parametr parentIndex, který představuje index nadřízené podmínky/závorky.

    Zanořovat lze i jednotlivé závorky.

    Parametrem andOr definujete operátor AND a OR pro aktuálně vkládanou a jí předcházející podmínku. Pro úplně první podmínku nebo první podmínku v závorce není tento parametr podstatný. Hodnota true znamená operátor AND, hodnota false operátor OR.

    Metoda Clear vymaže filtr, ale nespouští jej. Pro jeho spuštění musíte ještě zavolat funkci Run.

     Operátory

    Následující tabulka zobrazuje seznam povolených operátorů. První i druhý typ je možné použít při definici podmínky ze skriptu. Druhý typ je určen také pro definici filtru v URL (v URL nejsou povoleny některé znaky).

    Typ 1 Typ 2 Operátor
    = EQ rovno
    != NEQ nerovno
    > GT větší
    >= GE větší nebo rovno
    < LT menší
    <= LE menší nebo rovno
    contains CONTAINS obsahuje
    not contains NOTCONTAINS neobsahuje
    in interval ININTERVAL v intervalu
    start with STARTWITH začíná na
    end with ENDWITH končí na
    not start with NOTSTARTWITH nezačíná na
    not end with NOTENDWITH nekončí na
    is null ISNULL není zadáno
    is not null ISNOTNULL není nezadáno
    < [kb] LTKB velikost souboru je menší
    > [kb] GTKB velikost souboru je větší
    = (column) COLUMNEQ rovno - porovnání dvou sloupců
    != (column) COLUMNNEQ nerovno - porovnání dvou sloupců
    < (column) COLUMNLT menší - porovnání dvou sloupců
    <= (column) COLUMNLE menší nebo rovno - porovnání dvou sloupců
    > (column) COLUMNGT větší - porovnání dvou sloupců
    >= (column) COLUMNGE větší nebo rovno - porovnání dvou sloupců
    = (length) LENEQ rovno - délka textu
    != (length) LENNEQ nerovno - délka textu
    < (length) LENLT menší - délka textu
    <= (length) LENLE menší nebo rovno - délka textu
    > (length) LENGT větší - délka textu
    >= (length) LENGE větší nebo rovno - délka textu

     Data paremetr

     Parametr data se zadává pro některé typy podmínek:

    • pro porovnání dvou sloupců zadejte kód druhého sloupce
    • pro sloupec typu datum zadejte datum
    • pro sloupec typu classlink zadejte některou z těchto hodnot: ID (int), Person, PersonInfo, EntityInfo, DataRow, string

    Pokud zadáte string, pak pro sloupec typu Uživatel se provede dohledání uživatelů podle jejich účtu. Pro sloupec typu odkaz na třídu se v cílové třídě ObjectGears pokusí dohledat sloupec s kódem "code" a podle něj dohledat požadované záznamy.

    Při dohledávání se hledá pouze přesná shoda.

    Příklad

     Příklad vymaže filtrovací blok, vloží podmínku která vyhledá záznamy, které mají ve sloupci shorttext1 text o max. délce 4 znaky. Následně minimalizuje blok pro zadání filtru a filtr spustí.

    OGFilter.Clear();
    OGFilter.Add( true, 'shorttext1', '< (length)', 4);
    OGFilter.Maximize();

    OGFilter.Run();

    Druhý příklad zobrazí záznamy přiřazené přihlášenému uživateli a se stavem new nebo testing.

    OGFilter.Clear();
    OGFilter.Add( true, 'assignto', '=', OG.Person.GetLoginPerson());

    var stavIndex = OGFilter.AddBracket( true);
    OGFilter.Add( stavIndex, false, 'stav', '=', 'new');
    OGFilter.Add( stavIndex, false, 'stav', '=', 'testing');

    OGFilter.Run();

×