Filtrovanie v číselníkoch
Väčšina číselníkov umožňuje filtrovať záznamy, ktoré užívateľ vidí. Filtrácia prebieha tak, že sa vykoná SQL dopyt do databázy a následne sa na základe získaných interných identifikátorov (ID) vyhovujúcich záznamov zobrazený číselník vizuálne zafiltruje. Podrobnejšie viď ďalej.
Ide o jednu z možností obmedzenie záznamov zobrazených v číselníku.
V niektorých miestach programu je filtrovanie k dispozícii i v iných agendách ako číselníkových a pracuje podobne. Viď napr. funkčné tlačidlo Vybraný filter v záložke Doklady agendy Uzávierky 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 Obmedzenie v číselníkových agendách k dispozícii nie je (z vyššie uvedeného vyplýva, že by vo väčšine číselníkov nemala význam, práca s číselníkmi, ktoré by neboli v pamäti načítané celé a bolo by nutné ich pri každom použití načítať znovu, by neúmerne predĺžila dobu odozvy systému).
No v niektorých situáciách (najmä vo veľkých číselníkoch s mnohými záznamami) je užitočné, môcť si aj v číselníku nechať zobraziť len tie záznamy, ktoré spĺňajú zadané podmienky. Preto je v číselníkoch k dispozícii možnosť filtrácie.
Filtrácia v číselníkoch pracuje na tom princípe, že podľa vybraného typu filtra (viď tiež popis funkcie Filtrovať) prebehne príslušný dopyt do databázy a podľa výsledkov, ktoré vráti, sa užívateľovi zobrazia len tie záznamy z číselníka, ktoré vykonanému dopytu 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).
Filtrácia verzus iné obmedzenie číselníkov:
Zadaný filter sa uplatňuje aditívne k inému prípadnému obmedzeniu číselníka. Môže ísť o prípad obmedzenia podľa prístupových práv, prípadne o obmedzenie zadané v obmedzovacom paneli v číselníkoch, ak je nejaký v danom číselníku k dispozícii (opäť zdôrazňujeme, že tu ide len o vizuálne obmedzenie záznamov, zobrazovaných v danom momente užívateľovi).
Ďalšie vlastnosti filtrovania:
- "Pamätanie" použitého filtra je len dočasné, nijako sa neukladá ako nastavenie daného užívateľa. Pri každom zatvorení číselníka sa filter zabudne. Filtrovania len pomáha obmedziť viditeľné záznamy a uľahčiť tak užívateľovi vizuálny výber. Výnimku predstavujú agendy modulu Mzdy a personalistika, kde sa naposledy použitý filter daného užívateľa pamätá.
Pamätanie si naposledy použitého filtra by prácu s číselníkom len zbytočne spomaľovalo. Užívateľ si však môže nastavené filtrovanie uložiť ako definíciu filtra a jednu z definícií si nastaviť ako Východiskový filter.
- Zadaním prázdneho textu v rámci funkcie Nastaviť filter podľa aktuálneho triedenia alebo prázdnych podmienok v rámci funkcie Nastaviť filter sa filter zruší (nie je tak nutná priamo funkcia Zrušiť filter)
- Filtrovanie podľa aktuálneho triedenia si pamätá naposledy zadaný reťazec.
- Filtrácia v číselníkoch spôsobuje len príkaz podľa zadaného filtra, nie znovunačítanie číselníka zo servera. (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.)
Filtrovanie za položky s históriou je k dispozícii len v obmedzenej miere, viď aj Obmedzovanie za položky s históriou.

