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();