Filtr: Porovnání verzí

Z Prirucky
 
(Není zobrazeno 28 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
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ů.  
'''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ů.  
[[Image:O-filtr-jednoduchy.png|590px|right]]


== Otevření okna ==
== Otevření okna ==
Řádek 11: Řádek 12:
* jednoduchý filtr - popisován dále, doporučujeme používat
* jednoduchý filtr - popisován dále, doporučujeme používat
* [[rozšířený filtr]]
* [[rozšířený filtr]]
Varianta se nastavuje v menu: Nastavení/Třídění, filtrace, hledání.
Varianta se nastavuje v menu: [[třídění, filtrace, hledání|Nastavení/Třídění, filtrace, hledání]].


== Ovládání ==
== Ovládání ==
[[Image:O-filtr-jednoduchy.png|300px|right]]


[[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'''.


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'').  


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:
Speciální nastavení filtru umožňují zatrhávací pole:
Řádek 26: Řádek 31:
* '''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  
* '''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.  
* '''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'''
<!-- Pavel R., 40. týden 2015 -->
=== 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.


===== Uložení filtru =====
<small> Maximální počet: 2500 znaků (do 11/2018 500 znaků). </small>
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.


=== Žlutý identifikátor filtru ===
=== Žlutý identifikátor filtru ===
Menu: Nastavení/Třídění, filtrace, hledání
[[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.
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 ===
* [[Vložení více hodnot do filtrovací podmínky]]


== Křížový filtr ==
== Křížový filtr ==
Řádek 48: Řádek 62:


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


== 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')''


Funkcionalita tlačítka ‚Křížové filtry‘ je popsána níže.
=== Určení ženy/muže z rodného čísla ===


'''Pozn. '''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).
* '''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í]].


'''Filtr – množina hodnot z celkového výčtu'''
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í


Varianta a/ - jednotlivé řádky oddělené klauzulí „'''nebo'''“
: ''x10xdatum_nastupu < Date(gf_nasldatum_string()) And (x11xdatum_ukonc >= Date(gf_aktdatum_string()) Or (isnull(x11xdatum_ukonc)))''


Varianta b/ - využití operátoru „'''in'''“ - zapisujte do horního okna "Filtrovací výraz"
[[Image: Zamestnanci-sestava-gen-sestav-filtr-ve-stavu-v-akt-obdobi.png|550px]]


Příklad:
=== Zaměstnanci ve stavu ve vybraném období (např. roce) ===
==== Pomocí filtru ====
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)))''


* os_cislo in (1,2,3,10,214, 3427)
Výraz s "or" (nebo) bylo potřeba vložit do závorek, aby se zpracoval první, a teprve potom výraz "and".
* 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.
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''.


trim (pracovnici_kmen_str) in ('1000', '2000', '3000')
Filtr je možno upravit pro jiné hranice období; v tomto příkladě byla použita hranice 1.1.2009 a 31.12.2009.


* Muži – odvození z rodného čísla: mid(rodne_cislo, 3,1) = '0' Or mid(rodne_cislo,3,1) = '1'
* Pro agendu [[Osobní údaje]] <small>(Menu: Evidence zaměstnanců > Osobní údaje / Sestava)</small>
* Ženy – odvození z rodného čísla mid(rodne_cislo, 3,1) = '5' Or mid(rodne_cislo,3,1) = '6'
: ''datum_nastupu <= Date('31.12.2016') And (datum_vystupu >= Date('1.1.2016') Or (isnull(datum_vystupu)))''


* Pro agendu [[Pracovní poměry]] <small>(Menu: Evidence > MaP Express / Pracovní poměr/Sestava)</small>
: ''prac_pom_datum_nastupu <= Date('31.12.2016') And (prac_pom_datum_ukonc >= Date('1.1.2016') Or (isnull(prac_pom_datum_ukonc)))''


'''Filtr – funkce 1.den aktuálně zpracovávaného měsíce a 1.den následujícího měsíce'''
==== Pomocí sestavy v generátoru ====
* '''[[Aktivní pracovní poměry v období (sestava)]]'''


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):
=== 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. <small>(Pro generátor sestav obvykle není použitelné.)</small>


absence_dat_od >= Date(gf_aktdatum_string()) <nowiki>And ( absence_dat_do < Date(gf_nasldatum_string()) or isnull(absence_dat_do)).</nowiki>
[[Image: Filtr-slozeny-udaj-kombinace-obou.png|700px]]


Příklad použití bez a se zatrženým polem: <br>
[[Image: Filtr-slozeny-udaj-seznam.png|250px]]
[[Image: Filtr-slozeny-udaj-nepouzito.png|250px]]
[[Image: Filtr-slozeny-udaj-nepouzito-po-filtraci.png|250px]]
[[Image: Filtr-slozeny-udaj-po-filtraci.png|250px]]


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.
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()'')


'''Zaměstnanci ve stavu v určitém období'''
=== Filtr nad pracovním postupem ===
Viz [[Pracovní postup]]


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>  
: ''prac_postup_mzd_stup <> prac_postup_mzd_stup[-1]''
- 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>
: ''prac_postup_typ_kal <> prac_postup_typ_kal[-1]''
- 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>
: ''prac_postup_tarif <> prac_postup_tarif[-1]''


datum_nastupu <= Date('31.12.2009') And (datum_ukonc >= Date('1.1.2009') Or (isnull(datum_ukonc)))
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])''
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 pracovním postupem''' (Evidence/Pracovní poměry/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]


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.
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.


'''Filtr nad složeným údajem'''
== Odkazy ==
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:
* [[Práce s aplikací]]
* lookupdisplay()
* [[Filtr (portál)]]
 
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).

Aktuální verze z 7. 8. 2025, 13:27

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ň)
  • 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.
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 období (např. roce)

Pomocí filtru

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ě:

  1. 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í)
  2. 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 agendu Osobní údaje (Menu: Evidence zaměstnanců > Osobní údaje / Sestava)
datum_nastupu <= Date('31.12.2016') And (datum_vystupu >= Date('1.1.2016') Or (isnull(datum_vystupu)))
  • Pro agendu Pracovní poměry (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)))

Pomocí sestavy v generátoru

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