V jednotlivých číselníkových agendách okrem funkcií popísaných v popise týchto agend je navyše ešte nasledujúca funkcia:
Názov | Kl. | Doplňujúci popis: | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Filtrovať |
alt+F11 alebo shift+alt+F11 ctrl+alt+F11 (pre filter podľa aktuálneho triedenia) ctrl+F11 (pre Zrušiť filter) |
Slúži na prácu s filtrovaním. Funkcia a jej podvoľby sú dostupné štandardne v menu alebo prostredníctvom funkčného tlačidla Filtrovať ako funkčné tlačidlo s voľbou, pretože však ide o často využívanú vec, sú jednotlivé podvoľby funkcie dostupné ešte iným spôsobom a to v informačnom paneli prostredníctvom tlačidla Vybrať Filter. Podvoľby funkcie Filtrovať sú k dispozícii i v prípade, že ide o malý číselník, akurát tu nie sú dostupné cez funkciu v menu a cez tlačidlo Filtrovať. Súhrnný prehľad možností nastavenia filtra viď ďalej Ovládanie. Funkcia má k dispozícii nasledujúce podvoľby na nastavovanie aktuálneho filtra: ![]() Táto voľba umožní filtrovať podľa zadaných kritérií. Po vyvolaní funkcie zobrazí dialógové modálne okno Príklad okna na výber z niekoľkých existujúcich definícií obmedzení, resp. filtrov v jednoduchom režime. Je tu možné použiť všetky obmedzovacie funkcie a podmienky dostupné v danej agende pre výbery dát z databázy (dané podmienkami DynSQL dodávaných výrobcom) vrátane užívateľsky definovateľných položiek (ak majú v definícii nastavené Používať na obmedzenie výberov dát). Užívateľ si tak môže vytvárať aj pomerne zložité varianty filtrovania. Hodnoty je do užívateľsky definovateľných položiek, ktoré boli do agend doplnené až neskôr, možné dozadať tiež hromadne, viď Možnosti hromadných opráv. Vzhľad tohto okna, ovládanie a spôsob zadania hodnôt jednotlivých obmedzovacích (filtračných) prvkov je zhodný, ako je zadávanie obmedzenia v záložkách Obmedzenie jednotlivých dokladových agend. Všeobecne platné pravidlá pre záložky Obmedzenie sú uvedené v samostatnej kapitole (tzn. spôsob nastavenia obmedzenia, používanie definícií obmedzenia (filtrov), ovládanie zoznamu obmedzovacích prvkov a popis ich typov, popis funkcií v záložke obmedzení, využitie tzv. divokých znakov (wildcards) v obmedzení podľa znakových údajov atď.). Ak sú k dispozícii nejaké zvláštne obmedzujúce prvky, ktoré nie sú všeobecne k dispozícii v záložke Obmedzenie dokladových agend, je to popísané priamo v popise funkcie Filtrovať v danej agende. Viď napr. obmedzujúci prvok Kľúče vo funkcii Filtrovať v agende Adresár, obmedzenie s Rozšíreným triedením vo funkcii Filtrovať v sklad. kartách a pod. Tu budete postupovať podobne: vyberiete existujúce obmedzenie (resp. filter), či prípadne vyberiete Nové obmedzenie (Bez mena) a postupne začiarknete všetky položky, podľa ktorých sa má aktuálne filtrovať a pre každú z nich (podľa jej typu) nastavíte príslušnú hodnotu či rozsah hodnôt, ktoré má nadobúdať, podobne ako v záložkách Obmedzenie. Po stlačení OK sa aktuálne nastavenie použije ako filter. Je taktiež možné zvoliť medzi režimom s Viacerými alebo Menej funkciami pomocou funkcie Viac/Menej funkcií (v závislosti na práve Na záložke Omedzenie povoliť len jednoduchý režim (Menej funkcií)). Používané kombinácie filtračných podmienok si je možné uložiť ako pre následné použitie ako definície filtra. Uložené a obľúbené definície filtračných podmienok si je možné kedykoľvek neskôr vybrať a použiť (viacero možnosťami, viď ďalej Ovládanie) alebo opraviť, príp. zmazať. Jednu z definícií je možné zvoliť ako východiskovú. Podrobnejšie viď ďalej popis dostupných funkcií. Ďalej sú v okne nastavenia filtra k dispozícii ovládacie prvky, ako sú v záložke Obmedzenie dokladových agend s rovnakým významom. K dispozícii sú tu funkcie:
Tu ide o číselníkovú agendu, predsa však platia rovnaké pravidlá, ako pre obmedzovanie v agendách dokladových. Tzn. okrem obmedzenia nastaveného v tejto funkcii, sa berú v úvahu aj obmedzenia podľa prístupových práv, pokiaľ sa filtruje aj podľa nejakého prvku patriaceho do chránených objektov, ďalej viď Obmedzenie verzus Prístupové práva. Ako jednoducho zafiltrovať číselník tak, aby obsahoval dáta zhodné s dátami v XLS súbore, viď Tip pre vás v kapitole Záložka Obmedzenie - všeobecne. Viď tiež Často kladené otázky - Pokiaľ si obmedzím/zafiltrujem, mám problém s tlačou niektorých zostáv, prečo? V číselníkoch so stromovou štruktúrou platí, že tlačové zostavy stromových zobrazení vždy tlačia celý zoznam s občerstvením, a to bez ohľadu na stav zapnutia stromového zobrazenia. Viď Často kladené otázky - Tlač stromovej štruktúry vždy tlačí všetko, ako to? ![]() Filtrovanie sa používa v súvislosti s aktuálne vybraným triedením v paneli Vyhľadávania a triedenia. Po vyvolaní funkcie sa zobrazí dialógové okno, kde zadáte reťazec pre filtrovanie:
Príklad filtrovania za reťazec A* Užívateľ má potom možnosť zapísať reťazec zodpovedajúci danému triedeniu, za ktorý sa majú záznamy zafiltrovať, pričom môže používať aj divoké znaky. Pokiaľ zadáte len časť slova, za ktoré chcete filtrovať, musíte nutne doplniť divoký znak *, inak sa vám zafiltrujú len tie záznamy, ktoré obsahujú výhradne len zadaný reťazec a žiadny ďalší znak navyše. Nie je citlivé na veľké/malé písmená. Objasníme na príkladoch: Príklad 1: Majme Adresár firiem aktuálne triedený podľa Názvu firmy a chceme zobraziť len firmy od A. Vyvoláme funkciou Filtrovať podľa triedenia. Zobrazí sa dialógové okno, do ktorého zadáme požadovaný reťazec: A*. Výsledkom bude, že v informačnom okne budú zobrazené len firmy, ktorých názov začína na A. Ak by sme do filtra zadali len A, pričom nemáme zadanú žiadnu firmu, ktorá sa volá len A, tak sa žiadna firma nenájde, tzn. pri takto zapnutom filtri žiadne záznamy adresára neuvidíme. Príklad 2: Potrebujeme pracovať s firmou System Auditing, ale z nejakého dôvodu ju nemôžeme dohľadať (napr. omylom bola zadaná ako ASystem Auditing. Zafiltrujeme si teda Adresár podľa nasledujúceho reťazca:
Zobrazia sa teda len firmy, ktorých názov začína slovom Systém, System, ale aj Systémová. Ak by sme si zafiltrovali podľa reťazca:
V niektorých miestach systému nemusí byť tento spôsob filtrovania k dispozícii. ![]() Zruší užívateľom zvolené filtrovanie číselníka, pričom je jedno, akým spôsobom bol číselník filtrovaný. ![]() Příp. se může vyskytnout jiná možnost dle dané agendy. Např. Nastavit filtr podle náhrad ve skladových kartách. |

K dispozícii sú rôzne možnosti, ako vyvolať nastavenie filtra alebo ako prepínať medzi už existujúcimi definíciami filtrov:
Možnosti nastavenia filtra - tzn. filter zapnete:
Filter môžete zapnúť, tzn. nastaviť rôznymi spôsobmi:
- vyvolaním štandardnej funkcie Filtrovať
- Vyvolaním podvoľby Nastavenie filtra podľa aktuálneho triedenia.
Novú definíciu filtra uložíte:
- v rámci vyvolania podvoľby Nastavenie filtra (možnosti , ako ju vyvolať, viď vyššie) funkciou Ulož ako dostupnými v režime Viac funkcií v okne nastavenia filtra
Možnosti prepínania medzi uloženými definíciami filtra:
- vyvolaním dialógového okna pomocou funkcie Filtrovať (viď popis funkcie Filtrovať vyššie) a výberom jednej z uložených definícií filtra
- vyvolaním dialógového okna pomocou funkcie Vybraný filter na obmedzovacom paneli a výberom jednej z uložených definícií filtra
- výberom niektorých definícií, ktoré sú nastavené ako obľúbené, na obmedzovacom paneli
Možnosti zrušenia filtra - tzn. filter vypnete:
- výberom voľby Zrušiť filter ako jednej z podvolieb štandardnej funkcie Filtrovať alebo Vybraný filter
- vyvolaním voľby Zrušiť filter priamo klávesovou skratkou pre túto podvoľbu (viď popis funkcie Filtrovať vyššie)
- výberom prázdnej definície Bez mena (neuložené)

Informácia o filtri, tzn. či je filter použitý a jaký, je zobrazená v obmedzovacom paneli pri tlačidle Vybraný filter. Informácia o filtri sa zobrazuje nasledovne:
-
"Filter: za {aktuálne zvolené triedenie} {zadaný reťazec} ". Ak je nastavený filter podľa aktuálneho triedenia.
Napr.:
-
"Filter: {Názov uloženej definície filtra}". Ak je aktuálne vybraná priamo niektorá z uložených definícií filtra.
Napr.:
-
"Filter: Bez mena (neuložené)". Ak nejde o žiadnu z predchádzajúcich možností a filtrovacie podmienky boli zadané ručne. Tzn. vyvolaním voľby nastavenia filtra a ručným zadaním filtračných podmienok alebo modifikáciou filtračných podmienok nastavených niektorou z predchádzajúcich volieb.
Napr.:
-
"Filter: žiadny". Ak aktuálne nie je nastavený žiadny filter. Pri zatvorení agendy či číselníku sa vybraný filter a začiarknuté podmienky vždy rušia a pri opätovnom otvorení nie je vybraný žiaden filter, ak nie je nastavený nejaký filter ako východiskový.
Napr.:
-
"Filter: náhrady". Ak je nastavený filter podľa náhrad.
Napr.:
Popis funkčného tlačidla Vybraný filter viď kapitola Obmedzovací panel (lišta) v číselníkoch.
Správanie filtra objasníme na záverečnom príklade:
V Adresári firiem majme uložené o.i. definície filtra: "Firmy so sídlom v Bratislave" s filtračnou podmienkou za položku Adresa sídla *Bratislava*. Definíciu majme nastavenú ako obľúbenú. Obľúbené definície sa budú ponúkať na obmedzovacom paneli. Aktuálně vybraná oblíbená definice je graficky zvýrazněna:
Nech žiadny filter nie je nastavený. V informačnom paneli je uvedené .
Vyvoláme si podvoľbu Nastaviť filter podľa aktuálneho triedenia. Nech je aktuálne triedenie podľa Názvu. Zadáme hľadaný reťazec, napr. A*. Po stlačení OK budú v zozname firiem len firmy začínajúce na A, v informačnom paneli bude uvedené . Ak následne vyvoláme okno nastavenia filtra, bude v ňom začiarknutá filtračná podmienka za Názov s reťazcom "A*", položka "Vybraná definícia" v ňom bude prázdna (pretože nebolo filtrované podľa niektorej z uložených definícií):
K predvyplnenej filtračnej podmienke za Názov pridáme napr. za adresu z Košíc. Po stlačení OK budú v zozname len firmy začínajúce na A z Košíc. V informačnom paneli už bude teraz uvedené (nejde už o filtrovanie podľa aktuálneho triedenia a ani podľa nejakej uloženej definície).
Potom budeme chcieť vidieť len firmy z Bratislavy. Zvolíme filter podľa uloženej definície "Firmy so sídlom v Bratislave" (napr. kliknutím na e-link umiestneným na obmedzovacom paneli). V obmedzovacom paneli bude teraz uvedené . V zozname budú len firmy, ktoré tomuto filtru vyhovujú. Ak následne vyvoláme okno nastavenia filtra, bude v ňom začiarknutá filtračná podmienka za Adresa sídla *Bratislava*.