SMÍCHOVSKÁ STŘEDNÍ PRŮMYSLOVÁ ŠKOLA Výroba, sklad a kalkulace Závěrečná zpráva 22.3.2010 Maturitní projekt zabývající se tvorbou programu, který se bude využívat ve firmě Gravo.cz a bude sloužit ke kalkulaci ceny výrobku, správě výrobků a součástek a také k výpočtům gravírování.
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Obsah Zadání... 3 Hodnotící list... 4 Čestné prohlášení záka... 6 Anotace... 7 Česká verze... 7 English version... 7 Úvod... 8 Analýza řešeného projektu... 9 Seznámení s projektem... 9 Zamyšlení nad projektem... 9 Použitý software:... 9 Postup při zpracování projektu... 9 Výstupy projektu... 9 Vlastní řešení žákovského projektu... 11 Vytvoření databáze... 11 Tvorba GUI... 13 Kalkulace ceny... 13 Gravírování... 16 Propojení s databází a výpis dat v aplikaci; Historie ceny... 19 Ošetření vstupů, chyby a upozorňující zprávy... 21 Plakát... 24 Závěrečné zhodnocení... 25 2 Zadání Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Zadání Žákovský projekt Název: Výroba, sklad a kalkulace Jméno: Ročník: 4 Třída: 4. C Školní 2009/2010 Garant Ing. Jaroslav Zápotocký rok: projektu: Obor: Informační technologie Konzultant Zadání: Vytvořte program pro evidenci výroby a kalkulaci ceny výrobku dle zadání. Účel projektu: Program pro reálnou kalkulaci cen výrobku a jeho tvorby. Bude sloužit pro reálné kalkulace v malé soukromé firmě zabývající se výrobou a prodejem cen pro vítěze soutěží. Výstup (výstupy) projektu: Programy pro kalkulaci a evidenci - databáze. Obsah: (rozepsané úkoly) 1. Proveďte analýzu problému a navrhněte postupy pro splnění zadání 2. Sestavte harmonogram prací a hodnotící list s bodovanými úkoly 3. Proveďte vlastní řešení projektu dle schváleného harmonogramu 4. Proveďte závěrečné zhodnocení projektu 5. Odevzdejte závěrečnou zprávu ve formě dokumentu v programu Word 6. Odevzdejte prezentaci projektu v programu PowerPoint 7. Proveďte veřejnou prezentaci svého projektu Žákovský projekt bude mít teoretickou a praktickou část. V teoretické části odevzdáte vytištěnou závěrečnou zprávu a případné další výstupy, plynoucí z vašeho projektu. Závěrečná zpráva, podklady pro prezentaci a případné další výstupy budou rovněž na připojeném nosiči CD. Součástí projektu je závěrečná veřejná prezentace projektu před třídou a dalšími návštěvníky prezentace. V praktické části budete svůj projekt obhajovat před maturitní komisí. Datum a podpis garanta: Smíchovská střední průmyslová škola Zadání 3
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Hodnotící list Název projektu: Výroba, sklad a kalkulace Úvod do PRO, pravidla PRO Jméno: Kaniok Tomáš Ter mín: šk.týden 2./3 7. Zadání projektu 3./3 8. Harmonogram prací 4./3 9. Státní svátek 5./4 0. 6./4 1. Analýza řešeného 7./4 problému 2. 8./4 3. 9./4 4. 10./ 45. Průběžná kontrola 1 11./ nárh a vytvoření databáze 46. 12./ 47. 13./ 48. 14./ 49. 15./ 50. Průběžná kontrola 2 16./ základní administrativa 51. programu 17./ 52. Vánoční prázdniny 18./ 53.,1. 19./ 2. Průběžná kontrola 3 20./ pokročilé funce programu 3. Pololetní klasifikace 21./ 4. 22./ 5. 23./ 6. 24./ 7. Průběžná kontrola 4 25./ odladění chyb, výstupy 8. 26./ 9. tum: Da 7.9.2009 14. 9.2009 21. 9.2009 28. 9.2009 5.1 0.2009 12. 10.2009 19. 10.2009 26. 10.2009 2.1 1.2009 9.1 1.2009 16. 11.2009 23. 11.2009 30. 11.2009 7.1 2.2009 14. 12.2009 21. 12.2009 28. 12..2009 4.1.2010 11. 1.2010 18. 1.2010 25. 1.2010 1.2.2010 8.2.2010 15. 2.2010 23. 2.2010 Tříd a: 4.C Maxim ální zisk bodů: bodů bodů bodů ebně bodů 5 bodů 5 bodů 15 15 15 chvalit 15 Školní rok: 2009-2010 Hod nocení (Poč.bodů): Pod pis garanta: 4 Hodnotící list Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Jarní prázdniny 27./ 10. Zakončení projektu - kontrola zprávy 11. 28./ Odevzdání projektu 29./ 12. Odevzdání závěrečné Třičtvrtěletní klasifikace 13. 14. 30./ 31./ Velikonoce 32./ 15. Prezentace projektu 33./ 16. Příprava obhajoby projektu Příprava obhajoby projektu 17. 18. 34./ 35./.2010.2010 3.2010 3.2010 3.2010.2010 4.2010 4.2010 4.2010 1.3 8.3 16. 23. 30. 5.4 12. 19. bodů bodů 5 bodů 10 5 bodů Celkem bodů za průběžnou práci 100 26. 10 Smíchovská střední průmyslová škola Hodnotící list 5
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Čestné prohlášení záka Prohlašuji, že jsem maturitní práci vypracoval samostatně, pod vedením garanta Ing. Jaroslava Zápotockého. V práci jsem použil informační zdroje uvedené v seznamu použité literatury a internetových stránek. V Praze dne 13. 3. 2010.... Podpis studenta 6 Čestné prohlášení záka Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Anotace Česká verze Vybral jsem si projekt s názvem Výroba, sklad a kalkulace. Projekt se bude zabývat tvorbou účetního programu. Budu vycházet z původního programu YPER z roku 1991 napsaný Ing. Jaroslavem Zápotockým, který bude i mým garantem. Projekt jsem si vybral, protože chci zdokonalit své znalosti v programování a zjistit co opravdu zvládnu naprogramovat. Dále také proto, že mi ze všech projektů přišel nejzajímavější a výsledkem bude v praxi skutečně použitelný program, který se bude používat a bude mít nějaké uplatnění. Důležitou součástí projektu bylo vytvoření databáze. Tu jsem naplnil náhodnými daty. A nyní je používám pro vyplňování formulářů v mé aplikaci. O ukládání a skladování dat se opět stará databáze. Toto byl můj první krok, dalším bylo vytvoření GUI (grafické uživatelské prostředí). Pak pouze vzniklé formuláře vyplnit daty a vytvořit funkce pro práci s nimi. Ve třetím kroku ošetřit všemožné chyby. Ještě zbývá přidat několik bonusových funkcí a můj projekt bude hotový. Na ukázku, jak bude program vypadat, přikládám nějaké obrázky. English version I chose project with name Manufacture, deposit and calculation. Project deals with creation of accounting program. I used original program YPER from 1991 written by Jaroslav Zápotocký, which is my supervisor too. I chose this one because I want to improve my knowledge in programming and to find out what I really can do in programming. It also because I think that this is the most interesting project and result would be really usable program, which will be used and will have some application. Important part of my project was database creating. I fill this database with some random data. And now I m using them for filling the form in my application. The database cares about saving and storing data again. This was my first step the next one was creating GUI (graphic user interface). Then I only filled incurred form with data and created function for work with them. The third step was treating of many sorts of errors. The last task is adding of some bonus function and my project has been done. To show you how this program looks I ve attached some picture. Smíchovská střední průmyslová škola Anotace 7
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Úvod Vybral jsem si projekt s názvem Výroba, sklad a kalkulace. Projekt se bude zabývat tvorbou účetního programu. Budu vycházet z původního programu YPER z roku 1991 napsaný Ing. Jaroslavem Zápotockým, který bude i mým garantem. Konzultanta mi bude dělat Ing. Olga Kaiferová. Projekt jsem si vybral, protože chci zdokonalit své znalosti v programování a zjistit co opravdu zvládnu naprogramovat. Dále také proto, že mi ze všech projektů přišel nejzajímavější a výsledkem bude v praxi skutečně použitelný program, který se bude používat a bude mít nějaké uplatnění. Obrázek 1 původní program YPER 8 Úvod Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Analýza řešeného projektu Seznámení s projektem Program budu určen pro společnost Gravo.cz věnující se výrobě sportovních pohárů, medailí a trofejí. Společnost ho bude používat k výpočtu ceny výsledného produktu, k organizaci skladu a evidenci gravírování. Kvůli časové náročnosti udělám pouze některé kategorie původního programu, ostatní funkce budou připraveny k dodělání. Zpracovávat budu kategorie Evidence gravírování a její podkategorie: zakázky gravírování, materiály gravírování, zákazníci, zboží skladové položky. Dále pak budu dělat kalkulace ceny a rád bych stihl i evidenci zboží. Právě proto, že bude program nasazen v praxi, bude důležité dbát na rychlou práci s programem a hlavně jeho stabilitu a uživatelskou přívětivost. Inspiraci budu hledat v doteď používaném programu YPER na kterém celý svůj projekt postavím. Zamyšlení nad projektem Jako první je třeba se zamyslet, co zadavatel od projektu očekává? Musí to být lokální aplikace bez potřeby cokoliv doinstalovat, tudíž použití Javy (je nutná instalace JDK) nebo PHP (musí běžet na serveru) jako programovacího jazyka se nezdá jako dobrý nápad, proto celý projekt bude naprogramovaný v Visual Basicu. Data budou uložena v databázi od Microsoft Access. Použitý software: Microsoft Visual Studio 2008 Microsoft Access Microsoft Word Microsoft PowerPoint Pro databáze budu používat Microsoft Access a kód budu psát za pomoci Microsoft Visual Studia 2008. Dokumentace bude ve Wordu a závěrečná prezentace v PowerPointu. Postup při zpracování projektu Dalším krokem by mělo být prostudování původní struktury databáze a navržení nové, a pro dnešní způsoby programování lépe vyhovující verze. Po zakreslení struktury přijde na řadu praktické zpracování v MS Accessu a naplnění databáze zkušebními daty. Databáze je hotova, co dál? Nyní přichází použití Visual Studia 2008 v něm navrhnu grafické prostředí, které samozřejmě musí správně reagovat na už zažité klávesové zkratky. Poté jen napsat kód aplikace, který bude rozdělený do několika částí podle funkce. Proměnné hodnoty bude možné měnit pomocí konfiguračního souboru, který bude v kořenové složce programu a bude k němu přidán textový soubor s popisem změn, které se dají pomocí tohoto souboru upravit a samozřejmě i jak se jednotlivé hodnoty mění a jaký mají rozsah. Poté ještě zkontrolovat funkčnost programu a odladit jeho chování při různých podmínkách. Zajistit co nejrychlejší práci s programem a jeho stabilitu. Pokusit se objevit všechny možné faktory, kterými by mohl neznalý uživatel aplikace způsobit její pád a správně je ošetřit nebo odstranit. Výstupy projektu CD o Zdrojový kód Smíchovská střední průmyslová škola Analýza řešeného projektu 9
22. března 2010 [VÝROBA, SKLAD A KALKULACE] o o Prezentace Spustitelný soubor databáze Na CD dodám jak zdrojové kódy programu, tak i hotový spustitelný soubor. Dále pak konfigurační soubor a soubory databáze. Musím také vypracovat prezentaci v PowerPointu, kterou odevzdám a podle ní budu projekt obhajovat před maturitní komisí. 1 0 Analýza řešeného projektu Smíchovská střední průmyslová škola
Vlastní řešení žákovského projektu [VÝROBA, SKLAD A KALKULACE] 22. března 2010 Vytvoření databáze Jako první jsem si prošel původní program YPER, abych si udělal přibližný obraz, jak bude databáze vypadat. Poté přišla na řadu tužka a papír a náčrt databáze na papír, ze kterého jsem to poté začal předělávat do databáze accessu. Vytvořil jsem tabulku soucast, která obsahuje několik položek: ID-identifikační číslo; nazev-název součástky; popis-stručný popis produktu; počet-počet součástek na skladu; skladova jednotka-jednotka produktu; alternativni jednotka-některé produkty můžou být jak v kusech, tak například v cm2;smazano-určuje zda-li není součástka smazána. Druhá tabulka je vyrobek, ta obsahuje parametry: ID; nazev; pocet; popis; - ty jsou stejné jako u tabulky soucast a dále parametry id_zakaznika pomoci kterého propojujeme tuto tabulku s tabulkou zakaznik a jako poslední stav, který uvádí v krátkém textovém popisku stav výrobku (dokončen apod.). Obě tyto tabulky propojíme tabulkou vyrobek_soucasti (pomocí id_vyrobku a id_soucasti), která navíc obsahuje počet daných součástek ve výrobku. Navíc přidáme tabulku cena, která nese parametry id;id_soucastky;cena; datum(u datumu není třeba uchovávat dva; budeme pouze uchovávat datum-od a jakmile vložíme nový, je jasné že předchozí pozbývá platnosti). Další větví mojí databáze je ta část, která se bude zabývat gravírováním. Tabulku material tvoří: ID; popis; material-druh materiálu (měď, cín apod.); barva (červená atd.); tloustka; sirka; vyska; nakupni_cena-za mm 2 ; prodejni cena-za mm 2. A druhá bude gravirovani ta obsahuje: ID; ID_zakaznika; poznamka-popis celého výrobku; realizace-zde je krátce popsáno, co už je hotovo; gravirovat-zda se má výrobek už gravírovat; objednano a expedovatdatumy objednávky a expedice. Propojovat je bude opět třetí databáze gravirovani_material, ta pomocí id_gravirovani a id_materialu propojuje obě tabulky a navíc ještě obsahuje parametry poznamka; sirka; vyska-jak má být gravírovaný objekt veliký; cena-cena stanovená podle náročnosti gravirování; pocet. Jako poslední sem vytvořil tabulku zakaznik ve které jsou už pouze nějaká údaje o zákazníkovy. Jako první kontaktní údaje (firma, jmeno, prijmeni, ulice, mesto, PSC, mobil, telefon, fax email, web) dále pak informace jako ICO, DIC firmy, cislo_uctu a banka, mena ve které bude zákazník platit a nakonec i zakladni_sleva-to je zákazníkova sleva. Pro zjednodušení a urychlení byli ještě přidány tabulky nastaveni, jednotka. První z nich uchovává různé nastavení programu jako DPH a koeficienty cen. Druhá z nich už pouze slouží k normalizaci jednotek. Znázornění databáze přikládám na další stránce. Smíchovská střední průmyslová škola Vlastní řešení žákovského projektu 1 1
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Obrázek 2 schéma databáze 1 2 Vlastní řešení žákovského projektu Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Tvorba GUI Do druhého termínu jsem měl za úkol vytvořit GUI (graphical user interface=grafické uživatelské prostředí), tedy vytvořit menu a vstupní i výstupní formuláře. Začal jsem s menu. Kalkulace ceny Menu je víceúrovňové a začíná horní lištou, ve které jsou umístěna tři rozbalovací políčka. Jsou to Kalkulace ceny, Gravírování a Info. Začnu tou nejjednodušší a to je Info. V té se nachází pouze další 3 políčka, která se už dále nerozvíjejí, jsou to Info o aplikaci, Info o společnosti, nastavení a Konec. GUI 1 Myslím, že všechny položky jsou jasné a proto přejdu rovnou ke Kalkulace ceny, ta není také složitá pouze spustí výpis všech produktů (uvidím, jak se osvědčí tato verze pouze s jedním rich boxem, případně by byla verze s více) a dále pak vypíše všemožné kalkulační ceny, které se počítají podle předem připravených hodnot uložených v databázi (dále jen DB) v tabulce nastavení. Nejlépe to nastíním obrázkem Smíchovská střední průmyslová škola Vlastní řešení žákovského projektu 1 3
22. března 2010 [VÝROBA, SKLAD A KALKULACE] GUI 2 1 4 Vlastní řešení žákovského projektu Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Součástka Další položka Součástka se zabývá součástkou a nabízí možnosti otevřít a Nový. Všechny formuláře součástky jsou téměř totožné, první se zabývá pouze procházením a editací již hotových součástek. Při kliknutí na nový nám přidá nový záznam do datového panelu. Na formuláři se ještě nachází tlačítko uložit, která buď aktualizuje data v DB, případně vytvoří nový záznam. Plus ještě tlačítko zrušit, které ruší veškeré provedené editace nebo resetuje celý formulář opět na prázdné hodnoty. Viz.další obrázek. GUI 3 Výrobek Třetí položkou je Výrobek, ta má stejné submenu jako Součáska a fungujou naproste stejně, jediným, čím se liší jsou jinými položkami a dvouřádkovým datovým listem nejvíc napoví obrázek. Smíchovská střední průmyslová škola Vlastní řešení žákovského projektu 1 5
22. března 2010 [VÝROBA, SKLAD A KALKULACE] GUI 4 Čtvrtá a poslední položka je Zavřít vše a ta pouze zavře všechna aktuální okna. Gravírování Zde se nacházejí pouze tři položky. Poslední a to znova Zavřít vše je jasná- zavírá všechny panely. Ale jsou tu i položky Materiál a Gravírování. Materiál Tady už není moc novinek a opakuje se situace z předchozích. Dále jsem ještě zaměnil smazáno za Nedostupný. Protože materiál bude pravděpodobně neustále vyráběný, jen například dojde nebo bude problém s dodávkou. 1 6 Vlastní řešení žákovského projektu Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 GUI 5 Gravírování Opět to samé, tlačítko uložit, zrušit a spousta formulářů, která se chovají úplně stejně jako u předchozích, kromě zamčeného formuláře zákazníka. Smíchovská střední průmyslová škola Vlastní řešení žákovského projektu 1 7
22. března 2010 [VÝROBA, SKLAD A KALKULACE] GUI 6 1 8 Vlastní řešení žákovského projektu Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Propojení s databází a výpis dat v aplikaci; Historie ceny Mnou vytvořené uživatelské prostředí a databázi jsem musel propojit a všechny data korektně vypsat v předem připravených formulářích. Navíc jsem ještě přidal historii ceny součástky, která se dá vypsat pomocí select boxu s datem, nová cena se přidává pomocí tlačítka přidat cenu. Vše je opět vidět na přiložených obrázcích. Vyplněné 1 Smíchovská střední průmyslová škola Vlastní řešení žákovského projektu 1 9
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Vyplněné 2 2 0 Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Ošetření vstupů, chyby a upozorňující zprávy Jako první bych rád poukázal na rozšíření v podobě upozornění msgboxem. To se zobrazí při vkládání dat do databáze, upravování dat, nebo pokud se operace nepodaří, vypíše se příslušná chyba, viz přiložené obrázky. Msgbox 1 Smíchovská střední průmyslová škola 2 1
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Msgbox 2 Msgbox 3 Dále jsem přidal validaci všech formulářových polí a zároveň k nim doplnil správné jednotky. Kč k měně, mm k hodnotám délky apod. Nejlépe je to vidět na obrázku s materiálem a tak přikládám obrázek. Samozřejmě v případě zadání nevhodné hodnoty vyskočí opět msgbox s chybou, takže všude probíhá striktní validace. Navíc program správné hodnoty doplní sám, a tudíž uživatel není nijak zdržován. 2 2 Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Hodnoty u polí ve formulářích 1 Smíchovská střední průmyslová škola 2 3
22. března 2010 [VÝROBA, SKLAD A KALKULACE] Plakát 2 4 Plakát Smíchovská střední průmyslová škola
[VÝROBA, SKLAD A KALKULACE] 22. března 2010 Závěrečné zhodnocení Projekt byl velmi časově náročný, proto byl velký problém odevzdávat příslušné zprávy včas. V průběhu projektu se naskytlo několik problémů, ale všechny jsem naštěstí byl schopen vyřešit za pomoci učitelského sboru naší školy. Byla to pro mě obohacující zkušenost ve které jsem si zlepšil svoje znalosti především v návrhu databáze Accessu a programování aplikací ve Visual Basicu. S výsledkem mého projektu jsem spokojen a doufám, že bude dobře použitelný v praxi. Smíchovská střední průmyslová škola Závěrečné zhodnocení 2 5