Filtr

Z Prirucky

Filtrace údajů označuje možnost stanovení výběrového kritéria (tzv.filtru) pro seznam údajů nebo položek v sestavě. Tímto způsobem lze omezit vybrané položky v seznamu či sestavě pouze na určitou požadovanou skupinu údajů.

O-filtr-jednoduchy.png

Otevření okna

Vyvolání okna pro definici filtru můžete provést třemi způsoby:

  • ikona - stisk tlačítka Filtr v nástrojové liště
  • menu - Údaje/Filtr , položkou Filtr v menu Údaje nebo stiskem Hot-key CTRL-F.
  • klávesová zkratka - Ctrl+F

Existují dvě varianty

Varianta se nastavuje v menu: Nastavení/Třídění, filtrace, hledání.

Ovládání

O-filtr-jednoduchy.png

Okno pro jednoduchý filtr zobrazuje seznam sloupců, přípustných výběrových podmínek (logických operátorů), pole pro vstup kritéria a pole pro přidání další výběrové podmínky

  • and - a (zároveň)
  • ornebo.

Výsledný výraz, podle něhož se provede výběr, je průběžně zobrazován v horní části okna, lze jej kopírovat či jej upravovat ručně (pro správnost takto opraveného filtru je možné jej otestovat stiskem tlačítka Test).

Textové řetězce zadané do filtrovací podmínky jsou vždy aplikovány jako case sensitivní, tzn. vyhledávají se vždy jen ty záznamy, které přesně odpovídají velikosti zadaných písmen.
V případech, že je vyžadována case-insensitivita, je potřeba ve filtrovacím výrazu nahradit název sloupce výrazem "lower (<název sloupce>)". Nebo využít jiné možnosti skládání výrazů pomocí logických podmínek "or" nebo "in".

Speciální nastavení filtru umožňují zatrhávací pole:

  • Jen akt. poměr k - po zatrhnutí pole a zadání data budou vybráni pouze zaměstnanci ve stavu bez rozdílu typu pracovního poměru k aktuálně nastavenému datu.
  • Jen akt. HPP k - po zatrhnutí pole a zadání data budou vybráni pouze zaměstnanci s platným hlavním pracovním poměrem k danému datu
  • Bez mimoev. k – ze seznamu budou vypuštěni zaměstnanci, kteří jsou mimo evidenci (v mimoevidenčním stavu) k danému datu.
  • Jen mimoev. k - budou uvedeni jen zaměstnanci v mimoevidenčním stavu k zadanému datu.
  • Rozlišovat malá a velká písmena

Uložení filtru

Filtrovací výraz jednou vytvořený je možné uložit tlačítkem Uložit výraz; je potřeba zadat název (pojmenování) filtrovacího výrazu. Filtrovací výraz pak načtete pomocí tlačítka Načíst výraz. Objeví se ovšem jen ty výrazy, které byly předtím uloženy nad danou sestavou či seznamem a jen ty, které uložil dotyčný uživatel.

Maximální počet: 2500 znaků (do 11/2018 500 znaků).

Žlutý identifikátor filtru

Třídění, filtrace, hledání

V uvedeném menu můžete určit (zvolením Tisknout žlutý identifikátor zapnutého filtru), zda chcete tisknout výrazné pole s nápisem FILTR na filtrovanou sestavu - např. za účelem jasné identifikace v budoucnosti, že se nejedná o kompletní data, pouze o výběr z dat. Doporučujeme hodnotu "ano", tj. uvádět.

Vložení více hodnot do filtrovací podmínky

Křížový filtr

Účelem křížového filtru je zmenšit sestavu nebo seznam zaměstnanců (zmenšit počet řádků) podle kritéria aplikovaného na sloupec, jenž ovšem není obsažen v dotyčné sestavě či seznamu zaměstnanců. Křížové filtry umožňují mimo rámec standardního filtrování dodatečně odfiltrovat zaměstnance kteří jsou/nejsou v jiném otevřeném seznamu. Takovýto seznam musí obsahovat sloupec osobní číslo, pomocí kterého je možné zaměstnance provázat.

O-filtr-krizovy.png

Princip je následující.
1. Nalezněte zdrojovou sestavu, která obsahuje požadovaný sloupec, a použijte filtr na tento sloupec (sloupce).
2. Vytvořte cílovou sestavu.
3. Vyvolejte okno filtru a stiskněte tlačítko pro "křížový filtr".
4. Vyhledejte řádek, který odpovídá sestavě z bodu 1.
5. Zvolte akci, tj. změňte hodnotu z "žádná" na "ponechat společné" nebo "vymazat společné".

