Filtr: Porovnání verzí
| Řádek 29: | Řádek 29: | ||
==== Uložení filtru ==== | ==== Uložení filtru ==== | ||
Filtrovací výraz jednou vytvořený je možné uložit tlačítkem | 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. | ||
==== Žlutý identifikátor filtru ==== | ==== Žlutý identifikátor filtru ==== | ||
Verze z 26. 9. 2013, 11:14
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ů.
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
- jednoduchý filtr - popisován dále, doporučujeme používat
- rozšířený filtr
Varianta se nastavuje v menu: Nastavení/Třídění, filtrace, hledání.
Ovládání
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‘ nebo ‚or‘ – „a zároveň“ – „nebo“).
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).
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.
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.
Žlutý identifikátor filtru
Menu: Nastavení/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.
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.
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-Ž
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
Globální funkce gf_aktdatum_string a gf_nasldatum_string lze využít při zadávání filtračních podmínek v sestavách. Použítí je nutno vepsat přímo do textové definice filtru, například u sestavy MN 002 (nepřítomnosti za posl.půlrok):
absence_dat_od >= Date(gf_aktdatum_string()) And ( absence_dat_do < Date(gf_nasldatum_string()) or isnull(absence_dat_do)).
Tuto definici filtru je pak možno uložit pod názvem např. "Absence jen aktuální měsíc" a uživatelé už nemusí každý měsíc přepisovat fitrační podmínky.
Zaměstnanci ve stavu v určitém období
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. Filtr je možno upravit pro jiné hranice období; v tomto příkladě byla použita hranice 1.1.2009 a 31.12.2009.
Filtr nad složeným údajem
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 klauzule:
- lookupdisplay()
Příklad použití: Menu: Evidence/MaPExpress, záložka Seznam zaměstnanců. Nebo sestava SI015/A (sestava pracovních míst zaměstnanců) match(lookupdisplay(pov_funkce),'dělník') Hledají se všechna pracovní místa, která v názvu mají obsaženo slovo "dělník" (psáno s malými písmeny).
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.