Filtrování v číselnících
Většina číselníků umožňuje provádět filtrování záznamů, které uživatel vidí. Filtrace se provádí tak, že se provede SQL dotaz do databáze a pak se podle získaných interních identifikátorů (ID) vyhovujících záznamů zobrazený číselník vizuálně zafiltruje. Podrobněji viz dále.
Jedná se o jednu možností omezení záznamů zobrazených v číselníku.
V některých místech programu je filtrování k dispozici i v jiných agendách než číselníkových a pracuje obdobně. Viz např. funkční tlačítko Vybraný filtr v záložce Doklady agendy Uzávěrky DPH.
Jak bylo objasněno v kap. Občerstvování v číselnících, číselníky, které dosud nebyly převedeny na novou technologii (stránkování), se z důvodu četnosti použití a optimalizace rychlosti načítají z databáze do paměti celé. Zásadním způsobem se tak liší od:
- číselníků převedených na novou technologii, u kterých se do paměti načítají vždy jen aktuálně potřebné záznamy
- dokladových agend, u kterých se do paměti načítají vždy jen vybrané záznamy dle zadaného omezení v záložce Omezení.
Záložka Omezení v číselníkových agendách k dispozici není (z výše uvedeného plyne, že by u většiny číselníků neměla význam, práce s číselníky, které by nebyly načteny v paměti celé a bylo by tedy nutno je při každém použití znovu načítat, by neúměrně zvýšila dobu odezvy systému).
Nicméně v některých situacích (zejména u velkých číselníků s mnoha záznamy) je užitečné, moci si i v číselníku nechat zobrazit jen ty záznamy, které splňují zadané podmínky. Proto je v číselnících k dispozici možnost filtrace.
Filtrace v číselnících pracuje na tom principu, že podle vybraného typu filtru (viz dále popis funkce Filtrovat) se provede příslušný dotaz do databáze a podle výsledků, které vrátí, zobrazí uživateli jen ty záznamy z číselníku, které provedenému dotazu vyhovují.
Filtrování číselníků není principiálně totéž, jako omezování v dokladových agendách a bylo by mylné se domnívat, že filtrováním číselníku se práce s ním urychlí, jako je tomu při omezování dokladových agend. Při použití omezení u dokladových agend se do paměti načtou pouze vyhovující záznamy.
Číselník se ale standardně načítá celý (s výjimkou číselníků převedených na novou technologii) a zadáním filtru se pouze vizuálně zafiltrují záznamy, které se aktuálně uživateli zobrazují (tedy v tomto případě probíhají dotazy do databáze minimálně dva).
Filtrace versus jiné omezení číselníků:
Zadaný filtr se uplatňuje aditivně k jinému případnému omezení číselníku. Může se jednat o případ omezení podle přístupových práv, případně o omezení zadané v omezovacím panelu v číselnících, je-li nějaký v daném číselníku k dispozici (opět zdůrazňujeme, že zde se jedná jen o vizuální omezení záznamů, zobrazovaných v daný moment uživateli).
Další vlastnosti filtrování:
- "Pamatování" použitého filtru je jen dočasné, nijak se neukládá, coby nastavení uživatele. Při každém zavření číselníku se filtr zapomene. Filtrování pouze pomáhá omezit viditelné záznamy a usnadnit tím uživateli vizuální výběr. Výjimkou jsou agendy modulu Mzdy a personalistika, kde se naposledy použitý filtr daným uživatelem pamatuje.
Pamatování si naposledy použitého filtru by práci s číselníkem jenom zbytečně zpomalovalo. Nicméně uživatel si může nastavené filtrování uložit jako definici filtru a jednu z definic si nastavit jako Výchozí filtr.
- Zadáním prázdného textu v rámci funkce Nastavit filtr podle aktuálního třídění nebo prázdných podmínek v rámci funkce Nastavit filtr se filtr zruší (není tak nutná přímo funkce Zrušit filtr)
- Filtrování podle aktuálního třídění si pamatuje posledně zadaný řetězec.
- Filtrace v číselnících způsobuje pouze dotaz podle zadaného filtru, nikoliv znovunačtení číselníku ze serveru. (Pokud by se tak dělo, práce s číselníky nad velkými daty by se v případě číselníků využívajících původní technologii výrazně zpomalila. V číselnících převedených na novou technologii stránkování je načítání dat z databáze řešeno nezávisle.)
Filtrování za položky s historií je k dispozici pouze v omezené míře, viz též Omezování za položky s historií.
V jednotlivých číselníkových agendách kromě funkcí popsaných v popisu těchto agend je navíc ještě následující funkce:
Název | Kl. | Doplňující popis: | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filtrovat |
alt+F11 nebo shift+alt+F11 ctrl+alt+F11 (pro filtr podle aktuálního třídění) ctrl+F11 (pro Zrušit filtr) |
Slouží pro práci s filtrováním. Funkce a její podvolby je dostupná standardně v menu nebo přes funkční tlačítko Filtrovat jako funkční tlačítko s volbou, ale jelikož jde o často využívanou věc, jsou jednotlivé podvolby funkce dostupné ještě jiným způsobem a to v informačním panelu prostřednictvím tlačítka Vybrat Filtr. Podvolby funkce Filtrovat jsou k dispozici i v případě, že se jedná o malý číselník, pouze zde nejsou dostupné přes funkci v menu a přes tlačítko Filtrovat. Souhrnný přehled možností nastavení filtru viz dále Ovládání. Funkce má k dispozici následující podvolby pro nastavování aktuálního filtru: Nastavit filtr alt+F11
Tato volba umožní filtrovat podle zadaných kritérií. Po vyvolání funkce zobrazí dialogové modální okno Ve Windows se takto nazývá okno, které když je vyvoláno na obrazovku "zastíní" všechna ostatní okna a není možné je odsunout do pozadí, aniž se s ním uživatel přímo "vypořádá" (tj. stiskne OK, zrušit, atd.). Typicky se vyskytuje v případech hlášení o chybách systému, interaktivních dialozích apod. Opakem je nemodální okno. Omezení záznamů: Příklad okna pro výběr z několika existujících definicí omezení, resp. filtrů v jednoduchém režimu. Zde je možno použít všechny omezovací funkce a podmínky dostupné v dané agendě pro výběry dat z databáze (dáno podmínkami DynSQL dodávaných výrobcem) včetně uživatelsky definovatelných položek (mají-li v definici nastaveno Používat pro omezení výběrů dat). Uživatel si tak může vytvářet i poměrně složité varianty filtrování. Hodnoty do uživatelsky definovatelných položek doplněných do agend později lze dozadat i hromadně, viz Možnosti hromadných oprav. Vzhled tohoto okna, ovládání a způsob zadání hodnot jednotlivých omezovacích (filtračních) prvků je shodný, jako je zadávání omezení v záložkách Omezení jednotlivých dokladových agend. Obecně platná pravidla pro záložky Omezení jsou uvedena v samostatné kapitole (tj. způsob nastavení omezení, používání definic omezení (filtrů), ovládání seznamu omezovacích prvků a popis jejich typů, popis funkcí v záložce omezení, využití tzv. divokých znaků (wildcards) v omezení za znakové údaje atd.). Pokud jsou k dispozici nějaké zvláštní omezující prvky, které nejsou obecně k dispozici v záložce Omezení dokladových agend, je to popsáno přímo v popisu funkce Filtrovat v dané agendě. Viz např. omezující prvek Klíče ve funkci Filtrovat v agendě Adresář, omezení s Rozšířeným tříděním ve funkci Filtrovat ve sklad. kartách apod. Zde tedy budete postupovat obdobně: vyberete existující omezení (resp. filtr), či případně vyberete Nové omezení (Bez jména) a postupně zatrhnete všechny položky, podle kterých se má aktuálně filtrovat a pro každou z nich (podle jejího typu) nastavíte příslušnou hodnotu či rozsah hodnot, kterých má nabývat, obdobně jako v záložkách Omezení. Po stisku OK se aktuální nastavení použije jako filtr. Lze taktéž zvolit mezi režimem s Více nebo Méně funkcemi pomocí funkce Více/Méně funkcí (v závislosti na právu Na záložce Omezení dovolit pouze jednoduchý režim (Méně funkcí)). Používané kombinace filtračních podmínek si lze uložit jako pro následné použití jako definice filtru. Uložené a oblíbené definice filtračních podmínek si lze kdykoliv později vybrat a použít (vícero možnostmi, viz dále Ovládání) nebo opravit, příp. smazat. Jednu z definic lze zvolit jako výchozí. Podrobněji viz dále popis dostupných funkcí. Dále jsou v okně nastavení filtru k dispozici ovládací prvky, jako jsou v záložce Omezení dokladových agend se stejným významem. K dispozici jsou zde funkce:
Zde jde o číselníkovou agendu, nicméně platí stejná pravidla, jako pro omezování v agendách dokladových. Tj. kromě omezení nastaveného v této funkci, se vezmou v potaz i omezení podle přístupových práv, pokud se filtruje i za nějaký prvek patřící do chráněných objektů, dále viz Omezení versus Přístupová práva. Jak snadno zafiltrovat číselník, aby obsahoval data shodná s daty v XLS souboru, viz Tip pro vás v kapitole Záložka Omezení - obecně. Viz též Často kladené otázky - Pokud si omezím/zafiltruji, mám problém s tiskem některých sestav, proč? V číselnících se stromovou strukturou platí, že tiskové sestavy stromových zobrazení vždy tisknou celý seznam s občerstvením, a to bez ohledu na stav zapnutí stromového zobrazení. Viz Často kladené otázky - Tisk stromové struktury vždy tiskne vše, jak to? Nastavit filtr podle aktuálního třídění ctrl+alt+F11
Filtrování se používá v souvislosti s aktuálně vybraným tříděním v panelu Vyhledávání a třídění. Po vyvolání funkce se zobrazí dialogové okno, kde zadáte řetězec pro filtrování:
Příklad filtrování za řetězec A* Uživatel pak má možnost zapsat řetězec odpovídající danému třídění, za který se mají záznamy zafiltrovat, přičemž může používat i divoké znaky. Pokud zadáte jen část slova, za které chcete filtrovat, musíte nutně doplnit divoký znak *, jinak se vám zafiltrují jen ty záznamy, které obsahují výhradě jen zadaný řetězec a žádný další znak navíc. Není citlivé na velká/malá písmena. Objasníme na příkladech: Příklad 1: Mějme Adresář firem tříděný aktuálně podle Názvu firmy a chceme zobrazit jen firmy od A. Vyvoláme funkci Filtrovat podle třídění. Zobrazí se dialogové okno, do něhož zadáme požadovaný řetězec: A*. Výsledkem bude, že v informačním okně budou zobrazeny jen firmy, jejichž název začíná A. Pokud bychom do filtru zadali jen A, a nemámě zadánu žádnou firmu, která se jmenuje pouze A, pak se žádná firma nedohledá, tedy při takto zapnutém filtru žádné záznamy adresáře neuvidíme. Příklad 2: Potřebujeme pracovat s firmou System Auditing, ale z nějakého důvodu ji nemůžeme dohledat (např. omylem byla zadána jako ASystem Auditing. Zafiltrujeme si tedy Adresář podle následujícího řetězce: . Pak se zafiltrují následující firmy:
Tedy zobrazí se jen firmy, jejichž název začíná slovem Systém, System, ale i Systémová. Pokud bychom si zafiltrovali podle řetězce: , pak bychom měli zobrazeny všechny, které v názvu obsahují řetězec System, bez ohledu na to, zda je psán s krátkým nebo dlouhým "e", přičemž název nemusí tímto řetězcem začínat. Zafiltrují se tedy např. následující firmy:
V některých místech systému nemusí být tento způsob filtrování k dispozici. Zrušit filtr ctrl+F11
Zruší uživatelem zvolené filtrování číselníku, přičemž je lhostejné, jakým způsobem byl číselník filtrován. Jiná možnost
Příp. se může vyskytnout jiná možnost dle dané agendy. Např. Nastavit filtr podle náhrad ve skladových kartách. |
K dispozici jsou různé možnosti, jak vyvolat nastavení filtru nebo jak přepínat mezi již existujícími definicemi filtrů:
Možnosti nastavení filtru - tj. filtr zapnete:
Filtr můžete zapnout neboli nastavit různým způsobem:
- vyvoláním standardní funkce Filtrovat
- vyvoláním podvolby Nastavení filtru podle aktuálního třídění.
Novou definici filtru uložíte:
- v rámci vyvolání podvolby Nastavení filtru (možnosti jejího vyvolání viz výše) funkcí Ulož jako dostupným v režimu Více funkcí v okně nastavení filtru
Možnosti přepínání mezi uloženými definicemi filtru:
- vyvoláním dialogového okna pomocí funkce Filtrovat (viz popis funkce Filtrovat výše) a výběrem jedné z uložených definic filtru
- vyvoláním dialogového okna pomocí funkce Vybraný filtr na omezovacím panelu a výběrem jedné z uložených definic filtru
- výběrem některých definic, které jsou nastavené jako oblíbené, na omezovacím panelu
Možnosti zrušení filtru - tj. filtr vypnete:
- výběrem volby Zrušit filtr jakožto jedné z podvoleb standardní funkcí Filtrovat nebo Vybraný filtr
- vyvoláním volby Zrušit filtr rovnou klávesovou zkratkou pro tuto podvolbu (viz popis funkce Filtrovat výše)
- výběrem prázdné definice Bez jména (neuložené)
Informace o filtru, tj. zda je filtr použit a jaký, je zobrazena v omezovacím panelu u tlačítka Vybraný filtr. Informace o filtru se zobrazuje následovně:
-
"Filtr: za {aktuálně zvolené třídění} {zadaný řetězec} ". Pokud je nastaven filtr podle aktuálního třídění.
Např.:
-
"Filtr: {Název uložené definice filtru}". Pokud je aktuálně vybrána přímo některá z uložených definic filtru.
Např.:
-
"Filtr: Bez jména (neuložené)". Pokud nejde o žádnou z předchozích možností a filtrovací podmínky byly zadány ručně. Tj. vyvoláním volby nastavení filtru a ručním zadáním filtračních podmínek nebo modifikací filtračních podmínek nastavených některou z předchozích voleb.
Např.:
-
"Filtr: žádný". Pokud aktuálně není nastaven žádný filtr. Při zavření agendy či číselníku se vybraný filtr a zatržené podmínky vždy ruší a při opětovném otevření není vybrán žádný filtr, pokud není nastaven nějaký filtr jako výchozí.
Např.:
-
"Filtr: náhrady". Pokud je nastaven filtr podle náhrad.
Např.:
Popis funkčního tlačítka Vybraný filtr viz kapitola Omezovací panel (lišta) v číselnících.
Chování filtru objasníme na závěrečném příkladu:
V Adresáři firem mějme uložené mj. definice filtru: "Firmy se sídlem v Praze" s filtrační podmínkou za položku Adresa sídla *Praha*. Definici mějme nastavenou jako oblíbenou. Oblíbené definice se budou nabízet na omezovacím panelu. Aktuálně vybraná oblíbená definice je graficky zvýrazněna:
Nechť žádný filtr není nastaven. V informačním panelu je uvedeno .
Vyvoláme si podvolbu Nastavit filtr podle aktuálního třídění. Nechť aktuální třídění je dle Názvu. Zadáme hledaný řetězec, např. A*. Po stisku OK budou v seznamu firem jen firmy od A, v informačním panelu bude nyní uvedeno . Pokud poté vyvoláme okno nastavení filtru, bude v něm zatržena filtrační podmínka za Název s řetězcem "A*", položka "Vybraná definice" v něm bude prázdná (protože nebylo filtrováno podle některé z uložených definic):
K předvyplněné filtrační podmínce za Název přidáme např. za adresu z Brna. Po stisku OK budou v seznamu jen firmy od A z Brna. V informačním panelu už bude nyní uvedeno (protože už nejde o filtrování podle aktuálního třídění a ani podle nějaké uložené definice).
Poté budeme chtít vidět jenom firmy z Prahy. Zvolíme filtr podle uložené definice "Firmy se sídlem v Praze" (např. klikem na e-link umístěném na omezovacího panelu). V omezovacím panelu bude nyní uvedeno . V seznamu budou jen firmy, které tomuto filtru vyhovují. Pokud poté vyvoláme okno nastavení filtru, bude v něm zatržena filtrační podmínka za Adresa sídla *Praha*.