Akce "ponechat společné" znamená, že v cílové sestavě budou ponecháni jen ti zaměstnanci, kteří se objevili ve zdrojové filtrované sestavě. Akce "vymazat společné" znamená, že z cílové sestavy budou vymazáni zaměstnanci ze zdrojové filtrované sestavy.

Stejné funkcionality je možno dosáhnout také upraveným postupem:
1. Zdrojová sestava, filtr. Stisk tlačítka Zapamatovat zaměstnance.
2. Cílová sestava.
3. Okno filtru, "křížový filtr".
4. Řádek s názvem zapamatovaný seznam zaměstnanců.
5. Akce ponechat společné nebo vymazat společné.

Po stisku tlačítka "Zapamatovat zaměstnance" se daný seznam osobních čísel uloží (zapamatuje, a to až do dalšího stisku tohoto tlačítka na jiném místě). Na jiném místě je možno vyvolat křížové filtry a zapamatovaný seznam zaměstnanců nechat aplikovat.

Použití je i v místech, kde jinak filtrace není. Například kopírování účastníků školicí akce – chcete na akci hromadně přihlásit stejné účastníky, kteří se již účastnili nějaké jiné akce. Tedy na původní akci kliknete na seznam účastníků, filtraci a tlačítko „Zapamatovat zaměstnance“. Na novém místě (v nové školicí akci) použijete křížový filtr na seznam zaměstnanců a následně zaměstnance přihlásíte.

Filtr pracovních poměrů

Příklady

Rozdíl mezi spojením a/nebo

  • "a" zde znamená "a zároveň", logický součin
  • "nebo" zde znamená "a nebo", logický součet

Zaměstnanci může být v evidenci přiřazeno právě jen jedno kmenové středisko. Proto filtr "kmenové středisko = 1 a kmenové středisko = 2" dá nulový výsledek (žádný zaměstnanec nemá přiřazeno více než jedno kmenové středisko); zatímco filtr "kmenové středisko = 1 nebo kmenové středisko = 2" dá výsledek - uvede všechny zaměstnance z kmenových středisek 1 a 2.

Zaměstnanci určitého střediska a příjmení P-Ž

O-filtr-priklad-1.png

Je vyplněno / není vyplněno

Pokud potřebujete filtrovat záznamy tak, že chcete buď ty, které mají nějakou hodnotu, nebo naopak nejsou vyplněny, volíte operátory Je vyplněno (IsNotNull) / Není vyplněno (IsNull).

Filtr – množina hodnot z celkového výčtu

  • Varianta a/ - jednotlivé řádky oddělené klauzulí "nebo"
  • Varianta b/ - využití operátoru in - zapisujte do horního okna "Filtrovací výraz"

Příklad:

  • os_cislo in (1,2,3,10,214, 3427)
  • prac_pom_praxe in (1,2,4)
  • pracovnici_kmen_str in (seznam středisek v apostrofech oddělených čárkou)

Protože střediska jsou na více míst, bylo by vhodné je uvádět bez počátečních nul, tj.

trim (pracovnici_kmen_str) in ('1000', '2000', '3000')

Určení ženy/muže z rodného čísla

  • Muži – odvození z rodného čísla: mid(rodne_cislo, 3,1) = '0' Or mid(rodne_cislo,3,1) = '1'
  • Ženy – odvození z rodného čísla: mid(rodne_cislo, 3,1) = '5' Or mid(rodne_cislo,3,1) = '6'

Funkce 1.den aktuálně zpracovávaného měsíce a 1.den následujícího měsíce

Použití: nebude nutné každý měsíc přepisovat datum ve filtru.

Globální funkce

  • gf_aktdatum_string() - Date(gf_aktdatum_string())
  • gf_nasldatum_string() - Date(gf_nasldatum_string())

lze využít při zadávání filtračních podmínek v sestavách. Definici filtru uživatel uloží a následující měsíce nemusí ve filtračních podmínkách přepisovat konkrétní datumy.
Použítí je nutno vepsat přímo do textové definice filtru, položky mají ve filtru sestavy své vlastní označení.

Nepřítomnosti aktuálního období

Sestava MN 002 (nepřítomnosti za posl.půlrok), filtr:

absence_dat_od >= Date(gf_aktdatum_string()) And ( absence_dat_do < Date(gf_nasldatum_string()) or isnull(absence_dat_do))

Sestava se zaměstnanci aktivními v aktuálním období

Varianta 1) Využití seznamu zaměstnanců s určením všichni/aktivní/vystoupivší a s nastavením kdy považovat zaměstnance za vystoupivšího dle nastavení v Třídění, filtrace, hledání.

