How Can We Help?
Filtry
PROFYLAX umožňuje filtrovat jednotlivé tabulky dle různých kritérií. Takto nadefinované filtry pak lze uložit do databáze jako předdefinované uživatelské filtry, tzn. každý uživatel má přístup ke svým vlastním filtrům, navíc existuje možnost, aby správce PROFYLAXu, v tzv. Manažeru uživatelských filtrů, přiřadil jednou zadané a sestavené filtry jakéhokoli uživatele i dalším uživatelům.
Pro vstup do filtrů slouží následují tlačítka. První je vstup do filtrů, druhé pak přímý vstup do uložených předdefinovaných filtrů a třetí pak u některých tabulek pro výběr nejčastěji používaných programátorsky předdefinovaných filtrů.
Základní okno filtrů je rozděleno na 2 záložky („Uživatelská“ a „Pro pokročilé“).
ZÁLOŽKA „UŽIVATELSKÁ“
Pro zadání neboli definici podmínky v záložce „Uživatelská“, se použijí následující políčka:
Položka tabulky – výběr údaje tabulky, podle kterého chceme filtrovat (např. Evid.č.stroje, Kód materiálu atd.)
Podmínka – výběr z následujících možností (rovná se =, nerovná se <>, je větší než >, je větší rovno než >=, je menší než <, je menší rovno než <=)
Hodnota – konkrétní zadaná hodnota, podle které chceme položku tabulky vyfiltrovat
– přidá jednu definici podmínky filtru do celkové výběrové podmínky (filtru)
Příklad uživatelského filtru
Př.: chceme vyfiltrovat všechny stroje s evid.č menším než 0005.
Uživatelský filtr:
1. v poli „Položka tabulky“ vybereme „Evid.číslo“
2. v poli „Podmínka“ vybereme „<“
3. do pole „Hodnota“ zadáme 0005
4. stiskneme tlačítko „Přidat“
5. stiskneme tlačítko „Filtr“
ZÁLOŽKA „PRO POKROČILÉ“
Doporučujeme osvojit si hned záložku Pro pokročilé, protože lze v budoucnu filtr upravovat, např. takové věci jako datum a jiná pole, která můžeme přepisovat dle aktuální potřeby. Takové možnosti v uživatelských filtrech nejsou, protože jsou needitovatelné.
Pro zadání neboli definici podmínky v záložce „Pro pokročilé“ se výběrová podmínka zapíše ručně tak, že podmínku sestavíme z dostupných položek tabulky a operátorů. Tato záložka dává možnost sestavit složitější filtry, které bychom na záložce „Uživatelská“ nesestavili.
– uloží výběrovou podmínku (filtr) do předdefinovaných uložených filtrů pro budoucí použití
– otevře předdefinované filtry (uložené)
– zavře okno a aplikuje filtr na tabulku – vhodné také k vyzkoušení, zda filtr funguje správně
– zavře okno a neaplikuje žádný filtr
– smaže definici výběrové podmínky (filtru)
Jednotlivé definice podmínek lze spojovat pomocí logických operátorů:
AND (a) – a zároveň
OR (nebo) – nebo
Pro celkový filtr můžeme také určit, zda:
- Nerozlišovat velká a malá písmena
- Pouze celá slova
- SQL filtr (detaily v samostatné kapitole)
Příklad pokročilého filtru
Př.: chceme vyfiltrovat všechny stroje s evid.č menším než 0005.
Pokročilý filtr:
1. v poli „Dostupné položky tabulky“ dvakrát klikneme na údaj „EvidCislo“
2. v poli „Výběrová podmínka“ se nám zobrazí „EvidCislo“ a následně za tento údaj klikneme a v prostředním panelu znaků klikneme na znak < „menší“
3. dále zadáme hodnotu 0005
4. stiskneme tlačítko „Filtr“
Další pravidla
1) Všechny nečíselné údaje (text, datum) musíme zadávat do apostrofů (‚text‘ ‚datum‘ ). Kdybychom tedy chtěli vybrat stroje začínající na písmeno A, zadáme filtr takto: EvidCislo=’A*‘
2) * – znak hvězdičky nahrazuje část textu. Lze tedy použít jako v předchozím případě: stroj začíná na písmeno A.
3) Logické operandy AND, OR, NOT musejí mít před sebou a za sebou vždy mezeru.
Př: EvidCislo=’A*‘ AND EvidCislo=’*5′ – zde jsme vybrali stroje začínající na A a končící číslem 5, např. A0005, A0015, atd.
4) Nejčastěji používané znaky a operandy máme k dispozici na středovém panelu pouze kliknutím myši. Znamená to, že nemusíme dlouho některé znaky hledat na klávesnici. Např. na notebooku je s hledáním někdy problém.
PO APLIKACI FILTRU
Po aplikaci filtru dojde k tomu, že tlačítko filtr „zezelená“, tzn. že v danou chvíli je na tabulce aplikován filtr, pokud na tlačítko „Filtr“ klikneme ve chvíli, kdy je zelené, dojde k deaktivaci (zrušení) filtru a tlačítko „zčerná“.
Nadefinovaný filtr můžeme uložit do předdefinovaných filtrů, kde zadáme vlastní název filtr a případně můžeme zaškrtnout, že se jedná o tzv. „Vstupní filtr“, což je takový filtr, který se automaticky nastaví při vstupu (otevření) tabulky, např. při otevření Karty stroje, Hlášení, Plánu atd.
Ukázka použití filtru v číselníku materiálu
Vyfiltrování podlimitních položek:
Použitím filtrů se snažíme vyfiltrovat (najít) položky skladu, které bychom měli objednat pro jejich nízký stav.
Napíšeme filtr – příklad: Množství (množství na skladu) < MinLimit (minimální stav).
Disketou filtr uložíme. Žlutým tlačítkem vedle diskety otevřeme dříve uložené filtry. Lupou filtr jen zapneme. Je dobré si filtr před uložením nejdříve zapnout Lupou, abychom viděli, že opravdu funguje!
Filtr uložíme pro příští použití jako např. „Podlimitní stavy materiálu“. Jestliže chceme filtr zapínat automaticky při otevření číselníku materiálu, označíme filtr jako vstupní.:
Tím vyfiltrujeme všechny podlimitní materiály, které na skladě jsou (vlastně spíše nejsou 🙂 ).
K tomuto filtru můžeme ještě připojit další parametry, podle kterých se má filtrovat. Pro filtrování využijeme parametry materiálu jako druh materiálu, výrobce, kde, jiný kód, skupina, které nastavujeme v detailu materiálu.
V příkladu použijeme filtr pomocí druhu materiálu a vyfiltruji si pouze podlimitní stavy olejů.
Takto vypadá upřesněný filtr „Podlimitní stav materiálu a současně druh materiálu OLEJ:
Pokud např. napíšeme filtr: mnozstvi<minlimit AND druhmat=’olej‘, musíme zaškrtnout políčko v okně dole: Nerozlišovat velká a malá písmena!
Filtr opět můžeme uložit disketou nebo jen zapnout lupou a dostaneme již přehledně vytříděné položky materiálu, který už pak jen jednoduše zakřížkujeme a dáme OK:
Pomocná tabulka filtrů
Pro usnadnění práce s vytvářením filtrů jsme pro Vás připravili několik nejpoužívanějších filtrů, které postačí si lze upravit dle vlastních potřeb. Filtry v tabulce se zadávají v pokročilém nastavení. Stačí přenést přes schránku Windows.
Postup pro použití – Výběr filtru z tabulky a zadání do Profylaxu:
1. Najít v tabulce, který filtr je vhodný pro to, co chcete udělat
2. Označit si buňku definice filtru (najede se myší na levý horní roh buňky, objeví se černá šipka, kliknout)
3. Ctrl-C (zkopírovat do schránky)
4. Přepnout se do PROFYLAXu, např. Plán, tlačítko Filtr, Pokročilé zadání
5. V pokročilém zadání dát Ctrl-V
6. Upravit filtr tak, jak je potřeba, kupříkladu na další týden
Popis použití filtru | Definice filtru |
PLÁN: Výběr jednoho týdne linky 401 – tisk stručného plánu pro vedoucí linek | BodOdstavky = ‚401‘ AND DatumP>’18.9.2011′ AND DatumP<‚26.9.2011‘ |
Totéž linka 402 | BodOdstavky = ‚402‘ AND DatumP>’18.9.2011′ AND DatumP<‚26.9.2011‘ |
Jak najít ručně změněné datum v plánu (lze i jinak) | DatumZmena>’1.1.1900′ |
Položky s fixovaným obsahem | JeFixObs= ‚true‘ |
Vybrán jeden měsíc z plánu | DatumP>=’1.03.2011′ AND DatumP<‚1.4.2011‘ |
HOTOVÉ ÚDRŽBY: Jen opravy | TypUdr=’Oprava‘ |
Jen opravy na lince 401 | TypUdr=’Oprava‘ AND BodOdstavky = ‚401‘ |
Jen údržby bez oprav za září | TypUdr<>’Oprava’ AND Datum>=’1.9.2011’ AND Datum<’1.10.2011’ |
Jen varovná hlášení | TypHlas = ‚VAROVNE‘ |
Podlimitní stav materiálu na skladu | Mnozstvi<MinLimit |
Nevyřízená akutní a varovná hlášení | (TypHlas = ‚VAROVNE‘ OR TypHlas=’AKUTNI‘) AND Vyrizeno=’false‘ |
Evidenční číslo stroje začíná nulou | EvidCislo = ‚0*‘ |
Pouze údržby prvního stupně (stupňovité údržby) | Stupen = 1 |
Plán na týden dopředu od dnešního dne | DatumP<‚(today+7)‘ |
Provedeno později než podle plánu | Datum>DatumPlan |
Stroj 0001, opravy v prvním čtvrtletí | EvidCisloStroje=’0001′ AND TypUdr=’Oprava‘ AND Datum>=’1.1.2011′ AND Datum<‚1.4.2011‘ |
COMBI FILTRY
Protože nelze v plánu zobrazit veškeré údaje z karty stroje a přímo z definice údržby, tedy z číselníku Druhy údržby, je v plánu připraven COMBI filtr. Ten dokáže filtrovat plán pomocí údajů z plánu, karty stroje i druhů údržby a co víc, dokáže je spojit do jednoho filtru – COMBI filtru na všechny tři tabulky.
Vytvoření COMBI filtru:
Nejprve vytvoříme filtry pro Kartu stroje, Druh údržby a Plán samostatně a uložíme si je. V COMBI filtru pak už jen vybíráme předdefinované uložené filtry. COMBI filtr nemusíme nutně používat na kombinování filtrů plánu, karty stroje a druhů údržby. Můžeme pomocí něj filtrovat v plánu pouze třeba údaje karty stroje, které bychom v plánu jinak nevyfiltrovali.
Příklad COMBI filtru
Chceme filtrovat plán pouze pro stroje se Zodpovědnou osobou safety s osobním číslem 9001 (pan Novák). V kartě stroje vytvoříme filtr „ZodOsobaSafety = 9001“ a uložíme ho:
Uložíme jej např. s vlastním pořadím, aby byl filtr na začátku seznamu všech uložených filtrů:
Použití jednoduchého COMBI filtru:
V plánu dáme jakoby klasický filtr tlačítkem „Filtr“, vybereme záložku „COMBI“, zaškrtneme políčko STROJE a vybereme dříve vytvořený filtr:
Vybereme filtr a potvrdíme OK:
Filtr na stroje se vypíše pro kontrolu do prázdného pole a nový COMBI filtr uložíme tlačítkem diskety pro pozdější opakované rutinní použití v plánu údržby:
Můžeme ho pojmenovat podobně jako filtr ve strojích. Pro rozlišení od klasického filtru vidíme jasně červený nápis COMBI:
Po zapnutí tohoto COMBI filtru uvidíme v plánu pouze akce ke strojům, které mají zodpovědnou osobu safety v záložce Doplňky na kartě stroje vyplněnou č=9001, pan Jan Novák:
Panu Novákovi tento filtr můžeme uložit jako vstupní, plus ho třeba ještě upravit, aby viděl ještě jiné stroje, které má na starosti. Poté se mu při vstupu do plánu vždy tento filtr automaticky aktivuje a uvidí jen akce, které má na starosti.
Filtr změníme na vstupní takto:
Otevřeme předdefinované filtry a najdeme požadovaný filtr:
Označíme jej, zaškrtneme u něj políčko „Vstupní?“ a uložíme fajfkou. Poté dáme tlačítko OK:
Poté se už vždy při vstupu automaticky aktivuje tento vstupní filtr.
Kombinování filtrů:
Název COMBI, jak už bylo řečeno v úvodu, napovídá, že umožňuje kombinování filtrů z více tabulek, a nikoliv jen z plánu. Jak jsme si již ukázali, nemusí být nutně ke kombinaci použit, my si jí ale ukážeme.
Použití kombinovaného filtru:
Dříve uložený filtr nelze měnit jako klasické uložené filtry ze záložky „pro pokročilé“. Vytvoříme tedy nový COMBI filtr, použijeme část předchozího pro filtrování strojů a zkombinujeme jej ještě s filtrem pro Plán:
Zaškrtnu tedy pole PLÁN a STROJE a u každého vyberu filtr. Zde chci všechny opět se Zodpovědnou osobou safety z karty stroje = Jan Novák a současně, že plánovaný datum je menší, než měsíc dopředu. Tedy všechny propadlé termíny a měsíc dopředu:
Namísto 60 údržeb jich mám nyní zobrazeno jen 21 a jen skutečně ty, které mne zajímají. Pokud si nadefinujeme více COMBI filtrů, můžeme je používat kdykoliv například k lepšímu hledání v plánu, přehledu o konkrétní údržbě různých strojů, nebo třeba k exportu jen určitého okruhu údržeb.
GRID FiltrBar
Filtrování seznamů pomocí gridu (seznamu – Karta stroje, Plán údržeb, Hlášení, Číselník materiálu a Objednávky).
Grid FilterBar umožňuje:
- Zjednodušené zadávání filtru přímo ve sloupci gridu (seznamu)
- Vícenásobné filtrování jednotlivých sloupců (údajů) souboru přímo na gridu (seznamu)
- Možnost kombinovat standardně zadaný nebo uložený filtr a filtr pomocí Grid FilterBar
- Výběr podmínky u sloupců, které navazují na číselník s pomocí rozbalovacího seznamu s hodnotami z číselníku, bez nutnosti zadat hodnotu (podmínku) ručně.
- Zadání různých podmínek s použitím speciálních znaků a filtrovat tak jen část řetězce znaků apod.
- FilterBar umožňuje i filtrování podle vypočítaných údajů
(nelze ale plně automatizovat, že všechny vypočítané údaje v souboru půjdou automaticky vyfiltrovat, protože je takové filtrování potřeba předem programově nadefinovat v definici komponenty gridu. Může se tedy stát, že narazíte na nějaký vypočítaný údaj, podle kterého nepůjde filtrovat – možnosti filtrování těchto údajů postupně doplňujeme podle požadavků klientů.
Možnosti sestavení podmínky
- zadat celou požadovanou hodnotu, např. „M11110250“ (ve všech podmínkách se nerozlišují malá a velká písmena, lze tedy zadat i jako „m11110250“)
- použít znak „*“ nebo „%“ nahrazující libovolný řetězec, např. „lis*“, „*lis“ nebo „*lis*“ (u kalkulovaných údajů není nutné zadat znak(y) „*“, vždy se vyfiltruje vše, co obsahuje podmínku jako část řetězce na jakékoliv pozici)
- použít znak „?“ nebo „_“ nahrazující jednu pozici, např. „lis_“, „__lis“ nebo „???lis*“ Tyto filtry se skvěle hodí při vyhledávání podle kupříkladu až 2. a 3. pozice kódu.
- použít podmínku <, >, <=, >= pro číselné a datumové údaje
- Boolean údaje se filtrují zadáním podmínky „true“ (ANO) nebo „false“ (NE). Nebo „1“ (ANO) nebo „0“ (NE)
- pokud chceme vyfiltrovat neprázdnou textovou položku, zadáme podmínku „>““ (větší než uvozovky, ne apostrofy), pokud prázdnou textovou položku, zadáme podmínku „<=““ (menší než uvozovky)
U údajů, které navazují na číselník, se po stisku zobrazí rozbalovací seznam s hodnotami z číselníku, zároveň je ale možnost zadat i zde podmínku ručně.
Aby došlo k aplikaci filtru po zadání podmínky v daném sloupci zadáním hodnoty ručně, je potřeba potvrdit klávesou Enter (popř. Tab), nebo kliknout myší kdekoliv v gridu mimo filtrovací buňku, nebo i jen pootočit kolečkem myši. Při vybírání z rozbalovacího seznamu se filtr aktivuje automaticky po vybrání.
Pokud chceme vymazat všechny zadané hodnoty ve všech sloupcích, a zrušit tak všechny nastavené filtry ve sloupcích, můžeme použít volbu přes pravé tlačítko myši kdekoliv na gridu (Clear FilterBar), nebo deaktivovat standardní PFX filtr pomocí tlačítka filtru
FilterBar rozlišuje velká a malá písmena. Pro nerozlišování velkých a malých písmen stačí v menu Servis -> Globální parametry -> záložka Ostatní zaškrtnout možnost FilterBar Case Insensitive.
Příklady použití FilterBaru
Příklad postupného sestavení vícenásobného filtru seznamu strojů
Umístění = H1
Nákladové středisko = 1000
Nákladové středisko = 1-1.linka
Cena stroje je větší než 100 000
Evidenční číslo stroje = A*
K takto sestavenému filtru lze přidat i některý ze standardních již uložených filtrů pomocí tlačítka pro předdefinované filtry, nebo naopak nejdříve nastavit standardní uložený filtr a pak teprve poskládat filtr pomocí Grid FilterBar na seznamu.
SQL FILTRY
PROFYLAX umožňuje využít filtrování i pomocí SQL v záložce „Pro pokročilé“. Pro aktivaci SQL filtru musí být zaškrtnuto pole „SQL filter“. Díky tomu bude PROFYLAX pracovat s Výběrovou podmínkou jako s SQL. SQL filtry vždy rozlišují velká a malá písmena!
Možnosti sestavení podmínek a jejich popis
- MŮŽEME Použít podmínku <, >, <=, >= pro číselné a datumové údaje.
- Boolean údaje se filtrují zadáním podmínky „true“ (ANO) nebo „false“ (NE). Pokud bych potřeboval filtrovat kupříkladu nepřevzatá hlášení, syntaxe by byl:
- Prevzato=False
- LIKE – Tento operátor umožňuje vyhledat řetězec textu. Syntaxe při hledání kupříkladu evidenčního stroje DRAC123 by byl:
- EvidCislo like ‚DRAC123‘
- Všechny nečíselné údaje (text, datum) musíme zadávat do apostrofů (‚text‘ ‚datum‘ ). – proto musí DRAC123 ohraničen apostrofy ‚DRAC123‘
- EvidCislo like ‚DRAC123‘
- Procento (%) – zástupný znak pro jakýkoliv text (jakkoliv dlouhý) včetně prázdného textu. Syntaxe při hledání kupříkladu evidenčního stroje začínajícího na písmenu D a dále pokračuje libovolným znakem by byl:
- EvidCislo like ‚D%‘
- Podtržítko (_) –zástupný znak pro jakýkoliv text (nahrazuje pouze JEDEN znak) včetně prázdného textu. Podtržítek může být za sebou i více a dá se kombinovat i s %. Syntaxe při hledání kupříkladu evidenčního čísla stroje, který má ve třetím znaku písmeno D a dále pokračuje libovolným znakem by byl:
- EvidCislo like ‚___D%‘
- BETWEEN – použijeme k definování rozsahu, který je spojitý. Pomocí tohoto filtru si mohu vyfiltrovat rozsah nějakých hodnot. Syntaxe při hledání kupříkladu pořadových hlášení mezi číslem 1 až 15 (vyfiltrují se mi všechna hlášení s pořadovým číslem od 1 do 15 – včetně) by byl:
- PorHlas between 1 and 15
- IN – používáme k definování hodnot, které jsou diskrétní – nespojité. Pomocí tohoto filtru si mohu vyfiltrovat konkrétní hodnoty. Syntaxe při hledání kupříkladu čísel pořadového hlášení 1, 6 a 9 (vyfiltrují se mi pouze tyto tři konkrétní) by byl:
- PorHlas in (1,6,9)
Syntaxe při hledání konkrétních textových hodnot (vyfiltrují se mi pouze tyto dvě konkrétní a text musí být v apostrofech) by byl:
- EvidCislo in (‚0002′,’0003‘)
- DATUM (Konkrétní den) – Pokud bych potřeboval filtrovat podle nějakého konkrétního data, kupříkladu 30.10.2019, syntaxe by byl:
- CAST(Kdy AS DATE) = DATE’2019-10-30′
- DNEŠNÍ DATUM – Pokud bych potřeboval filtrovat podle dnešního (aktuálního) data, syntaxe by byl:
- CAST(Kdy AS DATE) = CURRENT_DATE
- MENŠÍ NEŽ DNEŠNÍ DATUM – Pokud bych potřeboval vyfiltrovat všechna data menší než dnešní datum syntaxe by byl:
- CAST(Kdy AS DATE) < CURRENT_DATE
- MENŠÍ NEŽ DNEŠNÍ DATUM a aktuální čas – Pokud bych potřeboval vyfiltrovat všechna data menší než dnešní datum a zároveň menší než aktuální čas, syntaxe by byl:
- Kdy < CURRENT_TIMESTAMP
- Větší a rovno než včerejší datum– Pokud bych potřeboval vyfiltrovat všechna data větší a rovné včerejšímu datu, syntaxe by byl:
- CAST(Kdy AS DATE) >= (CURRENT_DATE – INTERVAL – ‚1‘ DAY)
- místo jedničky mohu použít jakékoliv číslo
- mínus před slovem interval mohu nahradit i plusem, což by k datu naopak počet dní přičetl.
- CAST(Kdy AS DATE) >= (CURRENT_DATE – INTERVAL – ‚1‘ DAY)
- KONKRÉTNÍ ČAS – Pokud bych potřeboval filtrovat podle konkrétních časů, syntaxe by kupříkladu byl:
- (CAST(Kdy AS TIME) > TIME’18:00:00′ AND CAST(Kdy AS TIME) < TIME’22:00:00′
- CURRENT_DATE– aktuální datum
- CURRENT_TIME– aktuální čas
- CURRENT_TIMESTAMP– aktuální datum a čas
- Filtrace všech položek kromě jedné– Pokud bych potřeboval filtrovat všechny položky v hlášení podle typu řešení kromě nějakého jednoho konkrétního typu (třeba typ řešení Havárie), syntaxe by kupříkladu byl:
- TypHlas<>’Havárie‘ OR TypHlas IS Null
- <> (tato znaménka mi říkají, že chci filtrovat hodnoty větší nebo menší než Havárie)
- OR TypHlas IS Null (Tímto se nám vyfiltrují i nulové položky, které jinak znaménka <> neberou v potaz. Takže bych po vyfiltrování neviděl hlášení, která Typ řešení nemají zadaný)
- TypHlas<>’Havárie‘ OR TypHlas IS Null
Tabulka pro usnadnění práce s SQLfiltry
operátor | symbol | příklad | |
text | LIKE | „%“ nebo „_“ | EvidCislo like ‚00%‘ |
EvidCislo like ‚000_‘ | |||
EvidCislo like ‚_00%‘ | |||
EvidCislo like ‚%05%‘ | |||
text a čísla | IN | PorHlas in (1,2) | |
EvidCislo in (‚0002′,’0003‘) | |||
čísla | BETWEEN | PorHlas between 5 and 10 |
Příklad SQL Filtru
Příklad pro použití v seznamu hlášení. Přes tlačítko „Filtr“ zobrazit okno pro zadávání filtrů. Přejít do záložky „Pro Pokročilé“ a zaškrtnout „SQL filter“ a zadat SQL filtr.
Chtěl bych si kupříkladu pomocí SQL filtru vyfiltrovat:
- nevyřízená hlášení
- starší než týden
Výběrová podmínka by vypadala takto:
Vyrizeno=False AND CAST(Kdy AS DATE) <= (CURRENT_DATE – INTERVAL – ‚7‘ DAY)
Filtr si mohu buď uložit (tlačítko s disketou) nebo jej rovnou aktivovat (tlačítko s lupou)
Pokud bych chtěl k filtru přidat ještě podmínku, aby se mi vyfiltrovala všechna umístění kromě umístění H2, pak by výběrová podmínka vypadala takto:
Vyrizeno=False AND CAST(Kdy AS DATE) <= (CURRENT_DATE – INTERVAL – ‚7‘ DAY) AND (Umisteni<>’H2′ OR Umisteni IS NULL)