6.5

Filtrování záznamů

Na každé stránce CRM, na které najdete seznam záznamů, najdete také nabídku Zobrazení, která dovoluje aplikovat filtry na záznamy v databázi.

Nabídka Zobrazení - filtry

Vytvořit filtr správně může být někdy obtížné, ale na druhou stranu jsou filtry v InTouch CRM natolik mocným nástrojem, že věnovat jim pozornost se opravdu vyplatí.

Editor filtru zobrazíte volbou Filtrovat... v nabídce Zobrazení. Takto vypadá, pokud nemáte žádné filtrovací pravidlo:

Prázdný filtr

Máte k dispozici tři tlačítka, pomocí kterých lze přidávat potřebná pravidla, přičemž ve většině případů vystačíte s prvním z nich.

+ podmínka
Slouží k přidání jednoduché podmínky do seznamu filtrovacích pravidel.
+ [podmínky]
Umožňuje přidat blok pod-podmínek, se kterými se bude zacházet, jako s uzávorkovaným logickým výrazem.
+ [odkazující záznamy]
Lze vytvořit podmínku, která vybírá záznamy v tomto seznamu podle toho jaké jiné seznamy se na tento typ záznamů odkazují (představte si např. firmy, které něco minulý měsíc objednaly).

První podmínka (filtrovací pravidlo)

Stiskem tlačítka + podmínka vložíte pravidlo do filtru:

Filtr s jednou podmínkou

Každé filtrovací pravidlo (podmínka) je tvořeno názvem sloupce, podle kterého se filtruje (2), operátorem (3) a hodnotou (4). Pokud je pravidel více, je důležité věnovat pozornost i spojení (1), které určuje, jak se z jednotlivých pravidel složí výsledný logický výraz.

Na obrázku výše jsme vytvořili jednoduchou podmínku, která vyfiltruje všechny kontakty z Prahy.

Spojení

Spojení určuje doslova způsob spojení tohoto filtrovacího pravidla s předchozím filtrovacím pravidlem. Pro první pravidlo je spojení ignorováno (nic mu nepředchází). Jsou pouze dva typy spojení:

SpojeníVýznam
avyfiltruje položky, které vyhoví oběma nadefinovaným pravidlům
nebovyfiltrují se položky, které vyhoví alespoň jednomu pravidlu

Operátor

Operátor určuje typ podmínky. Aplikace podporuje následující operátory:

OperátorVyhoví položky, které...
začínázačínají na zadanou hodnotu
končíkončí na zadanou hodnotu
obsahujeobsahují zadanou hodnotu
neobsahujeneobsahují zadanou hodnotu
=jsou stejné, jako zadaná hodnota
<>jsou různé od zadané hodnoty
<jsou menší než zadaná hodnota
<=jsou menší nebo stejné, jako zadaná hodnota
>jsou větší než zadaná hodnota
>=jsou větší nebo stejné, jako zadaná hodnota
je prázdnýnejsou vyplněné
není prázdnýjsou vyplněné
je jedním zjsou stejné, jako některá ze zadaných odnot (oddělené čárkou v poli hodnota)
není jedním znejsou stejné, jako jakákoliv ze zadaných odnot (oddělené čárkou v poli hodnota)

Příklady filtrovacích pravidel

Příjmení < ko
vyhoví záznamy, které obsahují příjmení začínající abecedně níže než písmeno K a z příjmeních začínajících na K jen ty, u kterých druhé písmenko je opět abecedně níže než písmeno O
Poslední změna >= 5.12.2016
vyfiltruje záznamy, které byly změněny ode dne 5.12.2016 včetně
Jméno je jedním z Aleš, Jana, Milan
vyhoví záznamy, které obsahují jména Aleš nebo Jana nebo Milan

Příklad filtru s více podmínkami