Varianta 2) Sestava, např. v agendě Generátor sestav II, obsahující datum zahájení pracovního poměru a datum ukončení pracovního poměru. Zaměstnancemi aktivními v aktuálním období se myslí zaměstnanci, kteří

nastoupili dříve než je 1. den následujícího období
datum ukončení buď nemají vyplněn, nebo mají vyplněn, ale je vyšší než 1. den aktuálního období
x10xdatum_nastupu < Date(gf_nasldatum_string()) And (x11xdatum_ukonc >= Date(gf_aktdatum_string()) Or (isnull(x11xdatum_ukonc)))

Zamestnanci-sestava-gen-sestav-filtr-ve-stavu-v-akt-obdobi.png

Zaměstnanci ve stavu ve vybraném roce

Požadavkem je zobrazit zaměstnance, kteří ve firmě pracovali v roce 2009, buď celý rok, nebo i jen po část roku. Protože ve filtru je standardně jenom podmínka "zaměstnanci ve stavu ke konkrétnimu dni", je nutno filtr složit následovně:

hledají se zaměstnanci, jejichž datum zahájení je dříve (nebo rovno) než 31.12.2009 (ti, co přišli do společnosti v roce 2010, nás nezajímají)
a zároveň jejich datum ukončení je větší (nebo rovno) než 1.1.2009 (ti, co odešli v r.2008 nebo dříve, nás nezajímají) nebo datum vyplnění není vyplněn
datum_nastupu <= Date('31.12.2009') And (datum_ukonc >= Date('1.1.2009') Or (isnull(datum_ukonc)))

Výraz s "or" (nebo) bylo potřeba vložit do závorek, aby se zpracoval první, a teprve potom výraz "and".

Filtr vložte do horního pole určeného pro vytvoření filtru, můžete si jej také uložit pod nějakým názvem. POZOR: v různých sestavách a seznamech může systém různě označovat položky datum_nastupu a datum_ukonc.

Filtr je možno upravit pro jiné hranice období; v tomto příkladě byla použita hranice 1.1.2009 a 31.12.2009.

  • Pro osobní údaje - nikoliv pro pracovní poměry:

Menu: Evidence zaměstnanců > Osobní údaje / Sestava

datum_nastupu <= Date('31.12.2016') And (datum_vystupu >= Date('1.1.2016') Or (isnull(datum_vystupu)))

Menu: Evidence > MaP Express / Pracovní poměr/Sestava

prac_pom_datum_nastupu <= Date('31.12.2016') And (prac_pom_datum_ukonc >= Date('1.1.2016') Or (isnull(prac_pom_datum_ukonc)))

Filtr nad složeným údajem

U údaje složeného z kombinace čísla (číselník) a textu, je možno zvolit, zda se bude filtrovat první či druhý typ. (Pro generátor sestav obvykle není použitelné.)

Filtr-slozeny-udaj-kombinace-obou.png

Příklad použití bez a se zatrženým polem:
Filtr-slozeny-udaj-seznam.png Filtr-slozeny-udaj-nepouzito.png Filtr-slozeny-udaj-nepouzito-po-filtraci.png Filtr-slozeny-udaj-po-filtraci.png

Některý sloupec (v seznamu nebo v sestavě) číselníkového typu se může v sestavě objevit složeným výrazem: číslo - název (1 - Generální ředitel, tzn. číslo pracovního místa - název pracovního místa). Filtr v takovém případě může být funkční na číslo (v uvedeném případě číslo pracovního místa ) a není funkční na název. Změnou filtrovací podmínky je možno dosáhnout, aby se podmínka nevztahovala k číslu (interně uložená hodnota v db tabulce), ale k celému výrazu.

Toho dosáhnete přidáním zatrhnutím pole Zobraz.údaj (do výrazu bude přidána klauzule: lookupdisplay())

Filtr nad pracovním postupem

Viz Pracovní postup

prac_postup_mzd_stup <> prac_postup_mzd_stup[-1]
prac_postup_typ_kal <> prac_postup_typ_kal[-1]
prac_postup_tarif <> prac_postup_tarif[-1]

Nebo:

(prac_postup_tarif <> prac_postup_tarif[-1] ) or (prac_postup_os_hodn <> prac_postup_os_hodn[-1]) or (prac_postup_prac_kateg <> prac_postup_prac_kateg[-1])

Použití – např. Pracovní poměry, záložka Prac.postup, režim Pohled. Toto vložit do filtru. Funguje, ale s výhradou – neukáže první záznam.

Odkazy