MASARYKOVA UNIVERZITA FAKULTA INFORMATKY
BAKALÁŘSKÁ PRÁCE
Služební evidence cest
Brno 2006
Tomáš KRAJÍČEK
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje a literatura, ze kterých jsem při práci čerpal jsou uvedeny v části reference.
Vedoucí práce: RNDr. Jaroslav Pelikán, Ph.D. ii
Shrnutí Obsahem této práce je analýza, návrh a implementace systému pro evidenci cest. Data jsou získávána zadáváním podle údajů, které poskytli řidiči vozidla. Tyto údaje jsou uloženy v databázi programu. Systém umožňuje data zadávat a po té pomocí filtrů s nimi pohodlně pracovat. V textové části je popsán návrh systému včetně datového modelu a součástí je program, umístěný na CD.
iii
Obsah 1 2
Úvod do problematiky ......................................................................................................... Současná situace a právní podklady ................................................................................... 2.1 Soukromý vůz užitý k podnikání .................................................................................. 2.2 Cíl práce ........................................................................................................................ 2.3 Definice pojmů ............................................................................................................. 2.4 Požadavky na program ................................................................................................. 2.5 Export dat ..................................................................................................................... 2.5.1 Tiskové výstupy ............................................................................................... 2.5.2 Soubory CSV.................................................................................................... 3 Datový rozbor ....................................................................................................................... 3.1 Vztahy entit .................................................................................................................. 3.2 Vlastnosti entit .............................................................................................................. 3.2.1 Centrální tabulka Jizdy ..................................................................................... 3.2.2 Tankovano ........................................................................................................ 3.2.3 Trasa................................................................................................................. 3.2.4 Filtry ................................................................................................................. 3.2.5 Typy ................................................................................................................. 3.2.6 Ridic. ................................................................................................................ 3.2.7 Auto .................................................................................................................. 3.3 Zdůvodnění návrhu datového modelu .......................................................................... 4 Zvolené technologie .............................................................................................................. 4.1 Borland Delphi ............................................................................................................. 4.2 OLE DB ........................................................................................................................ 4.3 ADO ............................................................................................................................. 4.4 SQL .............................................................................................................................. 4.5 Quick Report ................................................................................................................ 5 Návrh rozhraní aplikace ...................................................................................................... 5.1 Hlavní okno .................................................................................................................. 5.2 Auta .............................................................................................................................. 5.3 Řidiči ............................................................................................................................ 5.4 Tankování ..................................................................................................................... 5.5 Trasy ............................................................................................................................. 5.6 Typy .............................................................................................................................. 5.7 Filtry ............................................................................................................................. 5.8 Editace filtrů ................................................................................................................. 6 Srovnání s podobnými produkty ........................................................................................ 6.1 Základní požadavky na programy pro evidenci cest .................................................... 6.2 Společné funkce systémů ............................................................................................. 6.3 Nadstandardní funkce ................................................................................................... 6.4 Závěrečné srovnání všech programů ............................................................................ 7 Závěr ...................................................................................................................................... Reference ....................................................................................................................................... A Obsah přiloženého CD ............................................................................................................ B Popis instalace .......................................................................................................................... C Systémové požadavky ..............................................................................................................
4 5 5 6 6 6 7 7 7 8 8 8 8 10 10 11 11 12 12 13 14 14 14 14 14 14 15 15 16 16 16 17 17 17 17 18 18 18 18 21 22 23 24 25 26
1
Seznam obrázků 3 Datový rozbor……....…………………………………………………………. 3.1 ER Diagram 8 5 Návrh rozhraní aplikace……………………………………………………….. 5.1 Hlavní okno 15 5.1. Zobrazení look-up pole 15
2
Seznam tabulek 3 Datový model………………………………………………………………….. 3.2.1 Atributy entity Jizdy 9 3.2.2 Atributy entity Tankovano 10 3.2.3 Atributy entity Trasa 10 3.2.4 Atributy entity Filtry 11 3.2.5 Atributy entity Typy 11 3.2.6 Atributy entity Ridici 12 3.2.7 Atributy entity Auto 13 6 Srovnání s podobnými produkty………………………………………………. 6.4 Srovnání funkcí 21
3
1 Úvod do problematiky
Kapitola 1 Úvod do problematiky V současnosti mají majitelé služebních vozidel zákonem danou povinnost zaznamenávat údaje o cestách, které auta vykonávají. Tento účetní doklad slouží finančnímu úřadu ke kontrole, zda není vůz neoprávněně používán k soukromým účelům. Soukromě lze služební vůz použít, ale jen za předpokladu, že to majitel svými stanovami umožňuje a zároveň musí být soukromé cesty řádně zaznamenány a celkové náklady na provoz vozidla sníženy o podíl soukromých cest. Zákonem nařízená evidence má hned několik úskalí. Většina živnostníků a firem záznamy uchovává v písemné podobě v takzvané knize jízd, což je tiskopis obsahující předtištěné listy formuláře, do nichž jsou údaje o cestě vypisovány. Ručně psaná kniha jízd se ale může ztratit nebo poškodit, může obsahovat chybné údaje nebo některé záznamy mohou chybět úplně. Nastávají pak problémy se zpětnou rekonstrukcí dat nebo kontrolou správnosti údajů. Program Jízdy je elektronickou verzí knihy jízd, která přidává mnoho výhod. Nejvýznamnějším přínosem je kontrola správnosti dat (návaznosti kilometrů, tankování), dále jednoduchost zadávání pomocí předem vložených šablon a v neposlední řadě také snadné třídění a prohlížení dat pomocí filtrů. Účelem programu je pomoci při shromažďování dat ze zapsaných poznámek řidičů a zajistit jejich správnost, v opačném případě rychlou nápravu, dokud je řidič schopen psanou chybu opravit z paměti.
4
2 Současná situace a právní podklady
Kapitola 2 Současná situace a právní podklady V současné době dle platného zákona č. 111/1994 Sb. a vyhlášky č. 187/1994 Sb. mají majitelé vozidel v obchodním majetku, pořízené na leasing, v nájmu či vypůjčené, povinnost vést záznamy o provozu vozidla. Pokud je vozidlo využito k soukromým účelům, musí to být v záznamech uvedeno. Po té se celkové náklady sníží právě o podíl soukromých cest. V případě, že je k podnikání využito soukromé vozidlo, je povinnost vést záznamy také, ale na rozdíl od výše uvedených případů, jen o služebních cestách. Kniha jízd tedy slouží k zjištění, kolik bylo ujeto kilometrů služebně a kolik soukromě. Vše z důvodu, aby nebyl základ daně snižován o soukromé jízdy. Proto je třeba soukromé a služební jízdy důsledně oddělovat. V případě falšování údajů existuje mnoho způsobů, jak mohou úředníci dokázat opak. Mimo pravomoci vyžádat si servisní knihu pro důkaz ujetých kilometrů může být nekorektní zápis odhalen například fotografií při dopravním přestupku na druhé straně republiky, při jízdě jiné než je zapsána v evidenci. Takové jednání je v rozporu se zákonem a je charakterizováno jako daňový únik. Zákon nevyžaduje knihu jízd v tištěné podobě. To odpovídá moderním trendům, kdy jsou kvalitní systémy schopny s pomocí technologií GPS a GSM vést knihu jízd v podstatě téměř automaticky. Existuje i řada programů pro mobilní telefony a přenosné počítače umožňující úplně vynechat část procesu, kdy řidič musí údaje o jízdě před zápisem do aplikace uchovávat na papíře či v paměti. Přesto však díky jednoduchosti ručního zápisu dat do tištěné knihy, mnoho firem využívá již zmíněný dvoufázový proces, v němž jsou data nejprve vepsána do jednotlivých tiskopisů ve vozidlech a následně přepsána do elektronické podoby pomocí některého z evidenčních systémů. Správná evidence musí být uspořádaná chronologicky a musí souhlasit na sebe navazující data, hlavně stav kilometrů. Pokud je kniha v tištěné podobě, nesmí chybět identifikace řidiče. Důležitý je fakt, že není třeba mít knihu jízd s sebou ve voze pro případ dopravní kontroly, hlavně z již zmíněné možnosti zapisovat data do mobilních zařízení. Tištěná forma v aute by pak byla jen zbytečnou kopií.
2.1 Soukromý vůz užitý k podnikání K podnikání lze využít i soukromý vůz, ale je třeba respektovat dvě věci. Vzniká povinnost platit silniční daň a uchovávat doklady od tankování pro vyúčtování. V opačném případě se cena pohonných hmot stejně jako amortizace vozidla určuje podle tabulek ministerstva financí.
5
2 Současná situace a právní podklady
2.2 Cíl práce Cílem práce je navržení programu, který umožňuje podnikům s vyšším počtem služebních vozidel sledovat jednotlivá vozidla, ujeté kilometry a čerpání pohonných hmot. K tomu má pomoci i samotná elektronická forma uchovávaných dat. Díky ní je program schopen kontrolovat potřebnou návaznost dat a pomocí filtrů zobrazovat jen relevantní data a tak v nich usnadnit orientaci.
2.3 Definice pojmů Seznam a definice důležitých pojmů. •
Kniha jízd – elektronická nebo tištěná forma evidence jízd vykonaných lužebními nebo soukromými automobily
•
Soukromá jízda – cesta konaná za soukromým účelem
•
Služební jízda – cesta konaná v souvislosti s výkonem povolání nebo cesta potřebná pro údržbu vozidla
2.4 Požadavky na program Program má umožnit jednoduché a rychlé zadávání údajů o vykonané cestě, dále třídění dat pomocí filtrů, například podle řidičů, aut nebo zadaného časového období. Výstup dat je možný v běžném formátu CSV, který je možno editovat jak v tabulkovém procesoru Microsoft Excel, tak i v ostatních kancelářských balíčcích jako je například OpenOffice. Další požadavky lze shrnout do následujících bodů: •
databáze tras a zadávání cest příslušným výběrem
•
filtrování zobrazení podle zadaných kritérií
•
evidence tankování a jejich přiřazování konkrétní jízdě
•
uchovávání podrobných údajů o řidičích a vozidlech
•
tisk vybraného zobrazení
•
export vybraného zobrazení
•
kontrola stavu paliva
•
přepočet kilometrů pro zajištění návaznosti
6
2 Současná situace a právní podklady
2.5 Export dat 2.5.1 Tiskové výstupy I když zákon knihu jízd v tištěné podobě nepožaduje, je možnost tisku knihy jízd důležitá. Program umožňuje tisk v klasické tiskové sestavě, kde stránka obsahuje záhlaví s názvem filtru zobrazení, se kterým je tisknuta. Následuje tabulka obsahující sloupce datum, trasa, počáteční a koncové kilometry, ujeto kilometrů, řidič, typ trasy a případné tankování. Pokud je na pracovní stanici nainstalován Adobe Acrobat Distiller, lze provést export do formátu PDF.
2.5.2 Soubory CSV Protože formát XLS firmy Microsoft je uzavřený a je velmi náročné připravit program, který by byl schopen korektního exportu do všech jeho verzí, byla zvolena varianta exportu do formátu CSV. Jedná se o textový soubor, kde jsou jednotlivá pole řazena za sebou a oddělována standardním oddělovačem. Tento soubor je sice pro prohlížení méně vhodný, ale vzhledem k jeho univerzálnosti je dobrým kompromisem pro případný import dat do jiné databáze či archivování.
7
3 Datový rozbor
Kapitola 3 Datový rozbor 3.1 Vztahy Entit Entita Jizdy představuje jeden řádek v knize jízd. Každá taková jízda obsahuje právě jednoho řidiče, právě jedno auto a právě jednu trasu. Typ a Tankovano není pro knihu jízd povinný a tudíž je kardinalita relace Typ – Jizdy a Tankovano – Jizdy 0,1:N. Ostatní údaje, které jsou pro specifikaci jízd použity jsou standardními atributy.
Obrázek 1: ER Diagram
3.2 Vlastnosti entit 3.2.1 Centrální tabulka jízdy Jizdy je nejdůležitější entita datového modelu. Definuje každou jízdu, která byla s vozem vykonána a obsahuje všechny zákonem předepsané údaje o ní. Její atributy lze rozdělit na dva druhy. První obsahují primární klíče, ukazující na příslušné entity a pro přehlednost je vždy tento atribut v tabulce jízdy reprezentován nějakým vhodně zvoleným identifikátorem, druhý typ obsahuje jednotlivé hodnoty. Ridic definuje osobu, která vůz při konkrétní jízdě řídila. Vzhledem k tomu, že zákon omezuje jízdu pouze na jednoho řidiče, je zde možný výběr pouze jednoho 8
3 Datový rozbor z nich a při případném vystřídání je nutné jízdy od sebe oddělit. V tomto případě je jako identifikace řidiče zvoleno jeho jméno. Podobně jako Ridic funguje i atribut Auto, který představuje vůz, se kterým byla jízda vykonána. Jako jednoznačný identifikátor vozu je zvolena jeho registrační značka uložena v atributu SPZ entity Auto. Pole Trasa obsahuje popis míst odkud a kam vůz jel a v tabulce jízd je pole reprezentováno popisem jízdy. Atribut Tankovano je pole informující o případném doplňování pohonných hmot na cestě. Každé tankování je zobrazeno jako počet načerpaných litrů. V případě, že nebylo tankováno, je toto pole rovno nule. Posledním atributem tohoto druhu je Typ jízdy a je stejně jako Trasa reprezentováno popisem a stejně jako Tankovano není v tabulce jízd povinné, tudíž pokud není zvoleno má atribut hodnotu 0. Datum obsahuje informaci o datu, kdy byla jízda vykonána. Vzhledem k tomu, že zákon opět stanovuje maximální dobu trvání jedné jízdy na jeden den, je i atribut datum omezen na jediný den a není proto možno vybrat pro jízdu delší časový úsek. V případě potřeby by situace byla řešena rozepsáním jízdy na dvě časti před půlnocí a po ní. Atributy Pocatecni stav a Koncovy stav definují stav tachometru na začátku a na konci jízdy. Lze je zadat buď přímo v tabulce, přičemž Koncovy stav je automaticky dopočítán ze znalosti délky jízdy a stavu tachometru na počátku jízdy, nebo druhý způsob zadání je nezadávat ani jednu z hodnot a nechat je dopočítat funkcí přepočtu. Poslední dvě pole Stav nadrze a Dojezd jsou atributy, které nelze editovat a jsou počítány z ostatních údajů. Reprezentují aktuální stav pohonných hmot v nádrži a odhadovaný počet kilometrů, který lze s tímto množstvím ujet. Atribut
Datový typ
ID
Automatické číslo
Auto
Číslo
Ridic
Číslo
Datum
Datum a čas
Trasa
Číslo
Najeto
Číslo
Tankovano
Číslo
Pocatecni stav
Číslo
Koncovy stav
Číslo
Stav nadrze
Číslo
Dojezd
Číslo
Typ
Číslo Tabulka 1: Atributy entity Jízdy
9
3 Datový rozbor
3.2.2 Tankováno Entita Tankovani popisuje všechny doplňování paliva, které mohou být přiřazeny konkrétní jízdě a být tak s ní svázány, čímž je zachována integrita dat. Vlastnosti popisující každé tankováni jsou následující. ID je primární klíč, na který ukazuje atribut Tankovano entity Jizdy v případě, že bylo tankování s jízdou svázáno. Atribut Auto obsahuje ID vozidla, se kterým bylo tankováno. Datum určuje kdy bylo tankováno. Pole Misto je pole obsahující informaci o přesném místě tankování. Pokud je tankování svázáno s konkrétní jízdou, obsahuje pole Prirazeno ID entity Jizdy. Atribut Na trase obsahuje ID trasy, na které bylo tankováno a Mnozstvi udává počet načerpaných litrů paliva.
Atribut
Datový typ
ID
Automatické číslo
Auto
Číslo
Datum
Datum a čas
Místo
Text
Prirazeno
Číslo
Na trase
Číslo
Mnozstvi
Číslo
Tabulka 2: Atributy entity Tankovano
3.2.3 Trasa Entita Trasa definuje místa odkud, přes co a kam vozidlo jelo. Každou trasu lze libovolně dále rozepsat na více menších jízd v závislosti na přání uživatele a potřebě detailně analyzovat náklady na provoz vozidla. Možnosti jsou od jedné jízdy denně, ve které jsou vyjmenována všechna místa, kde vozidlo bylo, až po podrobné členění, kdy každá zastávka ukončuje jízdu. Všechny trasy jsou charakterizovány primárním klíčem ID. Atribut Popis obsahuje soubor všech míst odkud, kam a přes co vozidlo jelo. Km po té udává přednastavenou hodnotu kilometrů, kterou trasa za normálních podmínek měří. V případě objížďky na trase či jiného důvodu odchýlení se od standardní délky trasy, lze tento údaj v tabulce Jizdy libovolně editovat.
Atribut
Datový typ
ID
Automatické číslo
Popis
Text
Km
Číslo Tabulka 3: Atributy entity Trasa
10
3 Datový rozbor
3.2.4 Filtry Entita Filtry není s entitou jízdy nijak propojena. Slouží pouze k uchovávání informací u uložených filtrech. Obsah tabulky Jizdy a potažmo i tabulky tiskových sestav lze třídit podle čtyř kritérií. Jsou to datum, řidič, auto a typ jízdy. Každé kritérium je definováno dvěma atributy. První určuje hodnotu, podle které je filtrována a druhá, zda je tato hodnota pro třídění použita. Jedinou výjimku tvoří Datum, které se skládá z počátečního a koncového data, tvořícího období zobrazených jízd. Primární klíč ID je v tomto případě použit pro jednoznačnou identifikaci filtru a také pro uložení do .ini souboru, ve kterém je nastavení filtrů uchováváno.
Atribut
Datový typ
ID
Automatické číslo
DatumOd
Datum a čas
DatumDo
Datum a čas
Popis
Text
Ridic
Číslo
Auto
Číslo
Typ
Číslo
FiltrovatDatum
Ano/Ne
FiltrovatAuto
Ano/Ne
FiltrovatRidice
Ano/Ne
FiltrovatTyp
Ano/Ne
Tabulka 4: Atributy entity Filtry
3.2.5 Typy Entita typ popisuje zákonem povinnou vlastnost jízdy. Ta určuje, zda jde o jízdu soukromou či služební, tedy zda se náklady na jízdu budou započítávat do odečitatelného základu daně. Zákon vyžaduje pouze členění na soukromé a služební jízdy, avšak atribut umožňuje libovolně podrobné členění podle potřeb uživatele. Z důvodu správného zobrazení v tiskových sestavách je pole Popis omezeno na 10 znaků. Atribut
Datový typ
ID
Automatické číslo
Popis
Text Tabulka 5: Atributy entity Typy
11
3 Datový rozbor
3.2.6 Řidiči Entita Ridici charakterizuje všechny osoby, které mají řidičské oprávnění a jsou právnickou osobou pověřeni řídit služební vozidlo. Každý řidič je definován následující skupinou atributů. ID je primární klíč. Vlastnost Jmeno je souborem křestního jména, příjmení a případné tituly. Vzhledem k tomu, že pole má čistě informativní charakter a slouží pro reprezentaci entity v tabulce jízd, není jméno rozděleno podle požadavků 1. normální formy. Atribut Poznamka slouží k internímu rozlišení řidičů, zejména v případě více řidičů stejného jména. V poli Skupiny jsou uloženy všechny skupiny řidičského oprávnění, které daný řidič vlastní. Bydliste a Telefon jsou další pole, obsahující podrobné informace o řidiči.
Atribut
Datový typ
ID
Automatické číslo
Jmeno
Text
Poznamka
Text
Skupiny
Text
Bydliste
Text
Telefon
Text Tabulka 6: Atributy entity Ridici
3.2.7 Auta Entita Auta popisuje každé vozidlo, které je registrováno v České Republice.Dále vozidlo musí být vlastněno firmou či živnostníkem a je používáno pro služební účely. Vozidlo je definováno následujícími atributy. ID je primárním klíčem. Nazev charakterizuje značku a typ vozidla. Vzhledem k možnému většímu počtu vozidel stejné značky a typu ve vozovém parku byl přidán i atribut Popis, který umožňuje interní rozlišení vozidel například podle barvy. Bez něj by jediným rozlišovacím znakem bylo pole SPZ, ovšem vzhledem k číselnému formátu a velkému počtu vozů není registrační značka vhodným rozlišovacím znakem. Vlastnost Spotreba udává průměrnou spotřebu vozidla, pomocí které je kalkulován aktuální stav paliva. Ten je uložen v Nadrz stav. Pro kontrolu, zda není natankováno více paliva, než je kapacita nádrže je implementován atribut Nadrz, který udává kapacitu. Tyto údaje slouží pro přehled o aktuálním stavu paliva a správnosti zapsaných tankování. Poslední tři atributy uchovávají podrobnější informace o vozidle. Údaj o typu paliva pro dané auto vyžaduje zákon. Technicka udává datum, do kdy má vůz platnou technickou kontrolu a Garance značí stav tachometru na kdy je naplánována další garanční prohlídka.
12
3 Datový rozbor
Atribut
Datový typ
ID
Automatické číslo
Nazev
Text
SPZ
Text
Popis
Text
Spotreba
Číslo
Nadrz
Číslo
Nadrz stav
Číslo
Palivo
Text
Technicka
Datum a čas
Garance
Číslo Tabulka 7: Atributy entity Auto
3.3 Zdůvodnění návrhu datového modelu Výše popsaný datový model byl zvolen tak, aby co možná nejvíce kopíroval strukturu dat používanou v tiskopisech, do kterých řidiči údaje o jízdách zapisují. Tento postup umožní snadnou orientaci v datech a také jednoduché přepisování dat do elektronické formy. Datový model sice nevyhovuje 1. normální formě, ale pouze v některých atributech a výlučně v těch, které mají čistě informativní charakter a nejsou užity k žádným výpočtům či operacím, jako je například filtrování záznamů SQL dotazem. Příkladem jsou skupiny v tabulce řidiče. Atribut informuje o tom, jaké skupiny řidičského oprávnění daný řidič vlastní. Má formu textového pole a uživatel zadává skupiny jako znaky separované oddělovačem. Řešení, které by splňovalo 1. normální formu by zkomplikovalo datový model hned v několika ohledech, jež by převážily výhody.
13
4 Zvolené technologie
Kapitola 4 Zvolené technologie 4.1 Borland Delphi Delphi jako grafické vývojové prostředí firmy Borland, určené k tvorbě aplikací na platformě MS Windows v jazyce Object Pascal, bylo zvoleno pro svou univerzálnost a přehlednost při tvorbě programů s využitím celé řady komponent.
4.2 OLE DB Technologie OLE DB byla zvolena pro svou otevřenou architekturu, umožňující vytvořit konzumenta, v tomto případě program Jízdy schopného nezávisle na své implementaci pracovat s libovolnými daty. Poskytovatelem dat je v tomto případě MS Jet přistupující k MS Access. Pokud by se poskytovatel změnil, lze jednoduchým nastavením OLE DB změnit zdroj dat při zachování implementace programu.
4.3 ADO Komponenta Delphi ADO je konzumentem OLE DB rozhraní, která dále poskytuje nová rozhraní, umožňující nepřímo pracovat s OLE DB poskytovateli, tedy především s jejich daty. ADO je mnohem jednodušší než OLE DB, avšak rozsah funkcí je téměř stejný jako při přímém použití OLE DB rozhraní. V některých případech je dokonce rozšířena, když ADO pomocí jiných OLE DB poskytovatelů organizuje ostatní zdroje. V případě programu Jízdy je ADO náhradou dnes již zastaralého prostředí Borland Databáze Engine.
4.4 SQL SQL je vhodný nástroj pro použití při filtraci uložených dat umožňující podle přání uživatele přehledně zobrazit jen požadovaná data.
4.5 QuickReport Pro vytvoření tiskových sestav byl použit nástroj Delphi Quick Report. Jeho vývoj byl sice ukončen, přesto nabízí velmi pohodlnou a spolehlivou spolupráci s databází pro vytváření graficky přehledných výstupů. Konkrétně komponenta QRep umožňuje pomocí nastavení vlastností vytvořit formulář, do kterého se z databáze načtou data a je připraven pro náhled tisku. Nástroj také umožňuje pohodlnou volbu tiskárny a jejich vlastností.
14
5 Návrh rozhraní aplikace
Kapitola 5 Návrh rozhraní aplikace 5.1 Hlavní okno Hlavnímu oknu dominuje tabulka se záznamy o jízdách. Každý záznam obsahuje všechny informace o dané jízdě, které se dají rozdělit na dva typy. První jsou pole obsahující ID záznamů z dalších tabulek. Jsou to řidiči, auta, trasy,typy a případně tankování. Pro přehlednost je z každé tabulky vybráno pole, které nahrazuje v zobrazení tabulky jízd příslušné ID.
Obrázek 2: Hlavní okno aplikace Pole se vyplňují tak, že po kliknutí na dané pole se objeví okno, tzv. lookup, ve kterém jsou všechny předvolené hodnoty a uživatel si jednu z nich vybere.
Obrázek 3: Zobrazení look-up pole Druhým typem polí jsou takové, do kterých se informace vepisují. Je to datum, jehož zadání je ulehčeno zobrazením komponenty TdateTimePicker, pole najeto, což je údaj o délce trasy načtený z údajů vybrané trasy, jež lze, v případě odchylky od udávané hodnoty (například z důvodu objížďky na trase), změnit. Pokud se jedná 15
5 Návrh rozhraní aplikace o první zaznamenanou jízdu vozidla, je třeba zadat počáteční kilometry. Koncové kilometry jsou stejně jako počáteční (u jízdy, která není první) kalkulovány, stejně tak i údaje stavu nádrže a dojezdu vozidla. Stav palivové nádrže má čistě informativní charakter a slouží hlavně pro přehled uživatele ohledně tankování. Z důvodu počítání stavu nádrže z údaje o průměrné spotřebě vozidla, jsou možné individuální odchylky. Hodnotu průměrné spotřeby lze však aktualizovat a ze zkušeností vyplývá, že pro informativní účely je tento způsob výpočtu dostatečně přesný. Nad centrální tabulkou s jízdami se nachází řada tlačítek zobrazujících příslušné editační dialogy, hned pod nimi je komponenta DBNavigatror umožňující přehledným a pohodlným způsobem manipulovat s jednotlivými záznamy databáze. Následuje tlačítko spouštějící nejrozsáhlejší funkci programu zajišťující přepočet údajů pro právě vybrané vozidlo.
5.2 Auta Tabulka obsahuje základní a zákonem vyžadované údaje o vozidlu. Údaje lze kdykoli libovolně měnit. Je však nutné mít na paměti, že v tabulce jízdy je každé vozidlo reprezentováno svým ID. Při každé změně se mění vlastnosti vozu, což ovlivní všechny jízdy auta s daným ID.
5.3 Řidiči Na stejném principu jako auta funguje i tabulka řidičů. Seznam obsahuje kromě jména řidiče také bližší údaje o jeho osobě včetně skupin řidičského oprávnění.
5.4 Tankování Tankování se na první pohled podobá předešlým dvěma tabulkám, avšak na rozdíl od nich implementuje ještě další dvě funkce. První je skrytí všech tankování, která jsou svázaná s určitou jízdou. Takto přiřazenou jízdu již není možno editovat a proto je implementováno i tlačítko rušící přiřazení jízdy. Toto tlačítko lze použít i v případě, že jízda, které bylo tankování přiřazeno, byla zrušena a je třeba její údaje změnit.
16
5 Návrh rozhraní aplikace
5.5 Trasy Tabulka trasy obsahuje u každého záznamu jen popis trasy a údaj o délce trasy v kilometrech. Vzhledem k potenciálně velkému množství tras je implementován lokální filtr umožňující zobrazit jen jízdy, které odpovídají požadovaným kritériím. Kritérii může být buď řetězec znaků obsažený v trase nebo filtr kilometrů implementující základní funkce větší, menší nebo rovno. Vybraná data lze setřídit podle popisu, kilometrů či jejich kombinace, a to sestupně či vzestupně.
5.6 Typy Typy jízd jsou nejjednodušší tabulkou obsahující pouze legislativou vyžadované typové určení jízdy.
5.7 Filtry Filtry jsou funkčně nejkomplikovanější součástí programu. Umožňují zobrazení jen relevantních jízd podle uživatelem zadaných kritérií. Vzhledem k množství kritérií, která lze ve filtru nastavit, je tabulka filtry jen seznam filtrů s možností jejich aktivace či zrušení, popřípadě přejmenování. Pro samotné nastavení filtru slouží editační dialog, který se zobrazí při stisku editačního tlačítka.
5.8 Editace Filtrů Okno obsahuje kromě popisu filtru, který je mimo jiné užit i při tisku, volbu čtyř filtračních kritérií. Jsou to datum, auto, řidič a typ. Tyto vlastnosti lze libovolně kombinovat.
17
6 Srovnání s podobnými produkty
Kapitola 6 Srovnání s podobnými produkty 6.1 Základní požadavky na programy pro evidenci cest Všechny programy musí splňovat zákonem dané požadavky na evidenci cest. Zákon stanovuje povinnost evidovat cesty a podrobnosti o nich, aby bylo možné stanovit podíl soukromých a služebních cest, ze kterého je následně vypočítán podíl daně. Většina programů však implementuje řadu nadstandardních funkcí, které přináší větší efektivitu práce.
6.2 Společné funkce systémů evidence cest Každý program je schopen uchovávat údaje pro minimálně jedno vozidlo. Každý záznam obsahuje datum, kdy se jízda uskutečnila, popis trasy jízdy, jméno řidiče, stav tachometru na začátku a na konci jízdy a případně i informaci o čerpání pohonných hmot. I když zákon nestanovuje povinnost tiskového výstupu, všechny seriózní programu tuto možnost mají. Je zjevné, že základní požadavky na programy jsou vcelku jednoduché a pokud by nebyly implementovány žádné další funkce, nelišila by se v zásadě tato forma evidence cest od běžného vyplňování tiskopisů řidičem. Opravdový přinos dat v elektronické podobě spočívá ve velkém spektru možností, jak s daty nakládat a umožnit tak práci s nimi výrazně zrychlit a zpříjemnit.
6.3 Nadstandardní funkce Možnost zobrazení více vozidel najednou Funkce je přínosná zejména pro větší podniky s více vozidly, kdy dochází k velké variabilitě ve vztahu řidič a vozidlo. Je dobré mít pro přehled možnost zobrazit všechny jízdy konkrétního řidiče nezávisle na vozidle, což zvyšuje nároky na program a je to proto záležitostí robustnějších systémů. V řadě z nich je pak počet vozidel omezen, zpravidla podle licenčních podmínek.
Aktuální stav nádrže Mnoho systémů umožňuje na základě dat o tankování, průměrné spotřebě vozidla a ujetých kilometrech zobrazovat aktuální stav pohonných hmot v nádrži. Tento orientační údaj pomůže při hledání chyb v tankování. Upozorní na záporný stav, indikující chybějící záznam tankování, či překročení kapacity nádrže, což znamená chybějící záznam o jízdě mezi dvěma tankováními. 18
6 Srovnání s podobnými produkty Zálohování dat Téměř všechny komerční produkty v dnešní době umožňují zálohování databáze exportem do souboru. Toto je vhodné zejména při implementaci databáze, například pomocí SQL serveru. V případě použití databáze, uložené v jediném souboru či složce lze provést toto prostým zálohováním souboru či složky. Není proto nutné funkci v programu implementovat.
Databáze cest První z funkcí, které se nabízejí, je možnost uchovávat seznam míst či tras, které dané vozidlo absolvuje často a opakovaně. Tím odpadne nutnost vždy zadávat všechny údaje o trase, jako je její délka a popis tratě. Zadání cesty je pak otázkou prostého výběru ze seznamu. V tomto případě je použito dvou základních přístupů. První uchovává seznam jednotlivých míst a zadání trasy je pak realizováno výběrem výchozího a cílového bodu, popřípadě míst, kudy trasa vede. Výhodou tohoto přístupu je možnost implementace celé databáze měst a obcí ČR. Tímto jsou data vybírána z paměti programu a není tak prostor pro duplicity, kdy například uživatel při zápisu místa použije diakritiku a podruhé ne. Nevýhodou tohoto přístupu je velké množství záznamů v databázi míst a v situaci, kdy auto podniká velmi málo druhů cest s velkou frekvencí, pak výběr z míst zdržuje. V takovém případě by se hodil druhý přístup, kdy jsou v paměti uchovávány celé trasy a zadání je otázkou výběru jedné z několika uložených možností. V případě velké variability cest, kdy se mohou lišit jen ve výchozím nebo koncovém či dokonce jen tranzitním místě, je pak nutné do systému zapsat všechny možné varianty a výběr z nich je pak méně přehledný. Je tady zřejmé, že oba přístupy mají své výhody a nevýhody a je na uvážení uživatele, který přístup mu bude více vyhovovat.
Přiřazování tankování Jde o funkci, kdy tankování není jen atributem jízdy, ale zcela samostatnou entitou, uchovávající podrobné informace o čerpání pohonných hmot. Pokud je při jízdě tankováno, je relačním vztahem na tankování odkázáno a tudíž nehrozí ztráta integrity dat například rozdílným zadáním počtu tankovaných litrů ve výkazech o nákupu pohonných hmot a v evidenci jízd.
Mapa Pro velké množství možných tras řada systémů implementuje mapu ČR, případně okolních států. Umožňuje tak vyhledat místo, kde vozidlo bylo v případě ztráty či 19
6 Srovnání s podobnými produkty neúplných informací od řidiče vozidla. Některé programy dokonce umožňují pomoci mapy měřit vzdálenosti mezi jednotlivými místy a tak pomoci s doplňováním údajů o ujetých kilometrech. GPS Dalším vylepšením funkcí mapy je integrace funkce pro zpracování dat ze satelitního navigačního systému. Pokud jsou k dispozici data z navigačního zařízení vozidla, lze jednoduše jejich importem do programu zjistit vše potřebné a tvorba evidence je z velké části automatizovaná.
Kalendář a kalkulačka Tyto komponenty pomáhají při rekonstrukci knihy z neúplných údajů z vozidla. Jsou však implementovány ve většině dnešních operačních systémů a jejich přínos v programech je tak spíše kosmetický.
CCS Existuje také způsob, jak zjednodušit správu evidence. Je to import dat z tankovacího systému CCS. Ten umožňuje platit čerpání pohonných hmot do služebních vozidel kartou CCS a náklady jsou firmě následně fakturovány. Systém CCS zároveň uchovává údaje o tom, jaké vozidlo, kdy a kde pohonné hmoty čerpalo. Importem dat je pak vyřešena otázka zadávání informací o čerpání pohonných hmot.
Podrobné statistiky Většina komerčních systémů umožňuje data třídit podle různých kritérií a následně zobrazovat různé statistiky nad požadovanými daty. Statistiky mají formu tabulek nebo grafů a slouží k podrobné analýze cest hlavně u větších firem, které požadují precizní kontrolu nákladů na služební jízdy.
Export dat Na rozdíl od zálohování je export dat určen především pro možnost prohlížet data i mimo evidenční systém. Nejčastěji je použit některý z tabulkových procesorů. Vzhledem k jejich velkému množství a hlavně množství verzí, je často tento export řešen pomocí oddělovačem separovaných hodnot. Takováto data lze kterýmkoli tabulkovým procesorem přečíst a nehrozí potíže s kompatibilitou.
20
6 Srovnání s podobnými produkty
6.4 Závěrečné srovnání všech programů Na závěr je uvedena tabulka vybraných funkcí, které byly zvoleny jako porovnávací kritéria. Programy použité pro srovnání byly vybrány z řady komerčních produktů. Prvním programem byl Autopark 2006 START od firmy Autologis s.r.o. Tento program byl oproti plné verzi omezen na období leden až březen 2006. Druhým testovaným systémem je Kniha jízd XP 2.0 od Amantha Software, omezený tiskem. Posledním srovnávaným systémem byl Kniha Jízd od výrobce Walsoft s.r.o. Tento program byl zdarma k vyzkoušení.
Funkce programu Více řidičů / Více vozidel Aktuální stav nádrže Tisk Zálohování dat Databáze cest Přiřazení tankování Mapa / GPS CCS Kalendář Kalkulačka Podrobné statistiky Export dat
Autopark 2006 Ano / Ano Ne Ano Ano Ano Ne Ano / Ano Ano Ano Ne Ano Ne
Kniha Jízd XP Ano / Ano Ano Ano Ano Ano Ne Ano / Ne Ano Ano Ano Ano Ano
Walsoft Ano / Ano Ne Ano Ne Ne Ne Ne / Ne Ne Ne Ne Ne Ne
Jízdy Ano / Ano Ano Ano Ne Ano Ano Ne / Ne Ne Ano Ne Ne Ano
Tabulka 8: Srovnání funkcí
21
7 Závěr
Kapitola 7 Závěr Program Jízdy byl vytvořen za účelem přehledného zadávání informací o vykonaných jízdách tak, aby bylo možno se v datech dobře orientovat a mít nad nimi plnou kontrolu. Je určen zejména pro pracovníky, jejichž náplní je přepis údajů z tiskopisů, které při jízdách řidiči vyplňovali a dalších dokladů, například od tankování a podobně. I přes to, že je program oproti srovnatelným komerčním produktům jednoduchý, obsahuje všechny důležité funkce pro snadnou a pohodlnou práci se služební evidencí cest.
22
Reference Literatura [1] Ray lischner: Delphi v kostce, Computer press, Praha 2000, ISBN 80-7226-361-7 [2] Steve Teixera & Xaver Pacheco: Borland Delphi průvodce vývojáře, Kniha V-VI: DB Aplikace, Mobil Media a.s., 2002, ISBN 80-86593-10-X
Internetové zdroje [3] Internetový časopis zabývající se programováním nejen databází v Borland Delphi http://www.eternal.cz [4] Server věnující se programování v delphi od nejjednodušších až po nejsložitější příklady http://delphi.about.com/ [5]
Kurs Umíme to s delphi na serveru http://www.zive.cz
[6] Legislativní podklady ze stránek ministerstva dopravy http://www.mdcr.cz
23
Příloha A Obsah přiloženého CD Součástí této práce je CD, které obsahuje: •
\xkrajic1.pdf - Tato dokumentace ve formátu PDF
•
\install\ - Program Jízdy
•
\MS Jet\ - Instalátor balíčku MS Jet
•
\source\ - zdrojový kód aplikace Jízdy
24
Příloha B Popis instalace Program neobsahuje instalátor. Po zkopírování souborů aplikace a databáze do požadované složky se spouští souborem jizdy.exe. Pokud je program spouštěn na jiném operačním systému MS Windows než je verze XP, je nutné pro správný běh programu mít nainstalován program MS Access, nebo provést instalace balíčku MS Jet, který se nachází na přiloženém CD.
Instalace komponent Quick Report do prostředí Borland Delphi 7 Komponenty pro tvorbu tiskových sestav Quick Report již nejsou ve vývojovém prostředí Borland Delphi 7 obsaženy, avšak systém zachovává zpětnou kompatibilitu a pro jejich použití stačí přidat do prostředí jednu knihovnu dll. Postup je následující. V menu komponent – install packages, add… a po té najít soubor: c:\Program Files\Borland\Delphi7\Bin\dcltqr70.bpl. Po instalaci tohoto balíčku bude možné komponenty Quick Report používat.
25
Příloha C Systémové požadavky •
Operační systém: MS Windows 98 / ME / NT / 2000 / XP
•
Minimální HW požadavky systému MS Windows 98
26