Mendelova univerzita v Brně Provozně ekonomická fakulta
Skladový systém s automatickou identifikací Bakalářská práce
Vedoucí práce: Ing. Miroslav Cepl
Adam Řešetka
Brno 2011
Zde bude vloženo zadání práce
Rád bych zde poděkoval svému vedoucímu práce Ing. Miroslavu Ceplovi, za cenné konstruktivní rady a čas věnovaný osobním konzultacím.
Prohlašuji, že jsem tuto bakalářskou práci a aplikaci vypracoval samostatně s použitím literatury, kterou uvádím v seznamu. V Brně dne 3. ledna 2011
__________________
Abstract Řešetka, A. Storage system with automatic identification. Bachelor thesis. Brno: MENDELU, 2011. This bachelor thesis deals with the analysis, design and experimental implementation of information system to manage company warehouse stock. The prototype of application with graphical user interface was developed using C# programming language, Microsoft .NET Framework platform and Microsoft SQL Server database system. Keywords storage system, information system, automatic identification, barcode, RFID, SQL, database, C#, .NET
Abstrakt Řešetka, A. Skladový systém s automatickou identifikací. Bakalářská práce. Brno: MENDELU, 2011. Tato bakalářská práce se zabývá analýzou, návrhem a experimentální implementací informačního systému pro správu skladových zásob podniku. Prototyp aplikace s grafickým uživatelským rozhraním byl vytvořen pomocí programovacího jazyka C#, platformy Microsoft .NET Framework a databázového systému Microsoft SQL Server. Klíčová slova skladový systém, informační systém, automatická identifikace, čárové kódy, RFID, SQL, databáze, C#, .NET
Obsah
6
Obsah 1
2
3
Úvod 1.1
Cíl práce .................................................................................................... 8
1.2
Metodika ................................................................................................... 8
Analýza problematiky
9
2.1
Situace na trhu .......................................................................................... 9
2.2
Potřeby podniku ....................................................................................... 9
2.3
Informační systém ...................................................................................10
Technologie 3.1
11
Programovací jazyky................................................................................ 11
3.1.1
PHP .................................................................................................. 11
3.1.2
Java ..................................................................................................12
3.1.3
C++...................................................................................................12
3.1.4
C# .....................................................................................................12
3.2
Databázové systémy.................................................................................14
3.2.1
MySQL..............................................................................................14
3.2.2
Oracle ...............................................................................................15
3.2.3
Microsoft SQL ..................................................................................15
3.3
4
8
Automatická identifikace.........................................................................16
3.3.1
Optické technologie .........................................................................16
3.3.2
Radiofrekvenční technologie ...........................................................18
Návrh skladového systému 4.1
20
Návrh funkcí ........................................................................................... 20
4.1.1
Přístup do systému.......................................................................... 20
4.1.2
Prostředí aplikace a hlavní nabídka ............................................... 20
4.1.3
Správa uživatelů ...............................................................................21
4.1.4
Správa obchodních partnerů .......................................................... 22
4.1.5
Údaje o podniku.............................................................................. 22
Obsah
4.1.6
Správa zboží .................................................................................... 23
4.1.7
Skladová evidence ........................................................................... 24
4.1.8
Přístup k dokladům......................................................................... 26
4.2
5
7
Návrh databáze ....................................................................................... 26
4.2.1
ERD ................................................................................................. 26
4.2.2
Popis tabulek................................................................................... 27
4.3
Výběr technologií .................................................................................... 29
4.4
Způsob nasazení systému ....................................................................... 30
Implementace systému
31
5.1
Tvorba databáze.......................................................................................31
5.2
Tvorba klientské aplikace ....................................................................... 32
5.3
Experimentální nasazení aplikace.......................................................... 35
6
Diskuze
36
7
Závěr
37
8
Literatura
38
Přílohy
39
A
Náhledy aplikace
40
B
Elektronické přílohy
42
Úvod
8
1 Úvod Problematika skladů a potřeba skladování se týká velkého množství malých, středních i velkých společností z různých oborů podnikání. Zejména u společností, které se zabývají prodejem zboží, tvoří sklady tohoto zboží a jejich obsah hlavní oblast zájmu. Výpočetní technika a jiné moderní technologie pak výrazně pomáhají těmto podnikům v práci a přináší jim nové možnosti, přístupy, pohledy na věc a tím často i konkurenční výhodu. Toho jsou si dobře vědomi i výrobci software a dodavatelé informačních systémů, kteří nabízí různé komerční produkty a ERP (Enterprise Resource Planning). Poslední dobou se však objevují i OpenSource řešení. Stále přitom existují podniky, které tyto systémy nevyužívají a kde je dokumentace vedena a uchovávána pouze v papírové podobě, což ji činí hůře dostupnou a špatně využitelnou pro další zpracování a analyzování. Vyhledávání v takových dokumentech může být navíc velmi časově náročné.
1.1
Cíl práce
Cílem této práce je navrhnout a implementovat skladový systém, umožňující evidenci a správu zboží pro podporu základních činností a procesů probíhajících ve skladu a tím zefektivnit chod podniku. Přístup k systému bude možný podle potřeb v rámci celého podniku a evidované informace musí být dostupné i jinými podnikovými systémy.
1.2 Metodika Pro dosažení výše uvedeného cíle bude tato práce rozdělena do následujících částí. První část se bude zabývat potřebami podniku v oblasti skladování zboží a jeho nároky na systém pro skladové hospodářství. Na základě provedené analýzy budou popsány v současnosti používané technologie umožňující řešení této problematiky a následně bude vytvořen návrh systému, který bude základní zjištěné potřeby podniku uspokojovat. Takto navržený systém bude implementován zvolenou technologií.
Analýza problematiky
9
2 Analýza problematiky Sklad a s ním související skladový systém je důležitou součástí podniku a je spojovacím článkem mezi podnikem a zákazníkem. Ve spojení se skladovým hospodářstvím probíhá velké množství procesů, které se dějí opakovaně, zatěžují personál a jsou časově náročné. Jedná se zejména o činnosti v rámci příjmu zboží, jeho ukládání, překládání/převodu a expedice nebo výdej zboží. Tyto činnosti zahrnují mnoho dílčích úkonů, zejména fyzickou kontrolu stavu zboží, jeho množství podle dokladu a skutečného množství, kontrolu správnosti druhů, tvorbu dokumentace a její aktualizaci a pak samozřejmě různou manipulaci se zbožím.
2.1 Situace na trhu Současná situace na našem trhu a v ostatních zemích střední Evropy je taková, že téměř většina spotřebního zboží je označena čárovým kódem a to převážně typem EAN, případně jiným, v závislosti na druhu zboží nebo výrobci. Toho si lze všimnout téměř v každém obchodě. Zboží bývá označeno kódem i v případě, kdy ho prodejce nevyužívá při prodeji. Čárové kódy se používají i pro označování velkých balení a obchodních jednotek, distribučních jednotek a dokladů. Mimo to se stále více uplatňuje radiofrekvenční technologie, zejména pro velká balení a kontejnery.
2.2 Potřeby podniku V dnešních podmínkách silné konkurence je třeba zákazníkům nabízet kromě nového a kvalitního zboží i kvalitní služby s tím spojené a jejich úroveň neustále zvyšovat tak, aby odrážela rostoucí požadavky zákazníků. Podle Ježka (1996) lze za faktory úspěšnosti považovat • zvyšování kvality, • snižování nákladů, • zvyšování pružnosti. Přičemž význam těchto společně působících faktorů se přesouvá od kvality, přes snižování nákladů, až k pružnosti. To znamená zajistit schopnost podniku co nejrychleji zákazníkovi dodat požadované zboží, dokázat pružně a efektivně spravovat skladové zásoby a reagovat na změny sortimentu a stav zásob. Nedílnou součástí skladového hospodářství je poskytování kvalitních informací vedoucím pracovníkům pro potřeby rozhodování a tvorbu analýz. Takové sbírání a zpracování informací může být problémem zejména u větších decentralizovaných podniků s více sklady, prodejnami atd.
Analýza problematiky
10
2.3 Informační systém Výše zmíněné faktory a potřeby podniků kladou vysoké nároky na informační a řídicí systémy a jejich automatizaci. Velikost, rozsah a obsah takového informačního systému podniku závisí od činnosti podniku, jeho velikosti a nároků managementu podniku. Může být tvořen jedním komplexním systémem nebo se skládat z několika dílčích systémů s různou mírou propojení, spolupráce. Příkladem může být účetní, pokladní, mzdový nebo zde řešený skladový systém. Jedním z nároků na skladový systém je, aby ulehčil práci zaměstnancům ve skladu a poskytovat jim na jednom místě všechny informace, které potřebují. Ulehčením jejich práce se dá ve výsledku dosáhnout zvýšení jejich efektivnosti a tím zrychlení chodu skladu s pozitivním vlivem na celý podnik. Dalším přínosem může být snížení nároků na velikost personálu. To lze realizovat pomocí automatizovaného pořizování dat, rychlé a bezchybné identifikace prvků, se kterými přijde zaměstnanec do styku nebo automatickou tvorbou dokladů a jejich zakládáním. Je vhodné zmínit, že doklady vystavované skladem slouží jako podklady pro účetnictví a je třeba zajistit jejich správné a včasné vyhotovení a poskytnutí dalším útvarům. Dalším požadavkem na systém je možnost přístupu a současné práce více uživatelů, protože se předpokládá využívání systému jak pracovníky skladu (popř. skladů), tak managementem a dalšími osobami. V souvislosti s přístupem uživatelů, pracovníků firmy s různými formálními funkcemi, je třeba zajistit, aby každý pracovník využívající systém, měl přístup pouze k informacím a funkcím, které potřebuje ke své práci. Zaměstnanci, jejich pozice i potřeby vedení se v průběhu času mění, proto je potřeba umožnit příslušným osobám správu zaměstnanců a jejich oprávnění. Zejména je potřeba zamezit přístupu do systému neoprávněným osobám. Hlavní složku systému by pak měla tvořit evidence zásob a katalog zboží. Manipulaci se zbožím provádí skladník a jedná se v základu o příjem zboží, jeho převod a výdej, takže právě skladník bude do systému zadávat informace o zásobách a změně jejich stavu. Samozřejmostí je již zmíněná schopnost tvorby a evidence skladových a jiných potřebných dokladů, zejména příjemek, převodek a výdejek. Pro tyto doklady je třeba zajistit možnost tisku. Evidence dokladů také znamená možnost jejich vyhledávání, procházení a zobrazování těchto dokladů a jejich obsahu. Vzhledem k faktu, že skladový systém se zabývá pouze částí problematiky podniku a data v něm obsažená budou využívána i jinými systémy, je třeba zajistit přístup k těmto datům. Jak již bylo zmíněno, neustále se objevují nové požadavky vedení podniků na informační systém a jeho funkcionalitu. Trendem posledních let je zejména hledání nových kanálů pro komunikaci a obchodování se zákazníky. Nejrozšířenějším kanálem v současnosti bývají firemní weby a s nimi spojené e-shopy. Lze tedy předpokládat možné budoucí rozšíření systému.
Technologie
11
3 Technologie Technologie zajímavé z pohledu této práce a možnosti jejich nasazení v souvislosti s uvažovaným skladovým systémem představují zejména oblast programovacích jazyků, databází a systémů pro automatickou identifikaci. V následující části tedy budou popsáni vhodní zástupci ze zmíněných oblastí.
3.1 Programovací jazyky Volba programovacího jazyka je spjata s typem aplikace, kterou jím lze vytvořit. Z dnešního pohledu můžeme aplikace v základu rozdělit na klientské (tlusté) aplikace a webové (tenké) aplikace. Tlusté aplikace běží přímo na počítači klienta, který ji obsluhuje a zpravidla bývají na tomto počítači nainstalovány. Oproti tomu webové aplikace běží na vzdáleném serveru a na klientský počítač se přenáší převážně uživatelské rozhraní zobrazované ve webovém prohlížeči, který je dnes nainstalován v podstatě v každém počítači. Obliba těchto tenkých aplikací vzrostla zejména v několika posledních letech a jejich vývoj v současnosti často znamená využití hned několika technologií, nástrojů a programovacích jazyků současně. Jejich nevýhodou je, že neumí poskytnout dostatečně bohaté uživatelské prostředí. Velikým rozdílem mezi těmito aplikacemi je jejich multiplatformost. Možnost provozovat aplikaci na více platformách zpravidla není problém pro webové aplikace, opačná situace je však u klientských aplikací. V této kategorii je na tom v současnosti nejlépe zřejmě Java. 3.1.1
PHP
PHP (rekurzivní zkratka PHP Hypertext Preprocessor) je jedním ze dvou nejrozšířenějších skriptovacích programovacích jazyků. Používá se především pro tvorbu webových aplikací a jedná se o open source projekt. Jeho vznik se datuje do roku 1994, kdy jeho autor Rasmus Lerdorf sepsal několik skriptů v Perlu, aby se mohl dívat, kdo si prohlíží jeho výsledky na internetu. To dalo vzniknout balíčku „Personal Home Page“, což je původní význam názvu PHP a vzniklo PHP2. Později se vývoj rozrostl na skupinu programátorů, bylo vytvořeno jednoduché API umožňující přidávání funkcí do jazyka a byla zdokonalena syntaxe, která se začala podobat jazykům C, C++ a Java, což byl počátek PHP3. Následující verze PHP4 běžela na jádře ZEND, které bylo navrženo tak, aby bylo snadno implementovatelné do různých aplikací (Castagnetto a kol., 2001). Současná verze je PHP5, která podporuje mnoho databázových systémů. PHP pracuje na straně serveru, je nezávislý na platformě a je zapouzdřen uvnitř HTML dokumentu. Skript je tedy interpretován serverem a až výsledek se pak odesílá klientovi.
Technologie
3.1.2
12
Java
Jazyk Java vytvořila společnost Sun Microsystems (nyní vlastněná firmou Oracle), veřejnosti jej představila v roce 1995 a o čtyři roky později se Java stala typickým programovacím jazykem. Vývojový tým vedl J. Gosling a jazyk se měl původně jmenovat Oak (dub), podle stromu, který Goslingovi rostl před oknem. Protože byl ale tento název již zadán, rozhodli se ho pojmenovat Java, údajně podle slangového jména pro kávu. Java byla původně vyvíjena k programování spotřební elektroniky jako jsou televize, mikrovlnné trouby apod. V současnosti jde o jeden z nejpoužívanějších jazyků a zahrnuje několik edicí jako Java 2 Standard Edition (J2SE), Java 2 Enterprise Edition (J2EE) nebo Java 2 Micro Edition (J2ME), která se používá k programování aplikací pro mobilní telefony apod. Kromě klientských aplikací se používá pro psaní apletů (krátké programy vkládané do webových stránek), servletů (programy běžící na webových serverech) a tzv. aplikací střední vrstvy (součásti distribuovaných aplikací) (Virius, 2001). Současná verze je Java Standard Edition 6. Jedná se o robustní, distribuovaný, objektově orientovaný jazyk, který místo překládání do strojového kódu vytváří bajtový kód generovaný kompilátorem a ten se až následně překládá do strojového kódu pomocí Java Virtual Machine (JVM), běžícím na daném počítači. Tento přístup Javě zajišťuje multiplatformost, protože JVM je zdarma k dispozici pro většinu druhů počítačů. Na druhou stranu však způsobuje pomalejší načítání vytvořených aplikací, kvůli nutnosti program nejprve přeložit a teprve následně spustit. 3.1.3
C++
Dalším, v současnosti populárním jazykem, je objektově orientované C++. Tento jazyk vznikl v roce 1983 a vytvořil ho Brajne Stroustrup v Bellových laboratořích AT&T. První oficiální norma jazyka však vznikla v roce 1998. Poslední verze ISO/IEC 14882-2003 byla přijata v roce 2003. Tato byla pak v letech 2006 a 2007 aktualizována. Jedná se o rozšíření jazyka C a již samotný název obsahující operátor inkrementace o jedničku naznačuje evoluční charakter jazyka. V C++ lze tedy programovat objektově i strukturovaně. 3.1.4
C#
Programovací jazyk C# vytvořila společnost Microsoft speciálně pro technologii .NET a při vývoji využila zkušeností s objektově orientovanými jazyky z posledních dvaceti let. Sama společnost ho popisuje jako „jednoduchý, moderní, objektově orientovaný a typově bezpečný programovací jazyk odvozený od jazyků C a C++“ (Nagel a kol., 2009). Můžeme ale říci, že inspirací byla i Java. Vývojovým prostředím pro práci se C# je převážně Microsoft Visual Studio, přičemž edice Express je zdarma ke stažení. Tento jazyk je však potřeba vnímat společně s platformou .NET Framework. Ikdyž není její součástí a jde o samostatný jazyk, kompilátor jazyka C# je navržen ke generování kódu pro .NET. Jádrem této platformy je běhové pro-
Technologie
13
středí CLR (Common Language Runtime) pro běh a spouštění aplikací a potřebné knihovny. Samotný překlad aplikace ze zdrojového kódu v jazyce C# nebo jiném podporovaném jazyce nejprve proběhne do jazyka IL (Intermediate Language) a následně pomocí CLR z IL do kódu specifické cílové platformy. Tento přístup je podobný bajtovému kódu u jazyka Java a přináší určité výhody zejména v podobě nezávislosti na platformě. Bohužel, v současnosti je kompletní implementace .NET pouze pro Windows. Nejrozšířenější platformu .NET Framework lze tedy provozovat v operačních systémech Windows 98 a vyšších, přičemž pro běh příslušných aplikací musí být sada .NET nainstalována. Další platforma .NET Compact Framework se využívá pro mobilní telefony s Windows apod. a .NET Micro Framework cílí na embedded zařízení. O implementaci .NET do unixových operačních systémů se snaží open source projekt Mono. Zprostředkující jazyk IL umožňuje i spolupráci jazyků, tedy překládání do jazyka IL z více různých jazyků, přičemž přeložené kódy by měly spolupracovat. Těmito dalšími jazyky mohou být například Visual Basic .NET, Visual C++, F#, J#. Platforma .NET Framework 1.0 spolu se C# 1.0 byla vydána v roce 2002. Jazyk C# verze 1.0 představoval základní podporu objektového programování. Roku 2005 přišla verze .NET Framework 2.0 a C# 2.0 a následoval C# 3.0 spolu s .NET Frameworkem 3.5 v roce 2007. V současnosti poslední verze C# 4.0 a .NET Framework 4.0 vyšli v roce 2010 spolu s vývojovým prostředím MS Visual Studio 2010. Jazyk C# umožňuje vytvářet celou řadu aplikací od konzolových, přes klasické klientské (tlusté) formulářové aplikace pro Windows, databázové programy, až po webové aplikace. Při tvorbě grafických klientských aplikací v prostředí .NET lze volit mezi knihovnami Windows Forms a WPF (Windows Presentation Foundation). API Windows Forms jsou součástí .NET Framework, poskytují přístup k nativním ovládacím prvkům systému Windows a umožňují snadný a rychlý vývoj uživatelského rozhraní. WPF je jednou z nových technologií, sloužících k vytvoření uživatelského rozhraní a je součástí .NET Framework od verze 3.0. Díky použití XAML (XML for Applications Markup Language) od sebe aplikace odděluje vzhled a svou funkčnost, čímž umožňuje vymezit prostor pro práci návrháře a vývojáře. Na rozdíl od Windows Forms WPF funguje pomocí DirectX a podporuje hardwarovou akceleraci pomocí grafické karty. ASP.NET je součástí systému .NET Framework a umožňuje tvorbu dynamických webových aplikací a služeb. Jedná se o nástupce starší technologie ASP (Active Server Pages), která v podstatě tvořila HTML stránky se skripty v jazyce VBSctipt nebo JavaScript, prováděných na straně serveru. Stránky v ASP však měly mnoho nedostatků, jako třeba pomalé zobrazování způsobené interpretováním kódu na straně serveru. ASP.NET, kompletně přepracované ASP, je založeno na výše zmíněném CLR, což přináší všechny výhody s tím spojené a výsledné stránky jsou strukturované a mnohem rychlejší. Důležitá problematika správy stavu u bezstavového protokolu HTTP je řešena pomocí skrytého pole ViewState generovaného serverem. Toto pole se předává uživateli ve stránce
Technologie
14
a při následném vyvolání akce jsou informace odeslány zpět na server (Postback).
3.2 Databázové systémy Databáze je kolekce uspořádaných informací, speciálně navržená pro efektivní správu velkého objemu dat a je součástí databázového systému (DBMS), tedy softwarového programu, umožňujícího uživatelům získávat záznamy, aktualizovat je, případně je mazat a pracovat s nimi mnohem lépe, než to dovedou tabulkové aplikace nebo data uložená v souborech. Tyto systémy ukládají data do tabulek (entit), obsahujících řádky (záznamy) a sloupce (atributy) a v tomto ohledu se jedná o podobnou strukturu záznamu jako u tabulkových aplikací. Určitým typem databázového systému je pak relační databázový systém (RDBMS) založený na relačním modelu. Relace neboli vztahy znamenají možnost spojovat mezi sebou jednotlivé tabulky pomocí klíčů, jednoznačného identifikátoru každé tabulky. Takový přístup přináší určité výhody, jako eliminování existence duplicitních dat nebo zajištění integrity dat. Pro návrh takového databázového modelu se používá ERD (Entity-relationship diagram). Pro práci s daty v relačních databázích a dotazování na data slouží dotazovací jazyk SQL (Structured Query Language). Příkazy používané jazykem SQL se dělí na tři základní skupiny a to na příkazy pro definici dat (DDL), příkazy pro modifikaci dat (DML) a příkazy pro dotazování na data (DQL). Historie jazyka SQL začíná v roce 1970 ve společnosti IBM v San José, kde byl vyvinut databázový systém „System R“ a pro práci s jeho daty byl navržen jazyk SEQUEL (Structured English Query Language), později přejmenovaný na SQL. V současnosti nejnovějším standardem je SQL 3 (SQL-99). Za zmínku pak stojí, že dodavatelé databází používají vlastní implementace jazyka SQL (Agarwal, 2009). 3.2.1
MySQL
MySQL je označení pro otevřený systém správy relačních databází spouštěný ve více vláknech. Tento systém vyvinula švédská společnost TcX v reakci na nenalezení databázového systému, který by byl dostatečně rychlý a pružný (Maslakowski, 2001). Za tímto účelem byla později založena firma MySQL AB, kterou v roce 2008 odkoupila společnost Sun Microsystems, nyní vlastněná Oracle Corporation. Databáze MySQL je multiplatformní, lze ji tedy instalovat na systémy Linux, MS Windows i další a díky GPL licenci (nutno zmínit i existenci komerční licence) má v současnosti vysoký podíl mezi používanými databázemi. Pro kombinaci technologií Linux, Apache, MySQL a PHP se používá termín „LAMP“ resp. „WAMP“ ve spojení s MS Windows. Bohužel, vzhledem k dlouhodobému zaměření tohoto systému na rychlost, bylo MySQL až donedávna ochuzeno o pohledy, triggery a uložené procedury. V současnosti je MySQL ve verzi 5.
Technologie
3.2.2
15
Oracle
Oracle Database je název multiplatformního databázového systému vyvinutého společností Oracle Corporation. Díky své vysoké spolehlivosti, škálovatelnosti a pokročilosti bývá označován za standard mezi databázovými systémy. Tato databáze podporuje kromě standardního dotazovacího jazyka SQL (SQL-92) také nadstavbu v podobě imperativního jazyka PL/SQL (Procedura Language/SQL) založeného na jazyce Ada, která umožňuje procedurální programování uvnitř databázového systému. Nutno podotknout, že různé deriváty PL/SQL vytvořeného společností Oracle se rozšířily i do jiných relačních databází. Podporovány jsou i objektové databáze a hierarchický model dat. Historie tohoto systému začíná v roce 1977, kdy Lawrence J. Ellison s přáteli založil SDL (Software Development Laboratories) a o dva roky později představil Oracle V2 - relační databázový systém implementující základní funkcionalitu SQL. V roce 1982 se společnost přejmenovala na Oracle Corporation. Aktuální verze databázového systému je Oracle Database 11g. 3.2.3
Microsoft SQL
Microsoft SQL Server je relační databázový a analytický systém vyvinutý společností Microsoft. Tato společnost vstoupila na trh s relačními databázovými systémy v roce 1989 díky spolupráci se společností Sybase. Výsledkem spolupráce byl Microsoft SQL Server, jehož základem se stal Sybase SQL Server. Tento společný vývoj pokračoval do verze 4 a až v roce 1995 přišel Microsoft s SQL Serverem 6.0, vyvinutým zcela samostatně. Jeho aktuální verze nese označení SQL Server 2008 R2 (verze 10.5 vydaná v roce 2010). Silnou stránkou tohoto systému je integrace velkého množství služeb a nástrojů pro analýzu, dolování a transformaci dat, dále nativní podpora XML nebo výkonná a pružná bezpečnostní infrastruktura. Služby Business Inteligence pomáhají organizacím díky svým nástrojům zkoumat a analyzovat velké objemy dat integrovaných z více zdrojů, umí je dále je transformovat a filtrovat. SQL Server Reporting Services (SSRS) řeší problematiku tvorby sestav a jejich distribuce v rámci organizace. Schopnost replikace a zrcadlení databáze pak udržuje data i celé databáze synchronní a zabezpečuje je tak pro případné havárie primární databáze, kdy může jiný server automaticky převzít činnost bez ztráty dostupnosti databáze. Zajímavá je i možnost pracovat s databází samostatně, offline, kdy se po opětovném připojení provedené změny promítnou do hlavní databáze. Microsoft používá své rozšíření dotazovacího jazyka SQL, vytvořené během spolupráce se společností Sybase Transact-SQL (T-SQL). Jedná se o hlavní prostředek pro programování a správu serveru. Díky implementaci modulu CLR je navíc možné tvořit například procedury nebo spouště pomocí jakéhokoliv programovacího jazyka podporovaného platformou .NET.
Technologie
16
3.3 Automatická identifikace Technologie využitelné pro automatickou identifikaci je možné rozdělit do několika kategorií. Dělícím kritériem je zde fyzikální princip fungování těchto technologií a oblastí zájmu je pak identifikace prvků vyskytujících se běžně ve skladech, jako jsou obchodní jednotky – zboží, výrobky, dále distribuční jednotky nebo doklady. Můžeme proto vyloučit třeba automatickou identifikaci lidí. Technologie automatické identifikace můžeme tak v zásadě rozdělit na optické a radiofrekvenční. 3.3.1
Optické technologie
Tyto technologie využívají k identifikaci světlo a jeho odrazivost, která se liší v závislosti na konkrétním povrchu materiálu. Odražené světlo se pak zachycuje a vyhodnocuje světlocitlivými přístroji. Společnou vlastností je nutnost přímé viditelnosti identifikovaného předmětu. Kategorii tvoří lineární a dvoudimenzionální čárové kódy a optické rozpoznávání znaků OCR (Optical Character Recognition). Čárové kódy jsou stále nejlevnější technologií pro automatickou identifikaci a to i přes neustále se snižující náklady na radiofrekvenční identifikaci. Toto je způsobeno zejména snadným tiskem čárových kódů na většině tiskáren. 1.
Lineární čárové kódy (LČK) LČK tvoří nejrozšířenější část rodiny čárových kódů, přičemž první patent na čárový kód byl udělen v roce 1949 a dnes jich existuje již přes 200. Některé z nich jsou velmi rozšířené a používané, jiné se používají jen pro speciální účely nebo pouze v určitých zemích. Každý čárový kód je tvořen sekvencí čar a mezer a nosičem informací jsou v závislosti na konkrétním typu kódu čáry i mezery nebo pouze čáry. Každý kód může být vytvořen v různých velikostech a jeho začátek a konec tvoří znaky Start a Stop, které současně identifikují typ použitého kódu. Na konec může být navíc přiřazen kontrolní znak zamezující chybnému dekódování kódu v případě jeho poškození nebo špatného načtení. Samotné dekódování LČK se provádí podle kódovací tabulky příslušného kódu. V okolí každého kódu musí být tzv. ochranná oblast a kód musí být vyveden s dostatečným kontrastem mezi světlou s tmavou plochou, bez kterých by snímací zařízení nebylo schopno kód rozpoznat. Snímací zařízení lineárních kódů mohou využívat laserové nebo CCD technologie, přičemž laserová bývá rychlejší a spolehlivější. V posledních letech se stále více objevují i technologie založené na rozpoznávání kódu z fotografie a to zejména u mobilních zařízení s fotoaparátem. Hlavní skupiny lineárních čárových kódů jsou: 1.1. Kódy skupiny Code 39 Jedná se o alfanumerické kódy s variabilní délkou (obsahují znaky A-Z, 0-9 a speciální znaky), nízkou informační hustotou a tolerancí. Mohou
Technologie
17
být rozšířeny o úplnou tabulku ASCII (American Standard Code for Information Interchange) znaků. 1.2. Kódy skupiny Code 93 Alfanumerické kódy s variabilní délkou (obsahují znaky A-Z, 0-9, speciální znaky a řídicí znaky), vysokou informační hustotou a nízkou tolerancí. Mohou být rozšířeny o úplnou tabulku ASCII znaků. 1.3. Kódy skupiny 2/5 Jedná se o numerické kódy s variabilní délkou. Varianty Industrial, Invertovaný a IATA mají nízkou informační hustotu a široké toleranční pásmo umožňující použití méně přesné techniky tisku. Varianta Interleaved disponuje vysokou informační hustotou a je využívána systémem EAN ke značení distribučních jednotek jako jsou např. balíky, palety. Varianty Matrix a Datalogic mají taky vysokou informační hustotu. 1.4. Kód Code 128 Tento alfanumerický kód s variabilní délkou má vysokou informační hustotu a je vhodný pro tisk různými technikami. Obsahuje tři sady znaků označované kód A (obsahuje znaky A-Z, 0-9, řídicí a speciální), B (obsahuje znaky A-Z, a-z, 0-9, řídicí a speciální), C (obsahuje znaky 00-99, řídicí a speciální). 1.5. Kódy skupiny Codabar Variabilní numerický kód obsahující navíc písmena A-D. Mezera zde nenese informaci a kód nemá kontrolní znak. 1.6. Kódy EAN EAN (European Article Number) je numerický kód s pevnou délkou 12 znaků plus kontrolní znak v případě kódu EAN13 nebo s délkou 7 znaků plus kontrolní znak v případě EAN8 kódu. Tyto mohou být rozšířeny o dvou nebo pětimístný dodatkový kód. Jedná se především o světový standard používaný k označování obchodních jednotek, ale je možné ho použít i pro své vlastní účely. Jde aplikaci kódu UPC zavedeného v USA a Kanadě, se kterým je plně kompatibilní. 2.
2D kódy Dvourozměrné čárové kódy mají oproti lineárním informace kódovány horizontálně i vertikálně, což výrazně zvyšuje informační hustotu, tedy schopnost zakódovat určité množství informací na vymezené ploše. Informace jsou kódovány do mřížky s černými a bílými body. Kromě profesionálních čtecích zařízení se CCD snímačem lze i 2D kódy snímat a dekódovat mobilními telefony s fotoaparátem nebo podobnými osobními zařízeními. Hlavní typy 2D kódů jsou:
Technologie
18
2.1. QR Code Jedná se o 2D kód ve tvaru čtverce (viz. Obr. 1). Na první pohled je rozpoznatelný podle pozičních značek tvaru soustředěných čtyřúhelníků umístěných ve třech vrcholech a značkou ve tvaru malého čtyřúhelníku ve čtvrtém vrcholu. Tato technologie využívá mechanismus kontroly chyb. Obsahem mohou být data numerická, alfanumerická, binární nebo některá asijská znaková písma. Tento kód se stále častěji objevuje jako zdroj doprovodných informací na veřejnosti, na vizitkách nebo v časopisech. 2.2. Data Matrix Kód čtvercového tvaru se schopností kódovat celou ASCII tabulku a mechanismem kontroly chyb. Využívá se například v některých průmyslových odvětvích pro označování sériového čísla.
Obr. 1 Srovnání 2D kódu a lineárního čárového kódu Zdroj: http://pandazen.files.wordpress.com/2010/06/qrcode-vs-barcode.jpg
3.
OCR Metodou optického rozpoznávání znaků může být rozpoznáváno psané i tištěné písmo a výše zmíněné čárové kódy. Snímač tištěné texty nejprve převádí do digitální podoby, ve které se dále zpracovávají. Takto lze zpracovávat tištěné výstupy z tiskáren, knih a jiných dokumentů. V případech nekvalitního tisku může být tato metoda zcela nepoužitelná.
3.3.2
Radiofrekvenční technologie
Technologie RFID (Radio Frequency Identification) je stejně jako u čárových kódů bezdotyková, ale přenos dat zde probíhá radiovým signálem vyslaným čtecím zařízením. Tento signál je zachycen identifikačním štítkem, který následně odešle odpověď. Takový štítek tvoří v základu přijímací a vysílací anténa, diskrétní součástky a integrovaný čip. Štítek může být buď pasivní nebo aktivní a k přenosu se používají frekvence 125 kHz, 134 kHz a 13,56 MHz. Konkrétní použitá frekvence pak určuje vlastnosti štítku jako je přenosová vzdálenost nebo průchodnost materiály. Nově se objevuje i technologie umožňující tisk RFID
Technologie
19
štítků, takže bude možné je vyrábět/tisknout ve vlastní režii a nebude třeba je kupovat. Pasivní štítek je takový, který přijímá signál, díky kterému nabije svůj napájecí kondenzátor a následně odesílá odpověď. Aktivní štítek je složitější, méně používaný a díky své konstrukci i dražší. Obsahuje navíc malý zdroj energie v podobě baterie s životností v řádu let a umí sám vysílat obsažené data. Informace v něm obsažené se dají kromě čtení i zapisovat.
Obr. 2 RFID tag kombinovaný s čárovým kódem Zdroj: http://www.cartridgesave.co.uk/news/uploads/rfid.jpg
Návrh skladového systému
20
4 Návrh skladového systému Tato kapitola se zabývá samotným návrhem skladového systému na základě předchozí analýzy a dostupných technologií. Následující podkapitoly popisují jednotlivé součásti návrhu systému, jeho funkcionalitu a výběr technologií, které budou pro tvorbu aplikace použity.
4.1 Návrh funkcí 4.1.1
Přístup do systému
Přestože aplikace nebude veřejně přístupná a nebude možné k ní přistupovat ani z internetu, není vhodné, aby bylo možné hned po jejím spuštění pracovat, procházet a zobrazovat informace nebo jinak zasahovat do chodu podniku. Proto je třeba zajistit, aby byla po spuštění aplikace nejprve požadována autentizace osoby, která k systému přistupuje. Tento proces nesmí jít obejít a v případě, kdy ověření nebude úspěšné, je jedinou možností ukončení aplikace. Pro ověření osoby bude vyžadováno zadání kombinace uživatelského jména a hesla. Dojde-li k autorizaci, zobrazí se uživateli hlavní okno aplikace. 4.1.2
Prostředí aplikace a hlavní nabídka
Prostředí aplikace by mělo být přehledné a jednoduché, aby se mohl uživatel snadno orientovat a nebyla mu zbytečně komplikována práce. Hlavní okno aplikace zaštituje veškerou práci se systémem a poskytuje základní informace o přihlášeném uživateli, jeho oprávněních a dále aktuální datum, čas a lištu nástrojů obsahující tlačítka Náhled tisku a Tisk. Přesto, že se jedná o základní informace, nejsou nezbytné pro chod systému ani pro osobu pracující s aplikací a možnost jejich skrytí může být uživateli vítána. Skrytím se navíc uvolní další místo pro práci. Primární funkcí hlavního okna je poskytovat přístup k jednotlivým logickým částem celého systému. To zajistí hlavní menu, strukturované podobně jako je tomu u aplikací běžících v systému Windows, obsahující deset položek, z nichž osm bude rozbalovacích, jedna bude přímo zpřístupňovat Doklady a druhá položka O aplikaci zobrazuje, jak je asi zřejmé, informace o skladovém systému. Po rozbalení první nabídky Soubor, bude možné opět volit Tisk, Náhled tisku a dále Odhlášení ze systému, které zablokuje celou aplikaci a zpřístupní přihlašování, nebo Konec aplikace. Položka Sklady bude obsahovat přístup k Pracovnímu rozhraní pro skladníky, dále odkaz na Správu skladů a Vytvoření výdejky. Pokud uživatel nebude skladníkem v žádném ze skladů podniku, nebude mu toto rozhraní zpřístupněno.
Návrh skladového systému
21
Další položka Zboží bude seskupovat možnosti zobrazit Zásoby skladem, tedy přehled veškerých zásob dostupných v podniku, Katalog zboží a Vlastnosti zboží. V položce Partneři budou pouze dva odkazy a to na Správu partnerů a na Statistické údaje. Správa partnerů vede k evidenci dodavatelů, odběratelů a dopravců. Odkaz Statistické údaje bude přístupný pouze uživatelům s rolí Manažer. Položka Firma seskupuje možnosti zobrazit evidenci Zaměstnanců a Údaje o firmě. Následuje položka Nástroje obsahující Uživatelská nastavení a odkaz na dodatečný nástroj Tvorba ČK, který bude mít charakter pouze dodatečné vedlejší funkcionality. Následující dvě položky slouží pouze pro úpravu rozvržení aplikace a to tak, že obsahem tlačítka Zobrazit je již zmíněná možnost skrýt nebo zobrazit stavový řádek a panel nástrojů a tlačítko Okna umožňuje organizovat otevřená okna. 4.1.3
Správa uživatelů
Komplexní správu zaměstnanců a uživatelů systému řeší okno Zaměstnanci. Problematika evidence zaměstnanců je pro účely této práce součástí systému, ale v reálném nasazení by mohla být řešena i samostatným systémem nebo jako součást jiného systému, přičemž skladový systém by pro svou potřebu získával potřebná data právě z databáze daného systému. Okno Zaměstnanci poskytuje přehled zaměstnanců, tedy jejich seznam a osobní údaje. V rámci ochrany osobních údajů se však tyto údaje nezobrazují uživatelům bez příslušných oprávnění. Těmto se zobrazí pouze seznam obsahující jména, příjmení a role zaměstnanců. Možnost upravovat osobní údaje zaměstnanců, resetovat jejich zapomenuté přihlašovací heslo nebo měnit jejich role, mají pouze Administrátoři. Pouze ti mohou také přidávat nové zaměstnance. Každý přihlášený uživatel si pak může v sekci Uživatelská nastavení měnit své přihlašovací heslo do systému. Evidují se následující informace: • jméno a příjmení, • adresa, • kontaktní údaje (telefon, e-mail), • přihlašovací údaje, • uživatelské role, • poznámka. Zaměstnanec, kterému se nevytvoří přihlašovací údaje, nemá přístup do systému a tedy není jeho uživatelem. Pro práci se skladovým systémem a rozlišení oprávnění uživatelů vycházející z jejich funkce v podniku, budou používány následující role: • běžný uživatel (největší omezení, převážně pouze možnost zobrazovat základní informace),
Návrh skladového systému
22
• vedoucí, • manažer, • administrátor. Zvláštním oprávněním je funkce skladníka, kterou řeší logický celek Skladová evidence. 4.1.4
Správa obchodních partnerů
Obchodní partnery v oblasti skladového hospodářství představují dodavatelé, odběratelé a dopravci. Jejich kompletní správu představuje okno Obchodní partneři. Okno bude samozřejmě poskytovat samostatné seznamy dodavatelů, odběratelů, dopravců a informace o nich. Tyto přehledy mohou zobrazovat všichni uživatelé. Evidované údaje společné pro všechny partnery jsou: • název organizace, • jméno a příjmení, • IČ a DIČ, • kontaktní údaje partnera (web, telefon, e-mail), • adresa, • kontaktní osoba a kontakt na ni, • poznámka. U odběratelů se navíc eviduje údaj o trvalé slevě. Uživatelé s oprávněním vedoucí nebo manažer mohou do systému přidávat nové obchodní partnery nebo údaje o nich upravovat. Navíc v situacích, kdy je obchodní partner v systému již evidován, ale v jiné roli než je požadováno, je možné mu přiřadit roli novou. Taková situace může nastat například tehdy, když se dodavatel nově stane i odběratelem. Správa obchodních partnerů zahrnuje také oblast vedení statistických údajů zobrazovaných v okně Statistické údaje. Takové údaje a přehledy se mohou generovat podle podkladů z databáze a sloužit manažerům pro účely jejich rozhodování. Není tedy třeba poskytovat přístup k těmto údajům osobám jiným, než manažerům. Pro příklad jak mohou takové přehledy vypadat bude, okno zobrazovat základní grafy objemů příjmů a výdejů zboží jednotlivým partnerům. 4.1.5
Údaje o podniku
Je potřeba také zajistit možnost zobrazení informací o podniku, jehož součástí skladový systém je. Tuto funkci zajistí okno Údaje o firmě, přístupné všem uživatelům. Pouze uživatelé s rolí administrátor nebo manažer mají však oprávnění tyto údaje měnit. Evidují se stejné informace jako v případě obchodních partne-
Návrh skladového systému
23
rů. A údaje zde zobrazené budou také součástí hlaviček dokladů tiskových sestav. 4.1.6
Správa zboží
Sklad skladující a evidující zboží potřebuje ke svému fungování přehledný katalog zboží (položek/předmětů) a to hned z několika důvodů. Je třeba zajistit, aby skladník přijímající zboží, nemusel u každého kusu zboží, které přebírá, zapisovat do systému opakovaně jeho název a další údaje a aby se stejné položky seskupovaly, tedy evidovaly na jedné společné skladové kartě. Pokud tedy skladník přijme zboží, které je již ve skladu evidované, přiřadí se tato zásoba k ostatním. Problematiku návrhu správy zboží je možné rozdělit na několik částí. 1.
Okno Atributy položek zboží Všechny položky v katalogu zboží obsahují určité, stále se opakující údaje. Pro tyto údaje, jejich správu a manipulaci s nimi je nejvhodnějším řešením zavedení číselníků pro jednotlivé údaje a pracovního rozhraní Atributy položek zboží. Tyto údaje představují druh zboží, cenovou kategorii, záruku, DPH, jednotky, výrobce a obrázky zboží. Nahlížení do číselníků bude umožněno všem uživatelům, přidávat a editovat položky však mohou pouze manažeři a vedoucí.
2.
Okno Katalog vytvořených položek zboží Toto okno nabízí přehled všech již vytvořených položek zboží s možností filtrování a řazení a dále možnost přidávat nové položky a editovat již existující. Při přidávání položky je možné přímo nahrát nový obrázek nebo vybrat z již evidovaných. Oprávnění uživatelů jsou zde nastavena stejně jako u předchozího. Každá položka zboží obsahuje kromě výše zmíněných atributů z číselníků i další informace jako název položky, její kód (Part number), kód EAN a poznámku.
3.
Okno Přehled zásob zboží Toto okno zobrazuje přehled aktuálního stavu všech zásob zboží umístěných na skladech se základními informacemi, jako je výrobce, název zboží a počet kusů skladem. Seznam bude možné různě filtrovat, řadit a vyhledávat v něm jednotlivé zásoby. Slouží pouze k zobrazování informací a je přístupný všem uživatelům. Ke každé položce půjde zobrazit její detail s kompletním přehledem informací a případným obrázkem, pokud je k položce přiřazen.
Návrh skladového systému
4.1.7
24
Skladová evidence
Skladová evidence představuje nejrozsáhlejší část skladového systému a je tedy potřeba ji rozdělit na několik funkčních celků. 1.
Správa skladů Okno Sklad obsahuje veškerou administrativu spojenou s provozem skladů a je vhodné jej dále rozčlenit. Základem je veřejně přístupný přehled skladů s jejich jednotlivými částmi (sekcemi) a doprovodnými informacemi. Kompletní záznamy je navíc možné editovat, pokud má uživatel oprávnění manažer. Vedoucí pak mohou editovat část záznamu věnovanou sekci. V rámci tohoto rozhraní je zároveň potřeba zajistit manažerům možnost vytvářet nové sklady. Jednotlivé sekce ve skladech a jejich vytváření si řídí vedoucí. Problematikou nastíněnou již v podkapitole Správa uživatelů je správa role skladník. Předpokládá se přitom, že každý sklad může mít několik skladníků a každý uživatel systému může být skladníkem v několika nebo v žádném skladě. Toto oprávnění uděluje a odebírá manažer v tomto rozhraní a jeho význam je objasněn níže.
2.
Vytvoření výdejky Tvorba výdejky je první fází procesu výdeje zboží. Jedná se vlastně o požadavek na výdej, který je pak v další fázi zpracován a neobsahuje tedy ještě všechny náležitosti. Obsahem záhlaví je datum, druh výdeje, číslo výdejky, číslo objednávky, zdrojový sklad, odběratel a dopravce. Následují jednotlivé položky a automatické přidání jména osoby, která doklad vytvořila. Přidávání jednotlivých položek může vzhledem k usnadnění práce probíhat vyhledáváním zásob ve zdrojovém skladě podle identifikace zboží, kódu zboží nebo EAN kódu zboží. Současně se zadává požadovaný počet kusů a pokud přesáhne množství na skladě, systém uživatele upozorní. Tento proces je uzpůsoben pro systémy automatické identifikace. Po úspěšném sestavení výdejky je nabídnuta možnost tisku dokladu.
3.
Pracovní rozhraní Přístup k pracovnímu rozhraní skladu mají výhradně skladníci a to tak, že po vybrání položky Pracovní rozhraní jim bude nejprve zobrazeno okno s možností výběru skladu, se kterým si přejí pracovat. Seznam skladů bude obsahovat pouze ty, ve kterých má uživatel roli skladníka. Po výběru skladu se zobrazí okno Sklad - pracovní rozhraní s výpisem zásob na skladě a možnostmi přijmout zboží, převádět zboží a vydávat zboží.
Návrh skladového systému
25
3.1. Příjem zboží Koncepce tohoto okna je podobná, jako u tvorby výdejky. Formulář skladník použije v situaci, kdy přijímá zboží na sklad. Nejprve je třeba vyplnit údaje patřící do záhlaví, jako datum, druh příjmu, číslo příjemky, dodací list, přepravní list a označení obalu. Dále se vyplňuje dodavatel a dopravce. Následuje přidávání jednotlivých položek obdobným způsobem, jak již bylo popsáno. Rozdílem je pouze zadávání pořizovací ceny, počtu zboží podle dokladu, počtu skutečně převzatého zboží a případně sériových čísel podle počtu kusů zboží. Jméno osoby, která doklad vytvořila, se přidává automaticky. Po úspěšném sestavení příjemky je opět nabídnuta možnost tisku dokladu. 3.2. Převod zboží Toto rozhraní je obsáhlé a nabízí několik možností. V zásadě však řeší pouze vnitropodnikové převody zboží mezi sklady a sekcemi ve skladech. 3.2.1. Požádat o převod Tento formulář obsažený v rozhraní pro převod zboží je téměř shodný s formuláři pro příjem zboží a tvorbu výdejky. Jeho funkcí je umožnit skladníkovi požádat o zboží, které se nachází v jiném skladě. Z pohledu vnitropodnikových dokladů se tímto generuje převodka, která bude dále zpracována. Vyřízení tohoto požadavku provádí skladníci ze skladu, pro který je požadavek určen. 3.2.2. Požadavky na převod Představuje seznam položek požadavků na převod od skladníků z jiných skladů. Tento seznam se průběžně aktualizuje, aby v reálném čase zachycoval nové požadavky. V seznamu se dá vyhledávat podle čísla převodky, které lze získat automatickou identifikací dokladu. Kliknutí na položku vyvolá otevření okna pro Vyřízení převodky. Z principu existují tři možnosti, jak požadavek vyřídit. Požadavek lze zcela zamítnout, tedy žádné zboží se převádět nebude, nebo lze požadavek přijmout v plné míře, tedy převádět se bude veškeré zboží a to v počtu požadovaném a nebo lze požadavek přijmout pouze částečně. V tom případě skladník zadá, které zboží se bude převádět a v jakém množství, přičemž maximální povolené množství je to požadované. Po odbavení požadavku je nabídnut tisk převodky.
Návrh skladového systému
26
3.2.3. Převod v rámci skladu Tento jednoduchý formulář v rámci rozhraní Převod zboží slouží pouze pro vnitroskladové účely, které není třeba evidovat. Účelem je pouze zaktualizovat v systému u položky zásoby sekci, ve které je umístěna. 3.2.4. Vystavené převodky Tento seznam má pouze informativní charakter a zobrazuje požadavky na převod, které vystavil daný sklad. 3.3. Požadavky na výdej Toto okno, podobně jako u Požadavků na převod, tvoří seznam položek představujících výdejky, které vznikly v okně Vytvoření výdejky. V seznamu je možno opět vyhledat konkrétní výdejku podle jejího čísla, stejně jako v předchozích případech buď manuálně nebo pomocí automatické identifikace z příslušného dokladu. Vybráním výdejky, kterou chce skladník vyřídit, se otevře nové okno Vyřízení výdejky, které je koncipováno stejně jako okno Vyřízení převodky. Možnosti vyřízení jsou taktéž stejné. Po odbavení výdejky je nabídnut její tisk a to spolu s vygenerovaným dokladem Dodací list. 4.1.8
Přístup k dokladům
Pro účely vyhledávání a zobrazování skladových dokladů, tedy příjemek, převodek a výdejek slouží okno Přehled dokladů. Evidenci těchto dokladů lze různě řadit a vyhledávat v nich podle data nebo podle konkrétního čísla dokladu, s ohledem na možnost jeho zápisu pomocí systému automatické identifikace. Po nalezení hledaného dokladu je možné, že v případě, kdy uživateli nestačí základní informace obsažené v seznamu, zobrazit detailní informace, čímž se vyvolá otevření okna Detail dokladu. V režimu zobrazení detailu dokladu je zpřístupněna volba zobrazování náhledu tisku a samotného tisku dokladu.
4.2 Návrh databáze Databáze tvoří základ celého skladového systému a její kvalitní návrh je tedy pro tento systém stěžejní. 4.2.1
ERD
Entitně-relační diagram (viz. Obr. 3) představuje návrh struktury databáze. Obsahuje 26 entit, vychází z analýzy a návrhu systému a bude kompletně implementován a využit. Jednotlivé entity jsou mezi sebou propojeny relacemi, které představují vztahy mezi jednotlivými objekty.
Návrh skladového systému
Obr. 3
ERD databáze
4.2.2
Popis tabulek
27
Za nejdůležitější entity v návrhu databáze lze považovat tabulky osoba, zbozi a sklad. Do tabulky osoba se ukládají všechny systémem evidované osoby a to jak fyzické, tak i právnické. Osobami jsou tedy dodavatelé, odběratelé, dopravci, výrobci a zaměstnanci. Každou osobu jednoznačně identifikuje primární klíč (PK) id_osoba a tabulka dále obsahuje atributy organizace, jmeno,
Návrh skladového systému
28
prijmeni, ic, dic, telefon, email, web, poznamka, cizí klíč (CK) adresa, umožňující každé osobě přiřadit adresu bydliště, resp. sídla firmy a atribut nase_firma, který slouží pro identifikaci údajů patřících podniku, provozujícímu skladový systém. Záznamy adres sestávají ze tří tabulek. Tabulka adresa obsahuje záznamy identifikované atributem id_adresa a kromě dalších odkazuje na tabulku mesto prostřednictvím cizího klíče. Tabulka mesto obsahuje primární klíč id_mesto a kromě dalších atributů obsahuje cizí klíč kraj. Tabulka kraj pak zahrnuje pouze atribut nazev a primární klíč id_kraj Tabulky dodavatel, odberatel a dopravce mají téměř shodnou strukturu. Obsahují primární klíč, cizí klíč odkazující na osobu a dále atributy kontaktní_osoba, kontakt a poznamka. Tabulka odberatel navíc obsahuje atribut sleva_trvala, který umožňuje poskytnout slevu na veškeré zboží, které si odběratel odebere. Všechny zaměstnance podniku, včetně uživatelů systému, zachycuje tabulka zamestnanec. Tato obsahuje primární klíč id_zam, cizí klíč osoba, informace o uživatelských rolích typu datového boolean admin, manager, vedouci, dále prihl_jmeno sloužící jako login pro přihlášení do systému a prihl_heslo ukládané jako hash. Důvodem je zabránění možnosti zjištění hesel uživatelů. Pro účely evidence skladů je třeba tří tabulek. Hlavní tabulkou je sklad, který obsahuje primární klíč id_sklad, nazev skladu, odkaz na adresu, dále telefon, email a poznamku. Na tuto tabulku navazuje sekce s identifikací id_sekce, nazvem sekce, cizím klíčem sklad, který určuje, do kterého skladu sekce patří a dalšími atributy teplota, vlhkost, klimatizovano a poznamka. Poslední tabulka k této problematice zajišťuje evidenci skladníků. Název asociační tabulky je skladnik a obsahuje pouze dva cizí klíče sklad a zamestnanec. Evidenci katalogu zboží v databázi zajišťuje tabulka zbozi, přičemž většinu jejích atributů spravují další tabulky. Jednotlivé záznamy zde identifikuje primární klíč id_zbozi. Ostatní atributy jsou nazev zboží, kod pro ukládání part number zboží, EAN kód, poznamka a cizí klíče druh_zbozi, merne_jednotky, marze, dph_sazba, zaruka, obrazek a vyrobce. Pomocné tabulky jsou tedy jednotky, dph, zaruka, cenova_kat, druh_zbozi, tabulka obr_zbozi, do které se přímo ukládají obrázky a tabulka vyrobce zboží obsahující cizí klíč odkazující na osobu. Reálné položky zboží, které prošly skladem, tedy byly fyzicky přijaty na sklad a stále tam jsou nebo již byly vydány, zachycuje tabulka zasoby. Její položky se identifikují PK id_zasob a vazbu s katalogem zboží tvoří CK zbozi. Dalšími atributy této tabulky jsou cizí klíče uskladneni, které určuje sekci, ve které je/byla zásoba uskladněna, prijem_polozka spojující zásobu s příjemkou a vydej_polozka spojující zásobu s výdejkou, pokud již byla vyskladněna. Tabulka ještě zahrnuje atributy porizovaci_cena, seriove_cislo a poznamka.
Návrh skladového systému
29
O zajištění evidence pohybu zásob se starají tabulky prijem, prevod a vydej. Ke každé z nich je připojena ještě další tabulka, kde se kumulují jednotlivé položky zásob. Vzhledem k jejich podobné funkci je i struktura tabulek podobná. Tabulka prijem obsahuje PK id_prijem, dále atributy datum, prijemka_cislo, druh_prijmu, dodaci_list_cislo, označení přepravního listu prepr_list_cislo, oznaceni_obalu, predal a poznamka. Zbylé atributy jsou cizími klíči a to dodavatel, sklad, vyhotovil, schvalil a dopravce. Příslušnou tabulkou kumulující položky je prijem_polozka s atributy id_prijem_p (PK), prijem (CK), dále pocet_dle_dokladu a pocet_prevzaty. Evidenci převodů obstarává tabulka prevod s atributy id_prevod (PK), datum, prevodka_cislo, druh_prevodu, poznamka. Spojení se skladem, který žádá o zboží, představuje zadatel a sklad, který bude zásoby vydávat, je vydavatel. Zaměstnanci, kteří zde hrají roli, jsou atributy vyhotovil, schvalil a prevzal. Tabulka spojená s převodem, kde se hromadí jednotlivé položky zásob, se jmenuje prevod_p a obsahuje pocet_zadany, pocet_vydany, cizí klíče prevod a zasoby. Poslední skupinou tabulek je vydej a vydej_polozka. Obsahem tabulky vydej je identifikátor záznamu id_vydej, datum, vydejka_cislo, objednavka_cislo, dodaci_list_cislo, druh_vydeje, poznamka, prevzal a odkazy v podobě cizích klíčů odberatel, sklad, vyhotovil, schválil a dopravce. Tabulka s jednotlivými položkami vydej_polozka obsahuje identifikátor id_vydej_p, vydej (CK), pocet_zadany, pocet_vydany, cena_mj a sleva_jednorazova. Atribut cena_mj by mohl být vypočítán podle pořizovací ceny a koeficientu z tabulky cenova_kat a tento atribut by byl zbytečný. Toto řešení ale umožňuje s cenou dodatečně hýbat. Atribut sleva_jednorazova pak nabízí možnost slevit jednorázově zákazníkovi toto zboží.
4.3 Výběr technologií Pro implementaci aplikace a grafického uživatelského rozhraní byla vybrána technologie Microsoft .NET Framework v aktuální verzi 4.0 a s ní související programovací jazyk C#, který je velmi podporován a dobře zdokumentován. Silnou stránkou této kombinace a zároveň faktorem, který ovlivnil výběr, jsou široké možnosti využití této robustní technologie. Po zvládnutí programovacího jazyka C# a obeznámení s možnostmi .NET Frameworku mohou programátoři tvořit širokou škálu aplikací a lépe tak uspokojovat požadavky na aplikace. I v případě této práce je pak možno lépe přemýšlet nad dalšími možnostmi rozšíření a spolupráce systému s jinými. Pro volbu databáze se jeví jako nejlepší databázový a analytický systém Microsoft SQL Server 2008 integrující architekturu .NET. Jeho silnou stránkou
Návrh skladového systému
30
je velké množství nástrojů a funkcí jako Business intelligence nebo možnost replikace. Samotná tvorba aplikace bude realizována ve vývojovém prostředí Microsoft Visual Studio 2010. K tvorbě a základnímu plnění databáze bude použit nástroj Microsoft SQL Server Management Studio. Určitou míru automatizace v podobě automatické identifikace přinese využití technologie čárových kódů, která je velmi rozšířená a náklady na její zavedení a využívání jsou nízké. Využití lze nalézt zejména v identifikaci zboží pomocí kódů EAN, již uvedených na zboží, k identifikaci údajů na dokladech a logistických jednotkách obchodních partnerů a dopravců nebo k identifikaci vlastních dokladů vystavovaných podnikem. Kód EAN však není jednoznačným identifikátorem zboží, protože například dvě zdánlivě totožné položky se mohou lišit svou barvou, velikostí (oblečení), provedením a jinými vlastnostmi a přitom mohou být označeny stejným kódem EAN. V případě, kdy podnik, resp. sklad bude potřebovat tyto odlišnosti rozlišit v systému, bude třeba označit takové zboží doplňujícím kódem.
4.4 Způsob nasazení systému Skladový systém je navržen pro nasazení do vnitropodnikové sítě a jako takový tedy není veřejně přístupný. Vnitropodniková síť může být realizována více způsoby podle možností a potřeb každého podniku. V případě malé firmy půjde většinou o síť typu LAN (Local Area Network) neboli místní počítačovou síť, která není finančně příliš nákladná na zbudování a využívá zejména technologií Ethernet a Wi-Fi. Za takovou malou firmu je v tomto smyslu uvažována firma umístěná v rámci budovy nebo malého areálu. Za středně velkou firmu je pak možné považovat firmu sídlící v rozsáhlém areálu nebo v několika budovách či areálech v rámci města nebo většího geografického území. Taková vnitropodniková síť pak může být realizována kromě LAN i často nákladnější sítí MAN (Metropolitan Area Network), WAN (Wide Area Network) nebo VPN (Virtual Private Network) v případě komunikace přes Internet. Systém je navržen pro přístup z jednotlivých pracovních stanic umístěných zejména ve skladech a na pracovištích vedoucích pracovníků a bude přístupný skrze nainstalovanou klientskou aplikaci. Tato aplikace bude obsahovat jak pracovní rozhraní, tak potřebnou funkcionalitu a poskytne uživatelům pracovní komfort, na který jsou zvyklí z používání jiných systémů a aplikací běžících pod operačními systémy MS Windows, které bývají nasazeny na většině podnikových počítačů. Zvolené technologie navíc umožňují provádění aktualizací aplikace v případě potřeby, tato funkcionalita již ale v práci nebude implementována. Návrh počítá se vzdáleným přístupem k databázovému systému skrze vnitropodnikovou síť. Vzhledem k rozsahu navrhované databáze je možné použít MS SQL Server 2008, v základní edici Express dostupné zdarma, nasazený na podnikovém serveru. Automatickou identifikaci zboží, dokladů a dalšího umožní, podle potřeb zaměstnanců, i levné kabelové nebo bezdrátové čtečky čárových kódů.
Implementace systému
31
5 Implementace systému Na základě předchozí analýzy a návrhu byl pomocí vybraných nástrojů a programovacího jazyka C# vytvořen prototyp skladového systému pro evidenci stavu a pohybu skladových zásob.
5.1
Tvorba databáze
Prvním krokem při implementaci aplikace je tvorba databáze a její následné naplnění vzorovými daty, přičemž se vychází z ERD diagramu návrhu databáze. K tomuto účelu byl vytvořen SQL skript1, který zajistí postupně tvorbu samotné databáze. USE [master] CREATE DATABASE [DB_BP] ON PRIMARY (NAME = N'DB_BP', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\DB_BP.mdf' , SIZE = 5120KB, MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON (NAME = N'DB_BP_log', FILENAME = N'C:\Program Files\ Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\ DB_BP_log.ldf',SIZE = 2304KB, MAXSIZE = 2048GB, FILEGROWTH = 10%) Po úspěšném vytvoření následuje tvorba a naplnění jednotlivých tabulek a vznik potřebných relací. Tento proces je ukázán na tabulkách sklad a sekce. Zajímavý je parametr IDENTITY(1,1), zajišťující automatické zvýšení primárního klíče o jedničku pro každý nový záznam, čímž se zajistí jedinečnost atributů ID. CREATE TABLE [dbo].[sklad]( [id_sklad] [int] IDENTITY(1,1) NOT NULL, [nazev] [varchar](50) NOT NULL, [adresa] [int] NOT NULL, [telefon] [varchar](14) NULL, [email] [varchar](50) NULL, [poznamka] [varchar](500) NULL, CONSTRAINT [pk_sklad] PRIMARY KEY CLUSTERED) ALTER TABLE [dbo].[sklad] ADD CONSTRAINT [df_telefon] DEFAULT ('') FOR [telefon] ALTER TABLE [dbo].[sklad] ADD CONSTRAINT [df_email] DEFAULT ('') FOR [email] Kompletní skript je součástí Elektronických příloh, kde je možné si jej prohlédnout. V této práci jsou zobrazeny pouze jeho vybrané části. 1
Implementace systému
32
ALTER TABLE [dbo].[sklad] ADD CONSTRAINT [df_poznamka] DEFAULT ('') FOR [poznamka] CREATE TABLE [dbo].[sekce]( [id_sekce] [int] IDENTITY(1,1) NOT NULL, [nazev] [varchar](50) NOT NULL, [sklad] [int] NOT NULL, [teplota] [varchar](100) NULL, [vlhkost] [varchar](100) NULL, [klimatizovano] [bit] NOT NULL, [poznamka] [varchar](500) NULL, CONSTRAINT [pk_sekce] PRIMARY KEY CLUSTERED) ALTER TABLE [dbo].[sekce] ADD CONSTRAINT [df_teplota] DEFAULT ('') FOR [teplota] ALTER TABLE [dbo].[sekce] ADD CONSTRAINT [df_vlhkost] DEFAULT ('') FOR [vlhkost] ALTER TABLE [dbo].[sekce] ADD CONSTRAINT [df_klimatizovano] DEFAULT ((0)) FOR [klimatizovano] ALTER TABLE [dbo].[sekce] ADD CONSTRAINT [df_poznamka16] DEFAULT ('') FOR [poznamka] Následuje ukázka vytvoření cizího klíče pro atribut sklad tabulky sekce, který vytvoří relaci mezi tabulkami sklad a sekce. ALTER TABLE [dbo].[sekce] WITH CHECK ADD CONSTRAINT [fk_sekce_sklad] FOREIGN KEY([sklad]) REFERENCES [dbo].[sklad] ([id_sklad]) ALTER TABLE [dbo].[sekce] CHECK CONSTRAINT [fk_sekce_sklad] A ukázka vložení záznamů do tabulky sklad a sekce. INSERT [dbo].[sklad] ([id_sklad], [nazev], [adresa], [telefon], [email], [poznamka]) VALUES (1, N'Hlavní sklad Zlín', 6, N'+420530444920', N'
[email protected]',N'') INSERT [dbo].[sekce] ([id_sekce], [nazev], [sklad], [teplota], [vlhkost], [klimatizovano], [poznamka]) VALUES (1, N'Příjem zboží', 1, N'', N'', 0, N'') Po spuštění kompletního skriptu je tedy databáze připravena k použití a je možné nad ní stavět aplikaci.
5.2 Tvorba klientské aplikace Časově nejnáročnější částí je vytvoření samotné aplikace, která je řešena pomocí Windows Forms umoňující použití rozhraní MDI (Multiple Dokument Interfa-
Implementace systému
33
ce). Tento přístup umožňuje vytvoření základního rodičovského okna, uvnitř kterého se otevírají všechny ostatní okna (potomci). V hlavním panelu OS Windows je pak zobrazeno pouze hlavní okno. Při otevírání oken potomků, kdy je třeba zajistit, aby se otevřelo pouze jednou a v případě, kdy již otevřeno je, se na něj přepnulo, je použita programovací technika Singleton. Příklad z formuláře FormDoklady ukazuje implementaci techniky. Zajímavostí je soukromý konstruktor volaný metodou Instance. public partial class FormDoklady : Form { private static FormDoklady _instance = null; private FormDoklady() { InitializeComponent(); } public static FormDoklady Instance() { if (_instance == null) { _instance = new FormDoklady(); } return _instance; } } Vytváření objektu formuláře, dceřiného okna programu, zobrazuje ukázka kódu volaného z hlavního okna tvořeného třídou MDIParent1.cs. Oproti běžné situaci, kdy by se volal konstruktor třídy FormDoklady, se zde volá metoda Instance. Dále je možné si všimnout, jak je řešeno přiřazení rodičovského okna, které zajistí zobrazení potomka uvnitř rodiče. FormDoklady s = FormDoklady.Instance(); s.MdiParent = MDIParent1.ActiveForm; s.Show(); s.Activate(); Pro přístup k databázi se využívá knihovna ADO.NET, která je součástí rozhraní .NET Framework a podporuje propojený i odpojený přístup k datům. Při odpojeném přístupu se otevře spojení s databází, získají se potřebná data, která se uloží do tzv. datasetu a připojení se uzavře, čímž data nejsou blokována pro přístup ostatním klientům. Data načtená v lokální paměti mohou být následně procházena a pokud jsou aplikací změněna, dataset se opět připojí k databázi a odešle tyto data k uložení do databáze. Tento přístup navíc umožňuje řešit konflikty v případě, kdy se více uživatelů pokusí současně aktualizovat stejná data. Přihlašovací okno Uvod.cs (viz. Obr. 4) zobrazované po spuštění aplikace a po odhlášení, provádí při pokusu o přihlášení převod hesla na jeho hash a vzniklý údaj spolu s přihlašovacím jménem vyhledává v databázi. Pokud jsou zadané údaje chybné, zobrazí se červená ikona s dodatečnou informací o vznik-
Implementace systému
34
lém problému. To umožňuje komponenta ErrorProvider, používaná v rámci celé aplikace u textových polí, u nichž je třeba ošetřovat vstup uživatele.
Obr. 4
Přihlášení do systému
Struktura a obsah hlavního okna (viz. Obr. 5), které se uživateli zobrazí po úspěšném přihlášení do systému, odpovídají návrhu aplikace a díky hlavní liště s menu je uživateli zajištěn snadný přístup ke všem částem systému.
Obr. 5
Hlavní okno aplikace
Pro implementaci podpory čárových kódů, která umožňuje automatickou identifikaci skladových dokladů, byl vybrán velmi rozšířený typ kódu Code 39. Součástí generovaných příjemek (viz. Obr. 7), převodek, výdejek a dodacích listů je tedy čárový kód nesoucí informaci o čísle dokladu. Tuto funkcionalitu umožnila implementace knihovny Barcode Image Generation Library (Barnhill, 2007),
Implementace systému
35
šířené pod licencí CPOL. 2 Použité třídy z této knihovny jsou Blank.cs, Code39.cs a třídy obsahující název Barcode.
5.3 Experimentální nasazení aplikace Pro potřeby této práce a testování aplikace byl vytvořen instalátor skladového systému určený pro 32 bitové verze OS MS Windows. Samotná instalace pak zahrnuje několik kroků 3: 1.
Ověření, zda jsou na klientském počítači nainstalovány MS .NET Framework 4.0 a MS SQL Server 2008 Express potřebné pro běh aplikace. 1.1. Pokud ne, dojde automaticky k jejich stažení z internetu a následné instalaci. V tomto případě je SQL Server tedy instalován lokálně. (tento proces může trvat v závislosti na rychlosti připojení a výkonu počítače) 2. Instalace samotné aplikace Skladový systém. 3. Spuštění skriptu, který vytvoří potřebnou databázi a naplní ji vzorovými daty. 4. Po dokončení instalace bude přidána ikona zástupce aplikace na plochu a do nabídky Start. 5. Pro prvotní přihlášení do aplikace lze použít přihlašovací jméno „schwarz“ a heslo „1234“, které je stejné pro všechny vzorové účty. Aplikaci lze odinstalovat běžným způsobem přes Ovládací panely. Následně lze stejným způsobem odebrat i MS SQL Server a .NET Framework.
The Code Project Open Licence (CPOL) 1.02 – licence umožňující volné poskytování zdrojových kódů vývojářům a jejich použití pro tvorbu dalších děl. Kompletní znění licence lze najít na adrese http://www.codeproject.com/info/cpol10.aspx. 3 Podrobný popis lze najít v souboru ReadMe.txt, který je součástí instalačního balíčku. 2
Diskuze
36
6 Diskuze Zavedení informačního systému pro správu a evidenci skladového hospodářství je jedním z kroků v rozvoji podniku. Zejména skladníkům usnadní mnoho činností, pomůže ke snížení chybovosti a dá jim do rukou nástroj, umožňující mít přehled nad stavem a pohybem zásob. Elektronická forma uchovávaných dat přináší oproti pouze papírové dokumentaci mnoho výhod. Dalším přínosem pro skladníky je snížení administrativní práce tím, že všem dalším orgánům společnosti, které potřebují pro svou práci přistupovat k informacím skladu, je možné zajistit díky využití databáze automatický a nepřetržitý přístup k potřebným datům, bez nutnosti fyzického přenášení výkazů, dokladů a dalších dokumentů, které by jinak museli zaměstnanci neustále dokola připravovat. Tyto vyspělé databázové systémy také usnadňují uchovávání a zálohování dat, která jsou pro podnik tak cenná. Tyto a mnohé další faktory pak vedou ke zefektivnění a zrychlení podnikových procesů, vyšší akceschopnosti a přizpůsobivosti podniku tržním podmínkám. Tvorba informačních systémů podniku není snadná záležitost. Jedná se o velmi obsáhlou problematiku vyžadující její znalost a orientování se v potřebách podniku. Vzniklý skladový systém tedy implementuje pouze některé základní procesy probíhající uvnitř skladů, protože vytvoření kompletního systému by znamenalo mnohem delší vývoj při spolupráci s podniky, což přesahuje rozsah této práce. Funkčnost aplikace a instalátoru byla testována na 32 bitových verzích operačních systémů Microsoft Windows Vista a 7. Možnosti rozšíření vzniklého systému jsou opravdu široké a je možné jak implementovat další funkcionalitu, jako třeba podporu inventarizace, nebo provést úpravu systému pro použití ve výrobním podniku, tak jeho provázání s jinými systémy, nebo vytvoření rozhraní pro chytrá zařízení jako jsou mobilní telefony a příruční terminály se čtečkami kódů. Platforma .NET je vhodná zejména pro zařízení s různými verzemi operačních systémů MS Windows. Další možností rozšíření může být postavit nad tímto systémem e-shop za využití technologie ASP.NET. Podporou zde může být například již implementovaná správa odběratelů nebo obsáhlá evidence zboží, včetně ukládání jejich obrázků. Nabízí se i možnost rozšíření například o evidenci a zpracování faktur, pokladní systém, kompletní evidenci pracovníků, jejich výkazů práce, prozkoumání možnosti provádět aktualizace aplikací či rozšířit systém o tiskové sestavy a reporty.
Závěr
37
7 Závěr Tato práce se zabývala problematikou skladových systémů, přičemž cílem bylo takový systém umožňující správu a evidenci zboží v malém nebo středně velkém podniku navrhnout a implementovat na základě provedené analýzy. Pro implementaci byl vybrán programovací jazyk C#, který poskytuje široké možnosti využití v různých typech aplikací a to díky spolupráci s platformou .NET Framework společnosti Microsoft. Aplikace pak byla vytvořena jako klientská s využitím API Windows Forms a se vzdáleným přístupem k databázi Microsoft SQL Server 2008. Díky tomuto řešení je splněn požadavek na současnou práci více uživatelů a dostupnost informací dalším systémům. Požadavek na automatickou identifikaci řeší příprava na využití čtečky čárových kódů umožňující snímání EAN kódů zboží a také identifikaci vnitropodnikových a případně i jiných dokladů. Vnitropodnikové doklady jsou díky zakomponovanému generátoru automaticky opatřovány čárovým kódem. Toto řešení s využitím čtečky kódů bylo odzkoušeno a funguje. Zadání práce bylo dodrženo a vytvořený systém tak může posloužit například jako podklad při dalších realizacích podnikového informačního systému.
Literatura
38
8 Literatura AGARWAL, V. V. -- HUDDLESTON, J. Databáze v C# 2008 : průvodce programátora. 1. vyd. Brno: Computer Press a. s., 2009. 424 s. ISBN 978-80251-2309-6. BARNHILL, BRAD. The Code Project [online]. 2007, Last Updated 19 Jul 2010 [cit. 2011-01-01]. Barcode Image Generation Library. Dostupné z WWW:
. BENADIKOVÁ, A. -- MADA, Š. -- WEINLICH, S. Čárové kódy - automatická identifikace. Praha: Grada, 1994. 252 s. ISBN 80-85623-66-8. CASTAGNETTO, JESUS, ET AL. PHP : Programujeme profesionálně. Vyd. 2. Brno : Computer Press, 2001. 656 s. ISBN 80-7226-310-2. DRAYTON, PETER, ET AL. C# v kostce : Pohotová referenční příručka. 1. vyd. Praha : Grada Publishing a. s., 2003. 764 s. ISBN 80-247-0443-9. HOTEK, MIKE. Microsoft SQL Server 2008 : krok za krokem. 1. vyd. Brno : Computer Press a. s., 2009. 488 s. ISBN 978-80-251-2466-6. JEŽEK, V. Systémy automatické identifikace. 1. vyd. Praha: Grada Publishing, 1996. 124 s. ISBN 80-7169-282-4. MASLAKOWSKI, MARK. Naučte se MySQL za 21 dní. 1. vyd. Praha : Computer Press, 2001. 478 s. ISBN 80-7226-448-6. NAGEL, CHRISTIAN, ET AL. C# 2008 : Programujeme profesionálně. 1. vyd. Brno : Computer Press, a. s., 2009. 2 sv. (1126, 772 s.) ISBN 978-80-251-2401-7. PRECLÍK, VRATISLAV. Průmyslová logistika. 1. vyd. Praha : Nakladatelství ČVUT, 2006. 359 s. ISBN 80-01-03449-6 SHARP, JOHN. Microsoft Visual C# 2008 : Krok za krokem. 1. vyd. Brno : Computer Press, a. s., 2008. 592 s. ISBN 978-80-251-2027-9. STODOLA, J. -- MAREK, J. -- FURCH, J. Logistika. 1. vyd. Brno: Mendelova zemědělská a lesnická univerzita v Brně, 2007. 337 s. ISBN 978-80-7375-0718. VIRIUS, MIROSLAV. Java pro zelenáče. Praha : Neocortex spol s r. o., 2001. 240 s. ISBN 80-902230-9-5. WATSON, BEN. C# 4.0 : řešení praktických programátorských úloh. 1. vyd. Brno : Zoner Press, 2010. 656 s. ISBN 978-80-7413-094-6.
Přílohy
Náhledy aplikace
A Náhledy aplikace
Obr. 6
Okno Příjem zboží
Obr. 7
Vygenerovaný náhled dokladu Příjemka
40
Náhledy aplikace
Obr. 8
Pracovní rozhraní pro práci se skladem přístupné pouze skladníkům
Obr. 9
Detail zásob zboží na skladě
41
Elektronické přílohy
B Elektronické přílohy Elektronickou přílohou této práce je přiložené CD. Jeho obsahem jsou: • zdrojové kódy aplikace, • skripty pro založení a naplnění databáze, • instalátor aplikace, • ERD databáze, • elektronická verze práce.
42