Předpokládejme, že chcete vyfiltrovat z adresáře kontaktů všechny firmy z Prahy, které mají vyplněné IČO. K tomu účelu budete potřebovat dvě filtrovací podmínky, které složí dohromady filtr:

Filtr s dvěma podmínkami

(1) - Všimněte si ikonky v každém řádku s podmínkou. Pomocí ní můžete odstranit z filtru podmínku, kterou nepotřebujete.

(2) - Pomocí úchytů na pravé straně každé podmínky je můžete myší přetahovat jinam a měnit tak jejich pořadí.

Filtrování podle datumu a času

Speciální zmínku si zaslouží filtrování podle časových údajů. To proto, že uživatelé často chtěji vytvářet podmínky, které nebudou obsahovat fixní časové údaje (např. záznamy vytvořené od 1.1.2019), ale spíše dynamické časové údaje, které se vypočítají podle aktuálního času až při použití filtru (např. záznamy vytvořené od začátku tohoto roku - hodnota se bude měnit podle toho, ve kterém roce filtr použijete).

Filtr s datumem

Když začnete zadávat podmínku s časovou hodnotou, systém bude očekávat fixní datum a čas. Nicméně, všimněte si na obrázku výše nenápadné volby pod kalendáříkem Dynamicky. Když zaškrtnete okénko Dynamicky, kalendář se promění v panel pro dynamické (relativní) vložení času.

Filtr s dynamickým datumem

Na panelu můžete symbolicky určit datum, které bude relativní k aktuálnímu okamžiku. Např.

Začátek měsíce / Posun = 0 značí začátek tohoto měsíce (první den, čas 00:00)
Začátek měsíce / Posun = -1 značí začátek předchozího měsíce (první den, čas 00:00)
Konec měsíce / Posun = 1 značí konec příštího měsíce (poslední den, čas 23:59:59)
Konec roku / Posun = 0 značí konec tohoto roku (31.12. 23:59:59)
...

Dynamické datumy jsou v textovém poli vyjádřeny symbolicky:

KódVýznam
NOW()Nahradí se aktuálním datumem a časem
DSTART(n)Nahradí se aktuálním datumem s časem 00:00:00. K tomuto datumu je přičteno n dní.
DEND(n)Nahradí se aktuálním datumem s časem 23:59:59. K tomuto datumu je přičteno n dní.
WMSTART(n)Nahradí se posledním pondělkem s časem 00:00:00. K tomuto datumu je přičteno n týdnů.
WMEND(n)Nahradí se nejbližší nedělí s časem 23:59:59. K tomuto datumu je přičteno n týdnů.
WSSTART(n)Nahradí se poslední nedělí s časem 00:00:00. K tomuto datumu je přičteno n týdnů.
WSEND(n)Nahradí se nejbližší sobotou s časem 23:59:59. K tomuto datumu je přičteno n týdnů.
MSTART(n)Nahradí se prvním dnem v měsíci s časem 00:00:00. K tomuto datumu je přičteno n měsíců.
MEND(n)Nahradí se posledním dnem v měsíci s časem 23:59:59. K tomuto datumu je přičteno n měsíců.
QSTART(n)Nahradí se prvním dnem v kvartálu s časem 00:00:00. K tomuto datumu je přičteno n kvartálů.
QEND(n)Nahradí se posledním dnem v kvartálu s časem 23:59:59. K tomuto datumu je přičteno n kvartálů.
YSTART(n)Nahradí se prvním dnem v roce s časem 00:00:00. K tomuto datumu je přičteno n let.
YEND(n)Nahradí se posledním dnem v roce s časem 23:59:59. K tomuto datumu je přičteno n let.

Kódy začínající na WM a WS reprezentují začátek resp. konec týdne. WM reprezentuje týden počítaný od pondělka, WS reprezentuje týden počítaný od neděle (např. v USA). Hodnota n může být kladné i záporné celé číslo.

Závorkování filtrovacích podmínek

