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: ![]() Tato volba umožní filtrovat podle zadaných kritérií. Po vyvolání funkce zobrazí dialogové modální okno 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? ![]() 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:
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:
V některých místech systému nemusí být tento způsob filtrování k dispozici. ![]() Zruší uživatelem zvolené filtrování číselníku, přičemž je lhostejné, jakým způsobem byl číselník filtrován. ![]() 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*.