|
|
| (Není zobrazeno 299 mezilehlých verzí od stejného uživatele.) |
| Řádek 1: |
Řádek 1: |
| '''Filtr'''ace ú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: [[třídění, filtrace, hledání|Nastavení/Třídění, filtrace, hledání]].
| |
|
| |
| == Ovládání ==
| |
|
| |
| [[Image:O-filtr-jednoduchy.png|300px|right]]
| |
|
| |
| 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ň)'''
| |
| * '''or''' – '''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'').
| |
|
| |
| 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. <br>
| |
| <small> 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".</small>
| |
|
| |
| 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 ====
| |
| [[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.
| |
|
| |
| [[Image:O-filtr-krizovy.png|right|220px]]
| |
| Princip je následující. <br>
| |
| 1. Nalezněte zdrojovou sestavu, která obsahuje požadovaný sloupec, a použijte filtr na tento sloupec (sloupce). <br>
| |
| 2. Vytvořte cílovou sestavu. <br>
| |
| 3. Vyvolejte okno filtru a stiskněte tlačítko pro "křížový filtr". <br>
| |
| 4. Vyhledejte řádek, který odpovídá sestavě z bodu 1. <br>
| |
| 5. Zvolte akci, tj. změňte hodnotu z "žádná" na "ponechat společné" nebo "vymazat společné". <br>
| |
|
| |
| 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: <br>
| |
| 1. Zdrojová sestava, filtr. Stisk tlačítka "Zapamatovat zaměstnance". <br>
| |
| 2. Cílová sestava. <br>
| |
| 3. Okno filtru, "křížový filtr". <br>
| |
| 4. Řádek s názvem "zapamatovaný seznam zaměstnanců". <br>
| |
| 5. Akce "ponechat společné" nebo "vymazat společné". <br>
| |
|
| |
| 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ů ==
| |
| [[Filtr pracovních poměrů|Více zde.]]
| |
|
| |
| == 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-Ž ===
| |
|
| |
| [[Image: O-filtr-priklad-1.png|220px]]
| |
|
| |
| === 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. <br>
| |
| 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 [[Nepřítomnosti - sestavy|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)))''
| |
|
| |
| [[Image: Zamestnanci-sestava-gen-sestav-filtr-ve-stavu-v-akt-obdobi.png|550px]]
| |
|
| |
| === 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ě:<br>
| |
| : 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í) <br>
| |
| : 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 <br>
| |
|
| |
| : ''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.
| |
|
| |
| === 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.
| |
|
| |
| == Odkazy ==
| |
| * [[Práce s aplikací]]
| |