Při zobrazování dat ze třídy nebo dotazu na stránce seznamu záznamů je možné povolit rychlý filtr a záznamy jednoduše filtrovat.
Existuje však i možnost zadat filtr přímo do URL a záznamy tak filtrovat okamžitě. Toho lze úspěšně využít např při:
- Kliknutím na záznam v dotazu, kdy dotaz zobrazuje sumární informace, lze zobrazit všechny záznamy použitých pro výpočet celkové sumy. Např. pokud v dotazu zobrazujete počet všech Nových úkolů pro jednotlivé uživatele, pak proklikem do třídy Úkol můžete tyto konkrétní úkoly přímo zobrazit.
- Z externí aplikace se můžete odkázat na kontrétní záznamy
- Uložit si URL s filtrem na často kontrolované záznamy. Předpokládejme, že denně konrolujete, zda nejsou ve třídě záznamy odpovídajícího stavu. Pomocí jednoduchého filtru si je na jedno kliknutí můžete rychle vyfiltrovat.
Definice filtru
Filtr je složen z jednotlivých podmínek spojených logickými operátory AND a OR při využití závorek. Syntaxe filtru je následující:
columncode1CONDITIONOPERATOR1data1~LOGICALOPERATORcolumncode2CONDITIONOPERATOR2data2....
columncode1 - kód sloupce, v němž chceme filtrovat. Pokud chceme filtrovat ve sloupci zděděném od předka, uvedeme před kódem sloupce kód třídy předka, v níž se sloupec nachází, a oddělíme ho tečkou - parentclasscode.columncode
CONDITIONOPERATOR1 - operátor podmínky pro porovnání filtrované hodnoty (např. EQ, CONTAINS atd.)
data1 - zadávaná hodnota, kterou chceme porovnat s hodnotami ve sloupci. Za hodnotou je třeba uvést znak ~. Pokud je v zadávané hodnotě i tento znak, pak ho musíme zdvojit (např. &filter=shorttext1CONTAINS~~at~).
Příklad 1: Filtrování záznamů, kde hodnota ve sloupci name se rovná hodnotě "text" předané z URL
Datas.aspx?CId=375&filter=nameEQtest~
Příklad 2: Filtrování záznamů s časem ve sloupci date1 odpovídajícímu včerejšímu dni
Datas.aspx?CId=579&filter=date1ININTERVALYesterday~
Příklad 3: Filtrování hodnot splňujících jednu z prvních tří podmínek a zároveň čtvrtou podminku
Datas.aspx?CId=579&filter=(integer1GT20~ORinteger2EQ20~ORinteger1EQ18~)ANDshorttext1CONTAINStest~
Příklad 4: Filtrování hodnot ve sloupci date1, které jsou větší než aktuální okamžik
Datas.aspx?CId=579&filter=date1GTnow~
Příklad 5: Porovnání hodnot ve sloupci date1 s hodnotou typu datum a čas předanou v URL
Datas.aspx?CId=579&filter=date1LT28_02_2015 23_59~
Příklad 6: Porovnání hodnot ve dvou sloupcích třídy
Datas.aspx?CId=579&filter=person1COLUMNLTCOLUMNEQperson2
Příklad 7: Porovnání hodnot ve zděděném sloupci typu odkaz na jinou třídu a vlastním sloupci třídy typu odkaz na jinou třídu.
Datas.aspx?CId=536&filter=parent_class.referenceCOLUMNEQself_reference
Příklad 8: Filtrování záznamů určitého potomka.
Datas.aspx?CId=536&filter=EQmachine
Pro operátor podmínky použijte některou z následujících možností
Název |
Operátor |
Popis |
EQ |
= |
Hodnota z URL je rovna hodnotě ve sloupci |
NEQ |
!= |
Hodnota z URL není rovna hodnotě ve sloupci |
LE |
<= |
Hodnota z URL je menší nebo rovna hodnotě ve sloupci |
LT |
< |
Hodnota z URL je menší než hodnota ve sloupci |
GE |
>= |
Hodnota z URL je větší nebo rovna hodnotě ve sloupci |
GT |
> |
Hodnota z URL je větší než hodnota ve sloupci |
ISNULL |
|
Hodnota z URL je NULL |
ISNOTNULL |
|
Hodnota z URL není NULL |
CONTAINS |
|
Řetězec ve sloupci obsahuje řetězec z URL |
NOTCONTAINS |
|
Řetězec ve sloupci neobsahuje řetězec z URL |
STARTWITH |
|
Řetězec ve sloupci začíná na řetězec z URL |
NOTSTARTWITH |
|
Řetězec ve sloupci nezačíná na řetězec z URL |
ENDWITH |
|
Řetězec ve sloupci začíná na řetězec z URL |
NOTENDWITH |
|
Řetězec ve sloupci nekončí na řetězec z URL |
ININTERVAL |
|
Řetězec ve sloupci je v intervalu z URL |
Eg(Column) |
=(Column) |
Hodnota ze sloupce 1 z URL je rovna hodnotě ve sloupci 2 z URL |
Neg(Column) |
!=(Column) |
Hodnota ze sloupce 1 z URL není rovna hodnotě ve sloupci 2 z URL |
Gt(Column) |
>(Column) |
Hodnota ze sloupce 1 z URL je větší než hodnota ve sloupci 2 z URL |
Ge(Column) |
>=(Column) |
Hodnota ze sloupce 1 z URL je větší nebo rovna hodnotě ve sloupci 2 z URL |
Lt(Column) |
<(Column) |
Hodnota ze sloupce 1 z URL je menší než hodnota ve sloupci 2 z URL |
Le(Column) |
<=(Column) |
Hodnota ze sloupce 1 z URL je menší nebo rovna hodnotě ve sloupci 2 z URL |
LENEQ |
= (length) |
Délka řetězce ve sloupci je rovna hodnotě v URL |
LENNEQ |
!= (length) |
Délka řetězce ve sloupci není rovna hodnotě v URL |
LENLT |
< (length) |
Délka řetězce ve sloupci je menší než hodnota v URL |
LENLE |
<= (length) |
Délka řetězce ve sloupci je menší nebo rovna hodnotě v URL |
LENGT |
> (length) |
Délka řetězce ve sloupci je větší než hodnota v URL |
LENGE |
>= (length) |
Délka řetězce ve sloupci je větší nebo rovna hodnotě v URL |
Hodnoty pro operátor podmínky ININTERVAL
Hodnota operátoru |
Popis |
Yesterday |
Včera (00:00:00 - 23:59:59) |
Today |
Dnes (00:00:00 - 23:59:59) |
Tomorrow |
Zítra (00:00:00 - 23:59:59) |
PreviousWeek |
Předchozí týden |
ThisWeek |
Tento týden |
NextWeek |
Příští týden |
PreviousMonth |
Předchozí měsíc |
ThisMonth |
Tento měsíc |
NextMonth |
Příští měsíc |
PreviousQuarter |
Předchozí kvartál |
ThisQuarter |
Tento kvartál |
NextQuarter |
Příští kvartál |
PreviousYear |
Předchozí rok |
ThisYear |
Tento rok |
NextYear |
Příští rok |
PreviousHour |
Předchozí hodinu (xx:00 - xx:59) |
ThisHour |
Tuto hodinu (xx:00 - xx:59) |
NexHour |
Příští hodinu (xx:00 - xx:59) |
Hodnoty pro operátory podmínky =,!=,>,>=,<,<=
Hodnota operátoru |
Popis |
Datetime |
Následuje určení data a času (formát dle sloupce) |
Now |
Nyní |
Before15Minutes |
Před 15 minutami |
Before30Minutes |
Před 30 minutami |
Before45Minutes |
Před 45 minutami |