Určitě si pamatujete ze školy, že výraz x + y × z se vyhodnocuje tak, že se nejprve vynásobí y × z a následně se přičte x. Pokud bychom chtěli napřed sčítat, je třeba napsat závorku (x + y) × z.

S logickými výrazy je to podobné, akorát se místo součinu × používá logický součin (nebo také and, česky a) a místo součtu + se používá logický součet (nebo také or, česky nebo).

Zapamatujte si: logické spojení a se vždy vyhodnocuje před nebo

Logický výraz x nebo y a z (matematik by napsal x ∨ y ∧ z, programátor by napsal x OR y AND z) se tedy bude vyhodnocovat tak, že se nejprve zjistí, zda současně platí y a z a následně se testuje, jestli platí a.

Zkusme příklad, ve kterém se pokusíme vyfiltrovat všechny kontakty z Prahy a Brna, které mají v databázi vyplněné IČO. Všimněte si, jak je čeština zrádná - napsali jsme Prahy a Brna, i když je zřejmé, že firma nemůže mít sídlo ve dvou městech současně Správně by bylo z Prahy nebo Brna.

Chybně vytvořený filtr

Pokud byste filtr udělali jako na příkladu výše, bylo by to špatně kvůli přednostnímu vyhodnocování logického součinu a před logickým součtem nebo. CRM by neprve zjistilo všechny kontakty s IČem, které jsou z Brna a k nim by přibralo všechny kontakty z Prahy. Pražské kontakty by se v seznamu záznamů objevily i když by neměly vyplněné IČo, což není náš záměr.

Musíme tedy vytvořit závorku (tlačítkem +[ podmínky ]), do které nejprve zahrneme první dvě podmínky, a pak přidáme pravidlo týkající se IČa. Takto by měl vypadat správně konstruovaný filtr:

Dobře vytvořený filtr

Jakmile přidáváte do filtru podmínky spojené pomocí nebo, zbystřete. Je velmi pravděpodobné, že budete potřebovat závorkovat.

Filtr přes odkazující záznamy

Toto je kapitola pro náročnější uživatele :-). Od verze 6.1 umí InTouch CRM filtrovat přes odkazující záznamy. K čemu je to dobré? Představte si, že byste v adresáři chtěli vyfiltrovat všechny VIP zákazníky, kteří si objednali zboží v minulém roce. Něco takového se obvykle řeší momocí speciálních tiskových sestav, protože informace o objednávkách jsou v jiné části systému než jsou informace o kontaktech. Filtr přes odkazující záznamy takový výběr dokáže. Představte si, jak to může pomoct vašim marketérům.

Každá objednávka v CRM odkazuje na kontakt v adresáři, který objednávku podal. Je jednoduché (s tím, co už znáte z této kapitoly) vyfiltrovat objednávky z loňského roku. Je jistě jednoduché vyfiltrovat VIP kontakty. Je třeba obojí dát nějak dohromady. Filtr přes odkazující záznamy je vlastně spojení dvou filtrů z různých částí systému do složitějšího výběru. Slovně by se takový filtr dal popsat:

  1. Vybereme všechny objednávky z loňského roku.
  2. Odkazy z těchto objednávek do adresáře použijeme jako základ pro výběr kontaktů.
  3. K tomu přidáme podmínku, že kontakt musí být VIP.

Filtr přes odkazující záznamy začínáme tvořit v seznamu záznamů, ve kterém chceme vidět konečný výsledek filtru. V tomto případě to bude v seznamu kontaktů. Do filtru kontaktů vložíme filtr objednávek pomocí tlačítka + [odkazující záznamy].

Filtr kontaktů přes odkazující objednávky

Na obrázku lze vidět kompletní filtr, který navíc demonstruje i dynamické filtrování podle času.

Filtr přes odkazující záznamy je možné vnořit vícekrát a získat tak výstupy, pro které se v jednodušších systémech musí programovat zakázková sestava. Příklady: