PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY
BAKALÁŘSKÁ PRÁCE
Obchodní systém pro zpracování dokladů
2011
Roman Kamenčák
Anotace Cílem tohoto projektu je vytvořit aplikační program pro operační systém Windows, který by usnadnil administrativní práci zaměstnance obchodního řetězce Hruška, s.r.o. Zadání projektu vychází z konkrétních požadavků zaměstnance, přičemž po celou dobu vývoje byly veškeré části konzultovány a postupně v praxi testovány. V současné době je aplikační program již nasazen a plně využíván. Do budoucna se bude aplikace dále rozšiřovat na základě dalších požadavků.
Děkuji svému vedoucímu práce Ing. Jiřímu Hronkovi za dobré vedení mé bakalářské práce a jeho věcné připomínky...
Obsah 1. Zadání bakalářské práce
6
2. Důvod vzniku nové aplikace, nová aplikace vs. konkurence 2.1. Důvod vzniku aplikace . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Nová aplikace vs. konkurence . . . . . . . . . . . . . . . . . . . .
8 8 8
3. Použitý hardware a software pro vývoj aplikace 3.1. Požadavky pro spuštění . . . . . . . . . . . . . . . . . . . . . . . .
9 9
4. Realizace aplikačního programu
10
5. Uživatelská část 5.1. Instalace . . . . . . . . . . . . . . . 5.2. Odinstalace . . . . . . . . . . . . . 5.3. První spuštění a ovládání programu 5.3.1. První spuštění . . . . . . . . 5.3.2. Ovládání programu . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
13 13 14 14 14 15
6. Programátorská část 6.1. Použité technologie . . . . . . . . . . . . . . 6.1.1. Platforma .NET . . . . . . . . . . . . 6.1.2. Technologie ADO.NET . . . . . . . . 6.1.3. Databáze MS Access . . . . . . . . . 6.2. USE CASE diagramy aplikačního programu 6.3. Databáze . . . . . . . . . . . . . . . . . . . 6.3.1. Schéma databáze . . . . . . . . . . . 6.4. Popis hlavních tříd a jejich metod . . . . . . 6.4.1. Třídy formulářů . . . . . . . . . . . . 6.4.2. Třídy . . . . . . . . . . . . . . . . . 6.4.3. Vybrané třídy a jejich metody . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
22 22 22 22 23 23 26 26 28 28 28 29
. . . . .
. . . . .
. . . . .
. . . . .
Závěr
39
Conclusions
40
Reference
41
A. Obsah přiloženého CD
42
4
Seznam obrázků 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Instalace aplikačního programu . . . . . . . . . . Přihlášení k programu . . . . . . . . . . . . . . . Hlavní formulář aplikace „Obchodní systém“ . . . Formulář modulu č.1 „Doklady“ . . . . . . . . . . Formulář modulu č.2 „Stravenky“ . . . . . . . . . Formulář modulu č.3 „Pracovní výkaz“ . . . . . . Architektura knihovny ADO.NET . . . . . . . . . USE CASE hlavní formulář . . . . . . . . . . . . USE CASE modul č.1 „Doklady“ . . . . . . . . . USE CASE modul č.2 „Stravenky“ . . . . . . . . . USE CASE modul č.3 „Pracovní výkaz“ . . . . . . Schéma databáze modulu č.1 „Doklady“ . . . . . . Schéma databáze modulu č.2 „Stravenky“ . . . . . Schéma databáze modulu č.3 „Pracovní výkaz“ . . Class diagram abstraktní třídy „AbstractForm“ . Class diagram abstraktní třídy „AbstractDoklad“ Class diagram třídy „UzivatelskyUcet“ . . . . . . Class diagram třídy „Tisk“ . . . . . . . . . . . . . Návrh tiskové předlohy . . . . . . . . . . . . . . . Náhled tiskové sestavy „Převod položek“ . . . . .
5
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
13 15 16 17 19 20 22 23 24 24 25 26 27 27 31 32 33 34 36 38
1.
Zadání bakalářské práce
Vytvořte aplikační program pro potřeby zaměstnanců obchodního řetězce Hruška, s.r.o., který bude usnadňovat jejich administrativní práci. Na základě požadavků uživatelů má být aplikace ovladatelná prostřednictvím jednoho aplikačního programu disponujícího čtyřmi moduly, jež budou mít tyto základní operace: Modul č.1 - Přijaté doklady: • Vložení faktur od dodavatele do systému a přiřazení k jednotlivým měsíčním dekádám v roce • Úprava vložených záznamů • Odstranění záznamů • Zobrazení přehledu zapracovaných faktur v daném měsíci nebo dané dekádě měsíce • Tisk přehledu na základě zadaných podmínek (zvolený měsíc a rok), přičemž přehled bude dále rozdělen podle celkových výpočtů na měsíční dekády • Uložení přehledů do textového souboru • Export všech záznamu do souboru XML (pro případné užití v jiném systému) • Import ze souboru XML do modulu Přijaté doklady Modul č.2 - Stravenky: • Vložení stravenek podle nominálních hodnot, podle vydávajících společností a přiřazení k jednotlivým dekádám měsíců v roce • Úprava vložených záznamů • Odstranění záznamů • Zobrazení přehledu zapracovaných stravenek jednotlivých společností v dané dekádě měsíce • Tisk přehledů na základě zadaných podmínek (zvolená dekáda měsíce), přičemž v přehledu bude zahrnuta také celková suma z přijatých stravenek s danou nominální hodnotou dané společnosti 6
• Uložení přehledu do textového souboru • Export všech záznamů do souboru XML (pro případné užití v jiném systému) • Import ze souboru XML do modulu Stravenky Modul č.3 - Nárok pracovníků na stravenky: • Vložení údajů o zaměstnancích, udělení počtu stravenek podle odpracovaných dnů v měsíci a přiřazení záznamů k jednotlivým měsícům v roce • Úprava vložených záznamů • Odstranění záznamů • Zobrazení přehledu zapracovaných dat v daném měsíci • Tisk přehledů na základě zadaných podmínek (zvolený měsíc a rok) • Uložení přehledů do textového souboru • Export všech záznamů do souboru XML (pro případné užití v jiném systému) • Import ze souboru XML do modulu Nárok pracovníků na stravenky Modul č.4 - Výplatní výkaz zaměstnanců: • Vložení údajů o zaměstnancích, doplnění hodnot (hodinová sazba, odpracované hodiny, počet hodin za So+Ne, prémie) a přiřazení záznamů k jednotlivým měsícům v roce • Úprava vložených záznamů • Odstranění záznamů • Zobrazení přehledu zapracovaných záznamů v daném měsíci • Tisk přehledů na základě zadaných podmínek (zvolený měsíc a rok) • Uložení přehledů do textového souboru • Export všech záznamů do souboru XML (pro případné užití v jiném systému) • Import ze souboru XML do modulu Výplatní výkaz zaměstnanců 7
2.
2.1.
Důvod vzniku nové aplikace, nová aplikace vs. konkurence Důvod vzniku aplikace
Hlavním impulsem pro vytvoření nové aplikace bylo zjištění, že některé menší provozovny obchodního řetězce Hruška, s.r.o., nedisponují počítačovými systémy, z čehož plyne, že zaměstnanec vykonávající funkci vedoucího provozovny je nucen vést administrativu v sešitových záznamech, následně provádět manuální sumarizaci pomocí kalkulátoru a poté porovnávat údaje s účetním oddělením společnosti. Aplikace ulehčuje práci a šetří čas, zaměstnanec pouze zadá požadovaná data do vytvářeného systému a o veškerou sumarizaci se postará aplikační program, který samozřejmě umožňuje i tisk sestav.
2.2.
Nová aplikace vs. konkurence
Již v minulosti jsem hledal nějakou aplikaci, která by danou problematiku řešila, nicméně ve všech případech byly aplikace buďto velmi rozsáhlé, a v tomto případě se navíc jednalo o placené verze, nebo aplikace v neplacených verzích byly schopny nahradit pouze úzkou část požadovaného. Administrativnímu pracovníkovi by se tedy nabízela možnost buď zakoupit licenci k rozsáhlé aplikaci, která by neměla plné využití, nebo užít neplacených aplikací více, nebo zažádat o vytvoření aplikace, která by byla tzv. „šitá přímo na míru“. Ještě před nastoupením na Univerzitu Palackého v Olomouci, obor Aplikovaná informatika, jsem vytvořil provizorní řešení pomocí programu Microsoft Excel, čímž se alespoň odstranila manuální sumarizace hodnot a dále byl umožněn tisk sestav. Největším problémem zvoleného způsobu však byla skutečnost, že vkládaná data byla rozdělena pouze na měsíce v roce, a tudíž nebylo možno získat celkové přehledy za rok či za určité období. Díky studiu jsem získal dostatečné znalosti v programování, a proto jsem se rozhodl, že vytvořím vlastní aplikaci, která bude odpovídat požadavkům.
8
3.
Použitý hardware a software pro vývoj aplikace • Microsoft Windows 7 Professional 64-bit, verze 6.1.7601 Service Pack 1 - celý vývoj aplikace byl programován na výše uvedené verzi operačního systému, hardware obstarával: Motherboard-Gigabyte 965P-DQ6; CPU-Intel Core 2 Duo, E6600, 2.40GHz; RAM-Geil, 8GB • Microsoft Visual Studio 2008 Version 9.0.30729.1 SP, včetně Microsoft .NET Framework Version 3.5 SP1 - zdrojový kód byl napsán prostřednictvím jazyka C#, což je vysokoúrovňový objektově orientovaný programovací jazyk vyvynutý společností Microsoft, určený převážně k programování aplikačních programů pro operační systémy Microsoft • Microsoft Access 2007 Version 12.0.6535.5005 SP2 - k ukládání dat byla použita souborová databáze MS Access • uživatelská nápověda dostupná přímo v aplikačním programu byla napsána prostřednictvím programu HelpNDoc verze 2.9, jedná se o volně dostupný software
3.1.
Požadavky pro spuštění
Aplikační program byl testován na této minimální konfiguraci: • CPU-Intel Pentium 4, 2.40GHz; RAM-512MB • Microsoft Windows XP Professional SP3 (32-bit) • NET. Framework 3.5 • nainstalovaný balík objektových knihoven „Crystal Reports Basic Runtime for Visual Studio 2008“
9
4.
Realizace aplikačního programu
Po konzultacích ohledně aplikační domény se zadavatelem byly vytvořeny USE CASE diagramy a byla navržena struktura databáze v Microsoft Access, ale na základě rozšiřujících požadavků došlo později k jejich úpravám. Po naprogramování každé části byla provedena fáze důsledného testování a naprogramované beta verze byly poté nasazeny ke zkušebnímu provozu. Při programování aplikace bylo nejdříve vytvořeno úvodní okno pro přihlášení uživatele. Původní návrh aplikace zahrnoval řešení pouze pro jedinou provozovnu, ale později byl program rozšířen, je tedy možné sestavovat administrativu libovolnému množství provozoven. Na základě toho došlo k úpravě USE CASE diagramu a databáze. Následně vzniklo tzv. „hlavní okno aplikace“, které se zobrazí uživateli po přihlášení. Z něj uživatel přístupuje k jednotlivým modulům a prostřednictvím komponenty „Menu Strip“ k možnostem „import“, „export“, „odhlášení z aplikace“, „restart aplikace“, „ukončení aplikace“, „obecné nastavení aplikace“, „uživatelská nápověda“ a „informace o programu“. Další fáze zahrnovala naprogramování modulů „Doklady“, „Stravenky“, „Nárok pracovníků na stravenky“, „Pracovní výkaz“. Pro jednotlivé moduly byl navržen abstraktní formulář se základními prvky pro ovládání, po zvolení příslušného modulu se vždy uživateli zobrazí formulář se stejným grafickým rozhraním a základními ovládacími prvky (tím se myslí prvky pro základní zobrazovací filtr a tlačítka pro přidání, upravení, smazání a tiskové sestavy - při kliknutí na tlačítko se zobrazí modální formulář pro zadání požadovaných údajů). Z toho plyne, že jakmile se uživatel naučí ovládat jeden modul, tak nebude mít problém s ovládáním ostatních. Abstaktní formulář taktéž disponuje komponentou „MenuStrip“, díky níž má uživatel přístup k: tiskovým sestavám, odhlášení z aplikace, ukončení aplikace, filtru najít (ten je však na základě požadavků přístupný pouze u modulu „Doklady“), nastavení (týkající se nastavení jednotlivých modulů), uživatelské nápovědě a informacím o programu. Jako první z modulů byl programován modul „Doklady“, jedná se o zapracování jednotlivých faktur neboli dokladů k dodanému zboží, přičemž se doklady dělí do kategorií „Firmy“, „Hruška“, „Drogerie“, „Obaly-palety“, „Předispozice“, „Překlasifikace“, „Reklamace“. Dále modul disponuje částí tzv. „Finanční hotovost“, která uvádí přehledné informace o sumarizaci všech dokladů za danou dekádu měsíce v roce. Ve všech kategoriích pro zobrazení přehledů je použita komponenta „DataGridView“. Prvotní požadavky stanovily, že modul „Doklady“ při operaci přidání, nebo úpravě dokladu uloží informace o roce, měsíci, dekádě, identifikačním čísle faktury, identifikačním interním čísle, firmě, částce, koeficientu. Toto se však po nasazení do zkušebního provozu ukázalo jako nedostačující a došlo k rozšíření o další specifika (datum naskladnění, poznámka), načež muselo dojít k úpravě schématu databáze a také k úpravě již odladěného kódu. Ve formuláři pro přidání dokladů byla na základě požadavků provedena úprava, která uživateli po zobrazení formuláře automaticky nastaví daný rok, měsíc, dekádu (dle 10
aktuálního datumu) a položku identifikační interní číslo (tato položka se každý rok nastaví na výchozí hodnotu 1 a následně se inkrementuje s každým přidaným dokladem, kdy toto je vždy samostatné pro jednotlivé kategorie firem dokladů - „Firma“, „Hruška“, „Drogerie“, ...). Formulář pro úpravu dokladu byl původně navržen a naprogramován pro jediný doklad, ale to se taktéž po nasazení do zkušebního provozu projevilo negativně, a proto došlo k dalšímu rozšíření. Byla navržena tzv. „hromadná úprava“, jež umožňuje u více dokladů hromadně upravit informaci o roce, měsíci, dekádě. Modul „Doklady“ disponuje podrobným filtrem vyhledání požadovaných dokladů, přičemž dokáže doklady filtrovat libovolně podle zvolených specifikací (datum naskladnění, rok, měsíc, dekáda, identifikační interní číslo, identifikační číslo faktury, druh firmy, částka, uživatel (jedná se o uživatele, který s dokladem nasposledy provedl operaci). Dále modul „Doklady“ disponuje tiskovými sestavami pro tyto specifikace: převod položek, vyhodnocení dekád měsíce, seznam firem, zapracované doklady (doklady jsou zobrazeny na základě zvoleného filtru). Dále tento modul svým nastavením umožňuje uživateli přidávat/upravovat/mazat požadované firmy (na základě referenční integrity dat nebude vždy provedena operace mazání z důvodu, že již pro danou firmu existuje související záznam), změnu koeficientu pro výpočet výsledné částky dokladu a nastavit výchozí sloupec pro seřažení v zobrazení komponenty „DataGridView“. Celý modul „Doklady“ byl po provedených úpravách kompletně otestován a opětovně nasazen do zkušebního provozu, ale u tiskových sestav bylo zjištěno, že je nelze vůbec zobrazit. Z následné analýzy vyplynulo, že na počítači kde byla aplikace vytvářena, byly automaticky společně s vývojovým prostředím Microsoft Visual Studio 2008 Professional Edition nainstalovány objektové knihovny Crystal Report, zatímco na počítači kde není vývojové prostředí instalované tyto knihovny chybí. Po odstranění tohoto problému již nebyly doposud zjištěny žádné jiné nedostatky. Modul „Stravenky“ řeší problematiku pro zapracování přijatých stravenek od zákazníků za nákup zboží na provozovně, přičemž stravenky se zapracovávají do dané dekády měsíce v roce a dělí se do kategorií podle názvu firmy na „Sodexho“, „Ticket Restaurant“, „Chégue Déjeuner“, „Ticket Service“, „Hruška“ a „Hruška dárkový šek“. Pro zobrazení záznamů o jednotlivých firmách je opět zvolena komponenta „DataGridView“. Jednotlivé záznamy disponují informacemi o roce, měsíci, dekádě, nominální hodnotě stravenky, počtu kusů. Tento modul svým nastavením umožňuje uživateli provádět změny v názvu firem vydávajících stravenek, nastavovat jednotlivé nominální hodnoty stravenek příslušným firmám, přidávat nebo mazat nominální hodnoty stravenek (na základě referenční integrity dat nebude vždy provedena operace mazání z důvodu, že již pro danou nominální hodnotu stravenky existuje související záznam) a nastavit výchozí sloupec pro seřazení v zobrazení komponenty „DataGridView“. Celý modul „Stravenky“ byl po naprogramování kompletně otestován a nasazen do zkušebního provozu a rovněž nebyly zjištěny žádné nedostatky. U modulu „Pracovní výkaz“ po následné podrobnější konzultaci ohledně 11
aplikační domény bylo zjištěno, že další požadovaný modul „Nárok pracovníků na stravenky“ nebude potřeba vytvářet samostatně, jelikož se jedná pouze o přiřazení počtu stravenek zaměstnanci za počet odpracovných dnů v měsíci daného roku, přičemž tyto informace budou vedeny v modulu „Pracovní výkaz“. Modul „Pracovní výkaz“ je navržen tak, že uživatel uloží údaje o zaměstnancích a u každého zaměstnance nastavuje pracovní docházku na daný měsíc v roce, případně vloží výši prémie. Na základě těchto informací bude aplikace schopná vypočítat základní mzdu včetně prémie a počet stravenek za odpracovné dny. Formulář pro přidání zaměstnance disponuje těmito položkami: titul před, jméno, prostřední jméno, příjmení, titul za, datum narození, telefon, ulice, č.p. (číslo popisné), č.o. (číslo orientační), město, PSČ, telefon, email, osobní číslo, pracovní funkce, FPD/den (fond pracovní doby na den), zaměstnán od, zaměstnán do. Na základě pracovní funkce je zaměstnanci přiřazena výše hodinové sazby. Tiskové sestavy umožňují tisk rozpisu služeb, pracovních výkazů, výplatních výkazů. Nastavení modulu „Pracovní výkaz“ umožňuje uživateli editovat pracovní dobu provozovny, svátky v roce, pracovní funkce zaměstnance, FPD/den, počet dní dovolené v roce, výši stravenky pro pracovníka za odpracovaný den. Dle požadavku byla doplněna funkce kontroly nastavených dat (aplikace náš informuje k těmto chybnným případům nastavení: pro zvolený druh práce nebyla vyplánována pracovní doba, pracovní doba je vyplánovaná naopak - není umožňěno plánovat noční službu, není vyplánovaná přestávka i když je vyplánovaná pracovní doba víc jak 6 hodin, přestávka je vyplánovaná dřív než po 1 odpracované hodině, vyplánovaná přestávka je kratší než 30 minut, přestávka je vyplánovaná naopak, přestávka je vyplánovaná na konci pracovní doby) v pracovní docházce. Celý modul „Pracovní výkaz“ byl po naprogramování kompletně otestován a nasazen do zkušebního provozu, přičemž doposud nebyly zjištěny žádné problémy. Do budoucna se bude aplikace nadále rozšiřovat o další moduly na základě požadavků. Naprogramovaná aplikace byla testována na počítačích s operačními systémy: • Microsoft Windows XP Professional SP3 (32-bit) • Microsoft Windows Vista Home Premium (32-bit) • Microsoft Windows 7 Home Premium SP1 (32-bit) • Microsoft Windows 7 Professional SP1 (32-bit) • Microsoft Windows 7 Professional SP1 (64-bit) a nebyly zjištěny žádné problémy.
12
5. 5.1.
Uživatelská část Instalace
Instalace zahrnuje nainstalování aplikačního programu a případně nainstalování objektové knihovny „Crystal Reports Basic Runtime for Visual Studio 2008“, která zajišťuje plnou funkčnost tiskových sestav. Postup instalace aplikačního programu: a) z instalačního cd spusťte soubor „Obchodní systém.msi“. b) zobrazí se výchozí okno instalace aplikačního programu, viz obrázek 1.
Obrázek 1. Instalace aplikačního programu
c) pro pokračování klikněte na tlačítko „Next“, v následujícím okně můžete změnit umístění pro uložení instalace, poté klikněte na tlačítko „Next“, v dalším okně opětovně klikněte na tlačítko „Next“ a vyčkejte, než bude instalace dokončena, po dokončení instalace klikněte na tlačítko „Close“
13
d) po dokončení instalace, se na tzv. „ploše systému“ vytvoří zástupce, ze kterého je možno aplikaci přímo spustit, zástupce pro spuštění aplikace se rovněž vytvořil i v umístění „Start ->Všechny programy ->Obchodní systém“ e) v případě, že na počítači není nainstalované vývojové prostředí Microsoft Visual Studio 2008 Professional SP1 (je možné, že bude postačovat i jiná verze vývojového prostředí), bude zapotřebí doinstalovat balík objektových knihoven „Crystal Reports Basic Runtime for Visual Studio 2008“ 1 , instalační soubor těchto knihoven se při instalaci aplikačního programu uloží do složky „CRRedist2008_x86“ v umístění instalovaného aplikačního programu (při ponechání výchozího adresáře při instalaci ho naleznete zde: „C:\Program Files\Obchodní systém\CRRedist2008_x86“)
5.2.
Odinstalace
Odinstalace provede odebrání aplikačního programu včetně všech jeho součástí. • provedeme proklikáním „Start ->Ovládací panely ->Přidat nebo odebrat programy“ • můžeme také provést prostřednictvím opětovného spuštění instalačního souboru, kde vybereme možnost „Remove Obchodní systém“ a klikneme na tlačítko „Finish“, po provedení operace formulář ukončíme
5.3. 5.3.1.
První spuštění a ovládání programu První spuštění
Při prvním spuštěním aplikačního programu, jelikož databáze je prozatím bez jakýchkoliv dat, se nám zobrazí přihlašovací formulář, kde je vybrán výchozí uživatel „Administrator“, heslo pro přístup je „admin“, pole provozovna bude prázdné a k programu se přihlašte kliknutím na tlačítko „OK“, viz obrázek 2. Po úspěšném přihlášení se zobrazí hlavní formulář aplikačního programu, a jelikož se jedná o první přihlášení k programu, tak budete vyzváni, abyste zadali provozovnu, následně se otevře formulář „Nastavení programu“ pod záložkou „Provozovna“. Po vyplnění a uložení údajů k provozovně budete vyzváni, abyste zadali otevírací dobu provozovny, přičemž se automaticky zobrazí záložka „Provozovna - otevírací doba“. Po vyplnění a uložení údajů o provozní době máte možnost pod záložkou „Identita“ vytvořit, případně modifikovat další uživatelské účty k aplikačnímu programu (upozornění: uživatelský účet „Administrator“ 1
balík objektových knihoven byl dne 16.07.2011 volně stažen z webové stránky http:\\resources.businessobjects.com\support\downloads\redistributables\ vs_2008\redist\x86\CRRedist2008_x86.msi
14
Obrázek 2. Přihlášení k programu
nelze smazat), pod záložkou „Soubory“ můžete změnit umístění databáze, nebo konfiguračního souboru, je zde možnost obnovit tovární nastavení programu. Po dokončení úvodního nastavení již můžete s programem začít pracovat v jednotlivých modulech. 5.3.2.
Ovládání programu
Hlavní formulář „Obchodní systém“: Po přihlášení k aplikaci se zobrazí hlavní formulář aplikace „Obchodní systém“, viz obrázek 3. Z hlavního formuláře můžete přistupovat k jednotlivým modulům „Doklady“, „Stravenky“, „Pracovní výkaz“, pod záložkou „Soubor“ máte možnosti „Import“, „Export“, „Odhlásit se“, „Restart aplikace“, „Ukončit“. „Import“ slouží k importování dat z externího souboru „.xml“. „Export“ je určen k exportu dat z databáze do souboru „.xml“. „Odhlásit se“ umožňuje přihlášenému uživateli k uzamknutí programu, následné odemknutí programu může provést pouze odhlášený uživatel. „Restart aplikace“ slouží k restartování aplikace a poté je možné se přihlásit libovolným uživatelským účtem k libovolné provozovně. Pod záložkou „Nástroje“ je k dispozici již výše zmíněný formulář 15
Obrázek 3. Hlavní formulář aplikace „Obchodní systém“
„Nastavení programu“ a pod záložkou „Help“ máte přístup k „Uživatelské nápovědě„ a „Informacím o programu“. Ve spodní části hlavního formuláře a formuláře jednotlivých modulů se nachází komponenta „StatusStrip“, která nám zobrazuje informaci o aktuálně přihlášeném uživateli, aktuální provozovně a dále datum a čas. Modul č.1 „Doklady“: Po kliknutí na obrázek „Doklady“, který se nachází v hlavním formuláři, se zobrazí formulář „Doklady“, viz obrázek 4. Tento formulář se dělí na čtyři části, a to: komponenta „MenuStrip“, pod ní se nachází panel s ovládacími prvky hlavního filtru zobrazení dat (panel oranžové barvy), vertikálně na levé straně se nachází tlačítka pro manipulaci s daty „Přidat“, „Upravit“, „Smazat“, „Najít“, „Sestavy“ a zbytek formuláře vyplňuje komponenta „TabControl“, kdy v každé její záložce se nachází komponenta „DataGridView“, která nám zajišťuje zobrazení dat. Komponenta „MenuStrip“ je ve všech modulech stejná a nabízí uživateli pod záložkou „Soubor“ možnosti „Tisk“ (slouží k otevření modálního formuláře tiskových sestav daného modulu), „Odhlásit se“, „Ukončit“, pod záložkou „Nástroje“ nabízí možnosti „Najít“, „Nastavení“ a pod záložkou „Help“ jsou 16
Obrázek 4. Formulář modulu č.1 „Doklady“
možnosti „Nápověda“, „O programu“ (tyto možnosti jsou zcela totožné jako v hlavním formuláři „Obchodní systém“). Nastavení modulu „Doklady“ umožňuje uživateli modifikovat firmy, od kterých vkládáme doklady; změnu koeficientu pro výpočet výsledné částky; možnost pro seřazení dat příslušného sloupce v komponentě „DataGridView“. Hlavní filtr zobrazení slouží pro zvolení požadovaného roku, měsíce a dekády, na základě čehož se nám data v komponentě „DataGridView“ následně zobrazí (data budou samozřejmě ve všech možnostech zobrazena jen pro provozovnu ke které jsme momentálně přihlášeni). Tlačítko „Zobraz vybrané“ zobrazí data na základě zadaného filtru. Tlačítko „Zobraz aktuální“ nastaví filtr na aktuální rok, měsíc a dekádu a zobrazí data. Tlačítko „Zobraz vše“ nám zobrazí všechny doklady, které byly vloženy do databáze pro danou provozovnu. Vertikálně na levé straně se nachází tlačítko „Přidat“, které otevírá modální formulář pro přidávání dokladů. Po kliknutí na tlačítko „Uložit“ se nám zapsaná data uloží, formulář se resetuje, zůstane zobrazený a umožňuje vložit další doklad. Tlačítko „Upravit“ otevře modální formulář, do kterého se načte aktuálně vybraný záznam, v případě, že bylo vybráno záznamů více, zobrazí se modální formulář pro hromadnou úpravu, následně, po provedení změny, můžeme data uložit. Tlačítko 17
„Smazat“ smaže aktuálně vybraný záznam, v případě, že bylo vybráno záznamů více, budou smazány všechny vybrané záznamy. Tlačítko „Najít“ (je zpřístupněno pouze u modulu „Doklady“) slouží k otevření modálního formuláře s podrobným vyhledávacím filtrem, po zvolení filtru se na panelu s ovládacími prvky hlavního filtru zobrazení skryjí ovládací prvky a zobrazí se nápis s informací „Zobrazená data jsou na základě zadaného filtru najít.“ a tlačítko pro zrušení filtru. Tlačítko „Sestavy“ slouží k zobrazení tiskových sestav. Komponenta „TabControl“ má celkem osm záložek, kdy každá z prvních sedmi záložek dělí doklady do jednotlivých kategorií. V poslední osmé záložce se nachází tzv. „Finanční hotovost“, která nám ukazuje informaci o sumarizaci vložených dokladů podle zvoleného filtru zobrazení, dále umožňuje vložení tzv. „Hotovosti dle podniku“ (tzn. jakou finanční částku bychom měli mít v účetním stavu na základě příjmu z dokladů a prodeje), vložení tzv. „Výdeje“ (tzn. jakou finanční částku jsme za danou dekádu odvedli) a také zobrazuje rozdíl ve finanční hotovosti mezi námi a podnikem. Modul č.2 „Stravenky“: Formulář „Stravenky“, viz obrázek 5., se zobrazí po kliknutí na obrázek „Stravenky“ v hlavním formuláři. Tento formulář se opětovně dělí na čtyři části, a to: komponeta „MenuStrip“ a panel s ovládacími prvky hlavního filtru zobrazení dat (vše je totožné jako v případě modulu č.1 „Doklady“), vertikálně na levé straně se nachází tlačítka pro manipulaci s daty „Přidat“, „Upravit“, „Smazat“, „Sestavy“, zbytek formuláře vyplňuje komponenta „TabControl“, kdy v každé její záložce se nachází komponenta „DataGridView“, která nám zajišťuje zobrazení dat. V komponentě „MenuStrip“ pod záložkou „Nástroje“ se nachází „Nastavení modulu stavenky“, které umožňuje uživateli upravit název firmy vydávající stravenky, výběr nominálních hodnot stravenek pro danou firmu, přidávat nebo mazat nominální hodnoty stravenek a opět je zde možnost nastavit seřazení dat příslušného sloupce v komponentě „DataGridView“. Hlavní filtr zobrazení má totožnou funkci jako v modulu č.1 „Doklady“, pouze zde bylo vypuštěno tlačítko „Zobraz vše“). Vertikálně na levé straně se nachází tlačítka „Přidat“, „Upravit“, „Smazat“, „Sestavy“, které mají opět totožnou funkci jako v předcházejícím modulu s tou výjimkou, že u tlačítek „Upravit“, „Smazat“ není umožněna hromadná úprava stravenek a smazání více záznamů najednou. Tlačítko „Sestavy“ slouží k zobrazení tiskových sestav. Komponenta „TabControl“ má celkem šest záložek, každá záložka umožňuje zobrazení vložených záznamů o firmě poskytující stravenky.
18
Obrázek 5. Formulář modulu č.2 „Stravenky“
Modul č.3 „Pracovní výkaz“: V hlavním formuláři po kliknutí na obrázek „Pracovní výkaz“ se nám zobrazí formulář „Pracovní výkaz“, viz obrázek 6. Tento formulář se taktéž dělí na čtyři části, a to: komponeta „MenuStrip“, která je totožná jako u modulu č.1 „Doklady“, dále se zde nachází již známý panel s ovládacími prvky hlavního filtru zobrazení dat (panel oranžové barvy), vertikálně na levé straně se nachází tlačítka pro manipulaci s daty „Přidat“, „Upravit“, „Smazat“, „Sestavy“, zbytek formuláře vyplňuje komponenta „TabControl“, přičemž v první záložce se nachází komponenta „ListBox“, ve které jsou zobrazeni aktuálně zaměstnaní pracovníci a vedle ní se nachází známá komponenta pro zobrazení a modifikaci dat „DataGridView“, ve zbývajících záložkách komponenty „TabControl“ se nachází komponenta „DataGridView“ pro zobrazení dat. V komponentě „MenuStrip“ pod záložkou „Nástroje“ můžeme nastavit modul „Pracovní výkaz“, což umožňuje uživateli nastavit pracovní dobu pro zaměstnance a časové dělení pracovní doby podle zadaného intervalu v minutách (na základě tohoto nastavení se v první záložce komponenty „TabControl“ budou informace pro daný den filtrovat), editovat svátky, editaci pracovní funkce zaměstnance, nastavení fondu pracovní doby pro danou funkci a nastavení koeficientu pro rozdělení 19
Obrázek 6. Formulář modulu č.3 „Pracovní výkaz“
tržby, nastavení počtu dní dovolené a hodnotu výše stravenky, na kterou má zaměstnanec nárok za odpracovaný den. Hlavní filtr zobrazení má skoro stejnou funkci jako v modulu č.1 „Doklady“ (byl zde vypuštěn filtr pro dekádu a tlačítko „Zobraz vše“, přibyla zde tlačítka „Zkontrolovat“, „Uložit“. Tlačítko „Zkontrolovat“ slouží pro kontrolu vyplněné pracovní doby zaměstnance a tlačítko „Uložit“ k uložení dat o nastavené pracovní době). Vertikálně na levé straně se nachází tlačítka „Přidat“, “Upravit“, “Smazat“ a “Sestavy“, které mají skoro totožnou funkci jako v předcházejícím modulu. U tlačítek „Upravit“ a „Smazat“ není umožněna hromadná úprava, nebo smazání více zaměstnanců zároveň. Komponenta „TabControl“ má čtyři záložky. První záložka slouží pro nastavení pracovní doby určitého zaměstnance, kterého vybereme z komponenty „ListBox“ a poté v komponentě „DataGridView“ se jen nastaví sloupce „Druh práce“, „Práce od“, „Práce do“, „Přestávka od“, „Přestávka do“, zbývající sloupce mají informativní charakter a nastavují se automaticky. Jednotlivé řádky odpovídají jednomu dni v daném měsíci v roce. Pod komponentou „DataGridView“ v první záložce „TabControl“ se nachází informativní panel, jenž zobrazuje in20
formace o vybraném zaměstnanci, předepsaném fondu pracovní doby za zvolený měsíc v roce a informaci o naplánované pracovní docházce. Druhá záložka komponenty „TabConrol“ zobrazuje v „DataGridView“ souhrné informace o pracovní docházce a výši platu zaměstnanců pro daný měsíc v roce, sloupec „Prémie“ umožňuje vložení finanční částky. Pod tímto „DataGridView“ se nachází informativní panel pomocí kterého je možné vložit výši tržby za měsíc na dané provozovně, ze které se vypočítá prostřednictvím určeného koeficientu finanční výše příslušející pro výplaty. Zbývající dvě záložky komponenty „TabControl“ slouží k informativním účelům. Ve třetí záložce se zobrazují informace o pracovní docházce zaměstnanců za celý zvolený rok podle základního filtru zobrazení. V poslední záložce najdeme osobní údaje zaměstnanců, a to i těch, kteří již nejsou v pracovním poměru.
21
6.
Programátorská část
6.1.
Použité technologie
Aplikační program byl vytvořen pomocí vývojového prostředí Microsoft Visual Studio 2008 Professional SP1, k programování byl použit programovací jazyk C# s použítí technologie .NET Framework 3.5. Pro uložení dat byla užita lokální souborová databáze Microsoft Access 2007 ve spojení s technologií ADO.NET. Aplikace je založena na třívrstvém modelu, který tvoří vrstva: datová, logická a prezentační. Tento model se zpravidla využívá ke tvorbě aplikací pracujících s databázemi. 6.1.1.
Platforma .NET
Platforma .NET je soubor technologií od firmy Microsoft určená pro vývoj aplikací v systému Windows. Zahrnuje soubor knihoven nutných k běhu aplikace. Základní část tvoří .NET framework. Program je vždy přeložen do mezijazyka Commnon Intermediate Language bez ohledu na to, v jakém jazyku byl napsán. 6.1.2.
Technologie ADO.NET
Technologie ADO.NET, viz obrázek 7., je sada tříd, které programátorům na
Obrázek 7. Architektura knihovny ADO.NET platformě .NET exponují služby pro přístup k datům a poskytují jim sadu komponent pro tvorbu distribuovaných aplikací sdílejících data. Knihovna ADO.NET je 22
nedílnou součástí rozhraní .NET Framework, která umožňuje přístup k relačním, XML a aplikačním datům. Třídy knihovny ADO.NET se nacházejí v souboru System.Data.dll. 6.1.3.
Databáze MS Access
Microsoft Access je produkt společnosti Microsoft z balíku Office. Jedná se o nástroj pro tvorbu a správu relačních databází. Pro provádění dotazů je použit jazyk SQL.
6.2.
USE CASE diagramy aplikačního programu
K hlavnímu formuláři a taktéž k jednotlivým modulům, byly vytvořeny USE CASE diagramy, viz obrázky 8., 9., 10., 11.
Obrázek 8. USE CASE hlavní formulář
23
Obrázek 9. USE CASE modul č.1 „Doklady“
Obrázek 10. USE CASE modul č.2 „Stravenky“
24
Obrázek 11. USE CASE modul č.3 „Pracovní výkaz“
25
6.3.
Databáze
Aplikační program pro svůj chod potřebuje souborovou databázi ve formátu .mdf (MS Access) s názvem „Obchodní systém“, který se po instalaci aplikace při zachování výchozí cesty uloží do složky „C:\Program Files\Obchodní systém“. Databáze je chráněná heslem, pro otevření je nutné vložit heslo „kaumen“. 6.3.1.
Schéma databáze
Databázové schéma aplikačního programu rozdělené podle modulů, viz obrázky 12., 13., 14.
Obrázek 12. Schéma databáze modulu č.1 „Doklady“
26
Obrázek 13. Schéma databáze modulu č.2 „Stravenky“
Obrázek 14. Schéma databáze modulu č.3 „Pracovní výkaz“
27
6.4. 6.4.1.
Popis hlavních tříd a jejich metod Třídy formulářů
• Uvod • Obchodni system • AbstractForm - z něj se dědí třídy FormDoklady, FormStravenky, FormVykaz • AbstactDoklad - z něj se dědí třídy FormPridDoklad, FormPridDokladFirem, FormUpravDoklad, FormUpravDokladFirem • FormHromadnaUpravaDokladu • AbstractStravenka - z něj se dědí třídy FormPridStravenku, FormUpravStravenku • AbstractZamestnanec - z něj se dědí třídy FormPridZamestnance, FormUpravZamestnance • AbstractNajit - z něj se dědí třída FormNajítDoklad • FormVypisChyb • Nastaveni Programu, Nastaveni doklady, NastaveniStravenky, Nastaveni vykaz • Tisk, SestavyDoklady, SestavyStravenky, SestavyVykaz • OdhlasitSe • AboutBox1 6.4.2.
Třídy
• DataSet_REPORT • DenniVykaz • Doklad • ExportImport • Firma • Manager 28
• Pripojeni • Program • Provozovna • Stravenka • UzivatelskyUcet • Zamestnanec 6.4.3.
Vybrané třídy a jejich metody
Protože aplikační program disponuje mnoha třídami, z nichž každá má mnoho metod, uvedu jen ty nejzákladnější. Třída formuláře „Uvod“ Tento formulář se zobrazí při spuštění aplikace a slouží k přihlášení. • v konstruktoru třídy se přiřadí atributu „conn“ objekt již otevřeného připojení a načtou se do „ArrayListu“ všechny dostupné uživatelské účty z databáze • při načtení formuláře se do „ComboBoxu“ načtou uživatelská jména, dále se do „ArrayListu“ načtou všechny dostupné provozovny, ze kterých se následně vybere výchozí a načte se do příslušného „ComboBoxu“ • btnOk_Click: po kliknutí na tlačítko „OK“ program provede verifikaci vloženého hesla pro vybraný uživatelský účet, při pozitivním srovnání se do atributů ve třídě „Manager“ uloží informace o přihlášeném uživateli a provozovně, v případě negativního srovnání se „TextBox Heslo“ resetuje a uživatel bude upozorněn, že vložené heslo nesouhlasí • button2_Click: po kliknutí na tlačítko „Ukončit“ bude uživatel dotázán, zdali chce aplikaci ukončit, poté na základě rozhodnutí uživatele bude aplikace buď ukončena, nebo může pokračovat v přihlášení
29
Příklad části kódu pro událost „btnOk_Click “: if (cbxVyberProv.Text != "" && provozovny.Count != 0) { string heslo = ""; string uzivatel = ""; for (int i = 0; i < uzivatele.Count; i++) { if (cbxUzivatelskeJmeno.Text == (((UzivatelskyUcet)uzivatele[i]).vratUzivatJmeno())) { heslo = (((UzivatelskyUcet)uzivatele[i]).vratUzivatHeslo()); uzivatel = (((UzivatelskyUcet)uzivatele[i]).vratUzivatJmeno()); } } if (cbxUzivatelskeJmeno.Text == uzivatel && txtHeslo.Text == heslo) { this.FormClosing -= new FormClosingEventHandler(ukoncitProgram); this.Close(); string sqlUzivatel = "select id from uzivatelske_ucty " + "where uzivatel = ’" + uzivatel + "’"; int idUzivatel = conn.provedPrikaz_int(sqlUzivatel); string sqlProvozovna = "select id from provozovna " + "where nazev = ’" + cbxVyberProv.Text + "’"; int idProvozovna = conn.provedPrikaz_int(sqlProvozovna); Manager.uzivatel = cbxUzivatelskeJmeno.Text; Manager.uzivatelID = idUzivatel; Manager.provozovna = cbxVyberProv.Text; Manager.provozovnaID = idProvozovna; if (Manager.provozovna != nazevProv) { for (int a = 0; a < provozovny.Count; a++) { Provozovna tempProv = (Provozovna)provozovny[a]; if (tempProv.vratNazev() != cbxVyberProv.Text) { tempProv.nastavVychozi(false); tempProv.updateProvozovna_bezInfo(); } else { tempProv.nastavVychozi(true); tempProv.updateProvozovna_bezInfo(); } } } } ... atd. }
Třída formuláře „AbstractForm“ Jak již bylo uvedeno, jedná se o abstraktní třídu, která byla vytvořena z důvodu stejného grafického rozhraní pro všechny moduly, viz obrázek 15. • v konstruktoru třídy se přiřadí atributu „conn“ objekt již otevřeného připojení 30
Obrázek 15. Class diagram abstraktní třídy „AbstractForm“
• při načtení formuláře se do „ToolStripStatusLabel“ načtou informace o přihlášeném uživateli a vybrané provozovně, v případě, že se jedná o modul „Doklady“, zobrazí se v komponentě „ToolStripMenu“ položka „Najít“ • nachází se zde metoda „timer1_Tick“ pro zobrazení datumu a času v „ToolStripStatusLabel • tato třída má virtuální metodu „vychoziNastaveniSeradit_nacist()“ pro výchozí seřazení zobrazovacího prvku „DataGridView“, která se v jednotlivých děděných třídách přepíše • pro zavření formuláře je zde vytvořená metoda „ukoncitPraci“, která se vyvolá na základě události „AbstractForm_FormClosing“ • nachází se zde metody pro všechny ovládací položky komponenty „ToolStripMenu“ • v děděných třídách se nachází metody pro ovládání zbývajících prvků formuláře 31
Třída formuláře „AbstractDoklad“ Jak bylo uvedeno výše, jde opět o abstraktní třídu, která byla vytvořena z důvodu stejného grafického rozhraní pro přidání, nebo úpravu dokladu, viz obrázek 16.
Obrázek 16. Class diagram abstraktní třídy „AbstractDoklad“
• tato třída má přetíženou metodu konstruktoru, protože děděná třída může být užita buď pro vložení dokladu, nebo pro úpravu dokladu; v obou konstruktorech se přiřadí atributu „conn“ objekt již otevřeného připojení a jsou zde zapsány všechny metody potřebné ve všech děděných třídách • ve všech děděných třídách se volají pouze metody „spusteni“, popřípadě „nacteniUpdate“ (pokud se jedná o formulář pro úpravu), které jsou deklarované v abstraktní třídě, zbývající provedení operací obstarává abstraktní třída 32
Obdobným způsobem jsou vytvořeny i abstraktní třídy „AbstractStravenka“, „AbstractZamestnanec“. Třída „UzivatelskyUcet“ Jedná se o třídu, jež zajišťuje operace s uživatelskými účty, viz obrázek 17.
Obrázek 17. Class diagram třídy „UzivatelskyUcet“
• tato třída obsahuje základní atributy a k nim i metody „GET“, „SET“, konstruktor třídy má argumenty „Pripojeni conn“, „int? id“, „string uzivatel“, „string heslo“ • obsahuje metody: - „GET“, „SET“ k atributům „ID“, „UzivatJmeno“, „UzivatHeslo“ - vrácení všech uživatelských účtů do „ArrayListu“ - uložit uživatele - upravit uživatele - smazat uživatele Obdobným způsobem jsou vytvořeny i třídy „DenniVykaz“, „Doklad“, „Firma“, „Provozovna“, „Stravenka“, „Zamestnanec“.
33
Třída „Tisk“ Tato třída prostřednictvím komponenty „CrystalReportViewer“ zajišťuje náhled tiskové sestavy, tisk sestavy, případně uložení tiskové sestavy do souborů (.rpt, .pdf, .xls, .doc, .rtf), viz obrázek 18.
Obrázek 18. Class diagram třídy „Tisk“
• třída obsahuje celkem dvakrát přetížený konstruktor, aby bylo možné při vytváření instance třídy buď nepředávat žádný argument, nebo předat dva argumenty „ReportClass“ (jedná se o navržený vzhled tiskové sestavy) a „bool“ (slouží k zobrazení postraního stromu kategorií), nebo předat tři argumenty „ReportClass“, „bool“, „string“ (argument string zde předává SelectionFormula) - viz příklad níže • třída obsahuje pouze tři události, a to: - „Tisk_Load“ (umožňuje načtení zobrazeného reportu a při něm informuje uživatele o načítání) - „crystalReportViewer_ReportRefresh“ (zajišťuje znovunačtení tiskové sestavy) - „Tisk_FormClosed“ (slouží k uzavření formuláře)
34
Kód konstruktoru se třemi argumenty public Tisk(ReportClass report, string recordFormula) { InitializeComponent(); this.dataSet = new DataSet_REPORT(); this.dataSet.refreshDS(); //naplní DataSet z databáze this.reportClass = report; this.recordFormula = recordFormula; this.reportClass.SetDataSource(this.dataSet.vratDS()); //nastaví předloze tisku DataSet this.reportClass.DataDefinition.RecordSelectionFormula += this.recordFormula; //nastaví předanou formulu pro dotaz this.crystalReportViewer.DisplayGroupTree = displeyGroupTree; this.crystalReportViewer.ReportSource = this.reportClass; //nastaví předlohu tisku Vieweru }
Pro návrh předloh tiskových sestav byl užit software „Crystal Reports“ a jeho komponenta „CrystalReportDocument“, který je součástí vývojového prostředí „Microsoft Visual Studio 2008“, ten umožňuje programátorovi: • připojit se ke zdroji dat • vybírat tabulky, vytvářet relace mezi tabulkami • vytvářet design sestavy (vkládat nové objekty do reportu a formátovat je) • vybírat požadované záznamy prostřednictvím „Select Expert“ (výběrová kritéria) • organizovat data na sestavě - seřadit záznamy, seskupit záznamy, sumarizovat záznamy • dělit sestavy na sekce a následně je formátovat, vytvořit sestavy se souhrnnými sekcemi • vytvářet formule (Boolean formule, If-Then-Else formule, Select Case formule, For Loop formule, ...) prostřednictvím syntaxe „Crystal Syntaxe“ nebo „Basic Syntaxe“ • vytvářet vázané a nevázané podsestavy, definovat parametry v podsestavách
35
Příklad tiskové předlohy, viz obrázek 19.
Obrázek 19. Návrh tiskové předlohy
36
Příklad formule se syntaxí „CrystalSyntaxe“ pro editaci „Formula Fields“ - příklad je použit z navržené tiskové předlohy „Tisk-Pracovni_vykaz“ pro pole „Dovolena“ if {Druh_prace.Druh} = "DV" then ( NumberVar mesic; if {Pracovni_vykaz.Mesic} = "Leden" then mesic := 1 else if {Pracovni_vykaz.Mesic} = "Únor" then mesic := 2 else if {Pracovni_vykaz.Mesic} = "Březen" then mesic := 3 else if {Pracovni_vykaz.Mesic} = "Duben" then mesic := 4 else if {Pracovni_vykaz.Mesic} = "Květen" then mesic := 5 else if {Pracovni_vykaz.Mesic} = "Červen" then mesic := 6 else if {Pracovni_vykaz.Mesic} = "Červenec" then mesic := 7 else if {Pracovni_vykaz.Mesic} = "Srpen" then mesic := 8 else if {Pracovni_vykaz.Mesic} = "Září" then mesic := 9 else if {Pracovni_vykaz.Mesic} = "Říjen" then mesic := 10 else if {Pracovni_vykaz.Mesic} = "Listopad" then mesic := 11 else if {Pracovni_vykaz.Mesic} = "Prosinec" then mesic := 12; NumberVar denVTydnu; denVTydnu := DayOfWeek (CDate ({Pracovni_vykaz.Rok}, mesic, {Pracovni_vykaz.Den}), crMonday); if (denVTydnu = 6 or denVTydnu = 7) then 0 else {FPD_den.FPD}) else 0;
37
Náhled tiskové sestavy pro převod položek z modulu „Doklady“, viz obrázek 20.
Obrázek 20. Náhled tiskové sestavy „Převod položek“
38
Závěr Cílem tohoto projektu bylo vytvořit aplikační program pro zaměstnance obchodního řetězce Hruška, s.r.o., ve kterém se budou uchovávat data o přijatých dokladech, stravenkách a výplatním výkazu zaměstnanců. Vytvořený aplikační program odpovídá zadání práce a disponuje všemi požadavky, v současné době je již nasazen a plně se využívá k účelům, ke kterým byl vytvořen. Při vytváření aplikačního programu jsem čerpal z teoretických znalostí, kterých jsem nabyl při studiu na Univerzitě Palackého v Olomouci a z níže uvedené literatury.
39
Conclusions The aim of this project was to create application programme for emloyee of trade company Hruška, s.r.o., which would keep data of accepted receips, meal vouchers and salary reports. Created application programme corresponds to the task and all requirement. Nowadays the aplication programme is used in full and correspond to the purpose it was created for. During creating it, I used my teoretical knowledge which I got during my studies at University Palacký in Olomouc and mentioned literature below.
40
Reference [1] Eller, Frank C# začínáme programovat. Grada Publishin, Praha, 2002. [2] Kent, Jeff Visual C# 2005 bez předchozích znalostí. Computer Press, a.s, Brno, 2007. [3] Keogh, James a Giannini, Mario OOP bez předchozích znalostí. Computer Press, a.s, Brno, 2006. [4] Sharp, John Microsoft Visual C# 2008 - Krok za krokem. Computer Press, a.s, Brno, 2008. [5] Mareš, Amadeo 1001 tipů a triků pro C#. Computer Press, a.s, Brno, 2008. [6] Agarval, Vrat, Vidya a Huddleston, James Databáze v C# 2008 - Průvodce programátora. Computer Press, a.s, Brno, 2009.
41
A.
Obsah přiloženého CD
bin/ - instalátor programu doc/ - dokumentace k bakalářské práci ve formátu PDF, zhotovená podle závazného stylu KI PřF UP Olomouc pro diplomové práce (získaná z webových stránek katedry), včetně všech příloh a souborů pro následné vygenerování PDF souboru dokumentace (uložená v ZIP archívu) src/ - kompletní zdrojové soubory aplikačního programu Obchodní systém readme.txt - instrukce pro kompletní instalaci aplikačního programu Obchodní systém a pro následné spuštění aplikace včetně výchozích přihlašovacích údajů
42