online gépjármű regisztrációs rendszer

66
Miskolc 2018 Miskolci Egyetem Gépészmérnöki és Informatikai Kar Online gépjármű regisztrációs rendszer Szakdolgozat Készítette: Kökény József [email protected] 3458 Tiszakeszi, Petőfi utca 16/B.

Upload: others

Post on 17-Nov-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Online Gépjármű Regisztrációs Rendszer

Miskolc 2018

Miskolci Egyetem

Gépészmérnöki és Informatikai Kar

Online gépjármű regisztrációs rendszer

Szakdolgozat

Készítette:

Kökény József

[email protected]

3458 Tiszakeszi, Petőfi utca 16/B.

Page 2: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

I

Tartalomjegyzék Köszönetnyilvánítás ............................................................................................... 1

1. Bevezetés ........................................................................................................... 2

Cég bemutatás ............................................................................................. 3

A szakdolgozat készítéséhez rendelkezésemre álló technikák .......................... 5

Asztali számítógép paraméterei ................................................................... 5

Server paraméterei ...................................................................................... 5

Használt programok ..................................................................................... 5

Elsajátított szakmai ismeretek ...................................................................... 5

Fejlesztési lehetőségek elemzése ...................................................................... 6

Kész szoftver vásárlása ............................................................................... 6

Hátrányai ............................................................................................... 6

Külső céggel közösen történő fejlesztés ...................................................... 6

Hátrányai ............................................................................................... 6

Saját fejlesztésű szoftver készítése ............................................................. 6

Hátránya ................................................................................................ 7

A megfelelő fejlesztési lehetőség kiválasztása ................................................... 7

A fejlesztés lépései: ..................................................................................... 7

A saját fejlesztésű programom célja: ............................................................ 7

Alkalmazás típusok elemzése ............................................................................ 8

Mobilalkalmazások ....................................................................................... 8

Előnye .................................................................................................... 8

Hátránya ................................................................................................ 8

Vastag kliens alkalmazások ......................................................................... 8

Előnye .................................................................................................... 8

Hátránya ................................................................................................ 8

Szolgáltatási alkalmazások .......................................................................... 8

Előnye .................................................................................................... 9

Hátránya ................................................................................................ 9

Webes alkalmazások ................................................................................... 9

Előnye .................................................................................................... 9

Hátránya ................................................................................................ 9

A megfelelő alkalmazási lehetőség kiválasztása........................................ 10

Programozási nyelvek elemzése ...................................................................... 11

JAVA .......................................................................................................... 11

Page 3: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

II

Előnye .................................................................................................. 11

Hátránya .............................................................................................. 11

PHP ............................................................................................................ 12

Előnyei ................................................................................................. 12

Hátránya .............................................................................................. 13

C# .............................................................................................................. 13

Előnye .................................................................................................. 14

Hátránya .............................................................................................. 14

A megfelelő programozási nyelv kiválasztása ............................................ 14

A munkám során használt fontosabb alkalmazások ......................................... 15

SQL Server Management Studio (SSMS) .................................................. 15

Microsoft Visual Studio ............................................................................... 15

Felhasználók .................................................................................................... 16

Adminisztrátor ............................................................................................ 16

Feladata ............................................................................................... 16

A Jelenlegi rendszer hátrányai ............................................................. 16

Az új rendszer előnyei: ......................................................................... 17

Az adminisztrátor felhasználói dokumentáció: ..................................... 18

Fuvarszervező ............................................................................................ 19

Általános feladatai ................................................................................ 19

A Jelenlegi rendszer hátrányai ............................................................. 19

Az új rendszer előnye .......................................................................... 19

Fuvarszervező felhasználó dokumentáció ........................................... 20

Irodai asszisztens ....................................................................................... 22

Feladatai .............................................................................................. 22

A jelenlegi rendszer hibái ..................................................................... 22

Az új rendszer előnyei .......................................................................... 22

Irodai asszisztens felhasználói dokumentáció ..................................... 22

Gépjárműfogadó ........................................................................................ 24

Feladatai .............................................................................................. 24

A jelenlegi rendszer hibái ..................................................................... 24

Az új rendszer előnyei .......................................................................... 24

Gépjárműfogadó felhasználói dokumentáció ....................................... 24

Adatbázis tervezés ........................................................................................... 27

Adatbázis szerkezetének leírása ................................................................ 27

Page 4: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

III

Relációs modellek ...................................................................................... 27

LSP (Logistik Service Partner) relációs modellek ................................ 27

PageNames relációs modellek ............................................................ 28

SGHU (Starter Generators Hungary) diagram ..................................... 29

Adattáblák .................................................................................................. 29

USERS tábla ........................................................................................ 30

SGHUorder tábla ................................................................................. 31

PDFiles tábla ....................................................................................... 34

MilkRunMovement tábla ...................................................................... 34

LSP (Logistik Service Partner) tábla .................................................... 36

TPageNames tábla: ............................................................................. 37

Az alkalmazás felépítése ................................................................................ 37

Osztálydiagram ........................................................................................ 38

Fontosabb osztályok: ............................................................................... 39

A szoftver fontosabb funkcióinak bemutatása .......................................... 41

Új felhasználó ........................................................................................... 41

A hozzáférések kezelése ......................................................................... 42

Levél készítés .......................................................................................... 43

Fájlok feltöltése ........................................................................................ 45

Régió, nyelv beállítása ............................................................................. 46

Validálás .................................................................................................. 46

Riportok .................................................................................................. 47

Interaktív weblap .................................................................................... 49

Szoftvertesztelés ............................................................................................ 50

Statikus teszt ............................................................................................ 50

Felülvizsgálat ..................................................................................... 50

Statikus elemzés ................................................................................ 50

Dinamikus tesztelés ................................................................................. 53

Egységtesztek.................................................................................... 53

Felhasználói felület tesztelése ........................................................... 53

Meglévő rendszerekkel való tesztelés ............................................... 55

Fejlesztési lehetőségek .................................................................................. 56

Összegzés ...................................................................................................... 57

Summary ........................................................................................................ 58

Hivatkozások .................................................................................................. 59

Page 5: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

IV

Ábrajegyzék .................................................................................................... 60

Táblázatok jegyzéke ....................................................................................... 61

Page 6: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

1

Köszönetnyilvánítás

Ezúton szeretnék köszönetet mondani konzulenseimnek Smid Lászlónak és

Csizmadia Lillának, tanáraimnak, munkatársaimnak, családomnak, hogy lehetővé

tették és türelemmel segítették szakdolgozatom elkészítését.

Page 7: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

2

1. Bevezetés

2012 nyarától a Miskolci Robert Bosch logisztikai területen

szoftverfejlesztőként dolgoztam, majd 2018. január elsejétől (jelenleg is) a Starters

E-components Generators Automotive Kft-nél dolgozom.

Szakdolgozatom témájául egy olyan számítógépi program megírását

választottam, ami nagymértékben megkönnyíti a fogadóhelyen belépő - előre

tervezett - gépjárművek nyilvántartását, regisztrálását, valamint a portai

eseménynaplók kezelését, dokumentálását. A beléptetések és kiléptetések pontos

időponttal, a dokumentálást végző adataival együtt tárolódnak el. A rögzítendő

adatok a programban meghatározhatók, melyek a program jellemzőit alkotják. A

rendszer hálózatos és önálló változatban is üzemeltethető. Akár több különböző

belépési pontra alkalmazható. A be- és kilépés bármelyik fogadóhelyről kezelhető,

vagyis az egyik helyen belépett gépjármű a másik belépési helyen is távozhat

(hálózatos változat esetén). A kezelés rendkívül egyszerű, nem igényel

számítástechnikai ismereteket, használata 1-2 órán belül elsajátítható.

A jelenlegi nyilvántartási rendszer vizsgálata:

Jelenleg az adatok tárolására több Excel adattábla és Access adatbázis

szolgál.

A rendszer hibái:

- a táblázatok sérülékenyek,

- bonyolult, manuális a használata,

- lassú és pontatlan,

- felhasználói jogosultság megszerzése nélkül is szerkeszthetők az adatok,

- heterogén rendszerek sokasága,

- nem megoldott az adatok archiválása.

Page 8: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

3

Cég bemutatás

A Robert Bosch Energy and Body Systems Kft-t

2003 nyarán alapították. A cég első számú beszállítója

számos autógyárnak. A leggyorsabban fejlődő gyárak egyike a világon. A cég

Miskolcon gyártott, autóipari alkatrészeket szállít – többek között

klímaberendezéseket, villamos motorokat – jelentős autóipari cégeknek (AUDI,

BMW, MERCEDES), Európa összes országába, valamint Ausztráliába és az

Egyesült Államokba. Legújabb generációs termékei, például a fékrásegítő motor,

illetve a menet stabilizátor a hibrid és elektromos meghajtású járművek

nélkülözhetetlen alkatrészei. Az autóipari termékek mellett a gyár kiemelkedő

terméke az eBike meghajtás is, egy rendkívül fejlett és intelligens erőrásegítés-

rendszert alkalmazó motoregység, amely gyártásáért és technológiájáért is magyar

szakemberek felelnek. [1]

A Bosch csoport indítómotorokat és generátorokat

gyártó, nagy múltú részlege a Starters & Gernerators,

2018.01.01-től független társaságként működik

Magyarországon Starters E-Components Generators Automotive Hungary Kft.

néven. Globálisan a cégcsoport SEG Automotive Hungary Kft -ként lesz ismert. Az

új név az indítómotorok és generátorok fejlesztése és gyártása terén szerzett több

mint egy évszázados tapasztalatra és a jövőbe mutató e-mobilitási megoldásokra

egyaránt utal. Sikeres működését a társaság a Zhengzhou Coal Mining Machinery

Group Co. Ltd., mint új tulajdonos és egy befektetési csoport irányítása alatt folytatja

tovább tevékenységeit

Zhengzhou Coal Mining Machinery Group Co. Ltd: ZMJ-egy kínai cég, melyet

1958-ban alapítottak. A kínai piacon több mint 45%-os részesedéssel rendelkezik

és a vevői közé tartoznak a legnagyobb kínai szén feldolgozásával foglalkozó

cégek, mint pl.: China like Shenhua Coal, Datong Coal, Shanxi Coal, Huainan Coal,

Jincheng Coal mines, etc.

Az ASIMCO felvásárlásával, amely egy jelentős kínai autóipari beszállító, a ZMJ

egy második pillérként számol piaci tevékenysége során. SEG Automotive

megvásárlásával egy következő jelentős lépést tett annak irányába, hogy

nemzetközi szerepet töltsön be ebben a szektorban. A csoport 22 nemzetközi

leányvállalatból, raktározó cégből és holdingból áll.

Page 9: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

4

Fő termékei:

- öntött és kovácsolt termékek,

- általános gépek és felszerelések,

- nagy teherbírású bányászati gépek és berendezések,

- hidraulikus és pneumatikus alkatrészek.

Elsődleges piacai:

- Kelet-Európa,

- Délkelet-Ázsia.

Központ: Zhengzhou, Henan tartomány

Starters E-components Generators Automotive:

Világszerte 16 telephellyel rendelkezik (1. ábra), melyek összesen több mint 8000

embert foglalkoztatnak.

1. ábra - Telephelyek

A folyamatos fejlődés eredményeképpen, mára több ezer munkavállaló dolgozik

azon, hogy a Miskolcon előállított autóelektromossági alkatrészek a legjobb

minőségben és a leghatékonyabb módon jussanak el a felhasználókhoz.

Munkám során az alábbi feladatokat láttam el: riportok készítése, programfejlesztés

és karbantartása, adatbázis fejlesztés és karbantartás, elemzések, kimutatások és

prezentációk önálló elkészítése, adatok elemzése, értelmezése és rendezése,

adminisztrációs feladatok ellátása. [2]

Page 10: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

5

A szakdolgozat készítéséhez rendelkezésemre álló technikák

A következőkben ismertetem a dolgozat készítéshez használt hardveres és

szoftveres megoldásokat, valamint az általam elsajátított és szakmai ismereteket.

Asztali számítógép paraméterei

Típus: Lenovo ThinkCentre M900 Small Form Factor

CPU: Intel (R) Core(TM) i5-6500 CPU @ 3.20Ghz

RAM: 8GB

Operációs rendszer: Microsoft Windows 10 Enterprise

Server paraméterei

CPU: Intel (R) Xeon (R) CPU E5-2620 v3 @ 2.50GHz

RAM: 4GB

Operációs rendszer: Windows Server 2012 R2 Standard

Használt programok

Microsoft SQL Server Management Studio 17

Microsoft Visual Studio Professional 2017

Notepad++

Microsoft Access 2016, Excel 2016, Outlook 2016, Visio 2016

Elsajátított szakmai ismeretek

C; C#; SQL; HTML; CSS; VBA, JavaScript, Java alapszinten

UNIX/Linux ismeretek

SAP felhasználói szintű ismeretek

Microsoft Word; Outlook; PowerPoint; Visual Studio

Microsoft Excel, Access magas szintű ismerete

SQL Serverismeretek

ASP.NET, MVC

XML, WPF, WCF

Windows server alapismeretek (IIS)

Page 11: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

6

Fejlesztési lehetőségek elemzése

A fejezet taglalja a fejlesztési lehetőségeket, bemutatja az egyes elképzelések

előnyeit és hátrányait, meghatározásra kerül a fejlesztés további iránya.

Kész szoftver vásárlása

Ma már rengeteg ún. "dobozos" termék áll a jövőbeni felhasználók

rendelkezésére. A leggyorsabb megoldás, ha kiválasztjuk az igényeinkhez

legközelebb álló terméket, ami telepítés és betanulás után azonnal használható.

Hátrányai

Mivel a szoftver nem kifejezetten az igényeinkre szabottan készült, csak

azokhoz a legközelebb álló, ezért nem képes kezelni a helyi sajátosságokat, nem

tud megfelelően alkalmazkodni a felhasználók igényeihez. A készen vásárolt

termék, egy általános rendszert akar részben vagy egészben a felhasználóra

erőltetni. Nehezen vagy egyáltalán nem módosítható. Nehezen oldható meg a

szervízelése.

Külső céggel közösen történő fejlesztés

Megbízhatósági szempontból a legmegfelelőbb megoldást egy nagy szakmai

háttérrel rendelkező szoftverfejlesztő céggel közösen fejlesztett szoftver jelentheti.

Az így készülő szoftver pontos és gyors, maximálisan figyelembe veszi a helyi

sajátosságokat, alkalmazkodik a felhasználók igényeihez.

Hátrányai

Magas fejlesztési költségek, bonyolultabb az utólagos módosítás, a

szoftverkarbantartás plusz költség. Az adott szakterület jellegzetességeit és

megszorításait meg kell értetni a külső céggel.

Saját fejlesztésű szoftver készítése

Saját fejlesztésű szoftver készítésének előnyei:

- maximálisan figyelembe veszi a helyi sajátosságokat,

- alkalmazkodik a felhasználók igényeihez,

- több lépcsőben fejleszthető,

- biztosított a gyors szervízelés,

- saját erőforrásból megoldható,

- tervszerűen tovább fejleszthető,

- nem kerülnek cégspecifikus információk harmadik fél birtokába.

Page 12: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

7

Hátránya

Hosszú elkészülési idő.

A megfelelő fejlesztési lehetőség kiválasztása

A megoldási alternatívák vizsgálata után a saját fejlesztésű szoftver elkészítése

bizonyult a legmegfelelőbb megoldásnak. Ennek fő okait, a cég sajátosságaiból

adódó, árufuvarozással kapcsolatos speciális nyilvántartási igények, illetve a

szoftver továbbfejlesztésének és karbantartásának hosszú távú

megvalósíthatósága képezték. A szoftver a felmerülő felhasználói igényeknek

megfelelően fejleszthető.

A fejlesztés lépései:

- alapanyagok tervezett beérkezése külső beszállítóktól,

- az állandó körforgásban lévő, gyártásközi (Milkrun) fuvarok nyilvántartása,

- a termeléssel közvetlenül nem összefüggésbe hozható gépjárművek

mozgásának nyomon követése.

A saját fejlesztésű programom célja:

• a papír formátum lecserélése egy webes felületre,

• manuális feladatok automatizálása,

• a beléptetési folyamatok felgyorsítása,

• az OTD (On Time Delivery) mérés lehetővé tétele,

• Ipar 4.0 elképzeléseknek megfelelő rendszer kialakítása.

Page 13: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

8

Alkalmazás típusok elemzése

A fejezet összefoglalja a különböző alkalmazási fejlesztés lehetőségeit előnyit

hátrányait.

Mobilalkalmazások

Az ilyen típusú alkalmazások vékony kliens vagy vastag kliens

alkalmazásokként fejleszthetők. A vastag kliens mobilalkalmazások támogatják az

offline vagy alkalmanként online munkameneteket. A webes vagy vékony kliens

alkalmazások csak az online munkameneteket támogatják. A mobil alkalmazások

megtervezésekor az eszközforrások korlátozottak. [3]

Előnye

Támogatja a kézi eszközöket,

egyszerű a használat,

könnyű, hordozható az eszköz.

Hátránya

Beviteli és navigálási korlátozások,

korlátozott megjelenítési terület.

Vastag kliens alkalmazások

Az ilyen jellegű alkalmazások általában önálló alkalmazásokként vannak

kifejlesztve, grafikus felhasználói felülettel, amely adatokat jelenít meg több

vezérlővel.

Előnye

Képes kihasználni az ügyfél erőforrásokat,

jobb reagáló képesség, változatosabb felhasználói felület,

dinamikusabb jobb válaszidő.

Hátránya

Telepítési komplexitás,

verzió frissítési probléma,

Platform specifikus.

Szolgáltatási alkalmazások

A szolgáltatások megosztják a megosztott üzleti funkciókat és lehetővé teszik

az ügyfelek számára, hogy hozzáférjenek egy helyi vagy egy távoli rendszerből. A

Page 14: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

9

szolgáltatás műveletei az XML sémákon alapuló üzeneteket használnak, amelyek

egy csatornán áthaladnak. Az ilyen típusú alkalmazás célja az ügyfél és a kiszolgáló

közötti laza kapcsolódás elérése.

Előnye

Az ügyfél és a kiszolgáló között lazán kapcsolt kapcsolatok,

különböző és nem kapcsolódó alkalmazások felhasználhatók,

az interoperabilitás támogatása.

Hátránya

Nincs felhasználói felület,

a hálózati kapcsolattól függ.

Webes alkalmazások

Az ilyen típusú alkalmazások általában az online munkamenetet támogatják és

számos operációs rendszeren és platformon futó különböző böngészőket

támogathatnak.

Előnye

Széleskörű elérés és szabályokon alapuló felhasználói felület több

platformon,

könnyű telepítés és verziókezelés.

Hátránya

Folyamatos hálózati kapcsolat szükséges,

nehéz a vastag felhasználói felületet biztosítani.

Page 15: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

10

A megfelelő alkalmazási lehetőség kiválasztása

A megoldási alternatívák vizsgálata után a webes alkalmazás bizonyult a

legmegfelelőbb megoldásnak. Ennek okai a cég sajátosságaiból adódnak:

sok különböző eszköz,

nem igényel telepítést,

a szoftver továbbfejlesztése és karbantartása egyszerűbb,

a hálózat a teljes telephelyen ki van építve.

Page 16: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

11

Programozási nyelvek elemzése

A fejezet taglalja a legelterjedtebb programozási nyelvek előnyeit és hátrányait.

JAVA

A Java általános célú objektum orientált programozási nyelv. A Java-

alkalmazások általában bájtkódba vannak fordítva, amelyek bármilyen Java virtuális

gépen (JVM) futtathatók a számítógépes architektúrától függetlenül. A Java az egyik

legnépszerűbb programozási nyelv. A Java-t eredetileg a Sun Microsystems

fejlesztette ki. A nyelv nagyrészt a C és a C++ szintaxisából származik. [4]

Pl.:

Előnye

A Java magasabb szintű funkcionalitást és hordozhatóságot kínál, mivel az egyik

platformon írt programok az asztali számítógépeken, mobileszközökön és

beágyazott rendszereken futhatnak.

Ingyenes, egyszerű, objektum-orientált.

Érett nyelv, ezért stabilabb és kiszámíthatóbb, a Java Class Library lehetővé

teszi a platformok közötti fejlesztést.

Nagyon népszerű a vállalati, beágyazott és hálózati szinten, a Java nagy aktív

felhasználói közösséggel és támogatással rendelkezik.

A C és C++ programmal ellentétben a Java programokat a platformtól

függetlenül állítják ellő a bájtkód nyelvet, amely lehetővé teszi, hogy ugyanazt a

programot futtassa bármely olyan gépen, amelyen a JVM telepítve van.

Hatékony fejlesztői eszközökkel rendelkezik, mint például az Eclipse SDK és a

NetBeans, amelyek hibakeresési képességgel rendelkeznek és integrált

fejlesztési környezetet kínálnak.

Növekvő nyelvi sokszínűség és kompatibilitás.

Viszonylag zökkenőmentes kompatibilitás az egyik verzióról a másikra.

Hátránya

A Java nyelv viszonylag lassabb és több memóriaterületet igényel, mint a

többi natív programozási nyelv, például a C és a C++.

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello, World");

}

}

Page 17: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

12

Hiányzik a többszörös öröklődést, ami több objektum orientált nyelv hatékony

tulajdonsága.

JVM szükséges a futtatásukhoz.

PHP

A PHP egy kiszolgáló oldali szkriptnyelv, amelyet web fejlesztéshez

terveztek, de általános célú programozási nyelvként is használják. A PHP kódot

közvetlenül a HTML-kódba ágyazható A nyelv szintaxisa nagyon hasonlít a C/C++,

Java, JavaScript vagy Perl nyelvekhez. A kódot a web szerver PHP

feldolgozómodulja értelmezi, ezzel dinamikus weboldalakat hozva létre. Rasmus

Lerdorf 1995-ben indította útjára. [5] [6]

Pl.:

Előnyei

Ez a kiszolgáló oldali parancs fájlnyelv rendkívül könnyen megtanulható,

összehasonlítva más nyelvekkel. ha valaki például ismeri a C vagy Perl

szintaxisát, akkor könnyen és gyorsan megtanulhatja a PHP-t, mindez

köszönhető az egyszerűen érthető szintaxisnak.

Más nyelveknek hosszú scriptekre van szükségük, a PHP ugyanazt a munkát

elvégezheti néhány sornyi kóddal továbbá, ha változtatni szeretne, egyszerűen

szerkesztheti.

Nyílt forráskódú, ingyenes, nem kell drága szoftvereket vásárolnia hozzá,

webhelyét a minimális költséggel fejlesztik ki.

Mivel a PHP-t nagyszámú ember használja, nagy közösség jön létre, nem kell

aggódnia, ha valahol elakad, könnyen kap segítséget.

Platform független: akár Windows, MacOS, Linux vagy UNIX; támogatja az

összes főbb böngészőt.

PHP támogatja az összes fontos web szervert is, legyen az Apache vagy a

Microsoft IIS. Támogatja a Netscape és a személyes web szervert is, saját

memóriát használ, így a kiszolgáló terhelése és a betöltési idő automatikusan

csökken, ami a gyorsabb feldolgozási sebességhez vezet, csökkenti a fejlesztési

időt, amikor a webes alkalmazásokra, mint az eCommerce vagy a CRM.

Weboldalak és webes alkalmazások fejlesztésének egyik legbiztosabb módja,

mivel védelmi réteget kapott a vírusok és a fenyegetések ellen.

<?php echo '<p>Hello World</p>'; ?>

Page 18: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

13

Több mint két évtizede használják, több millió ember, a képességeit

bizonyítottan tesztelték, így a legtöbb fejlesztő bízik benne.

Hátránya

Nyílt forrású, így minden ember láthatja a forráskódot, ha vannak hibák a

forráskódban, akkor az emberek felhasználhatják a PHP gyengeségeit.

Nem alkalmazható nagy alkalmazásokhoz: nehéz karbantartani, mivel nem

moduláris.

Gyenge típus, az implicit konverzió meglepheti a gondatlan programozókat,

és váratlan hibákat okozhat.

A visszafelé kompatibilitás gyakran sérül, új verziókon nem mindig fut,

hibamentesen a régire irt kód

C#

A C# egy elegáns és típus biztos objektum-orientált programozási nyelv, amely

lehetővé teszi a fejlesztők számára, hogy különböző biztonságos és robusztus

alkalmazásokat készítsenek, amelyek a .NET-keretrendszeren futnak. A C

segítségével létrehozhat Windows ügyfélalkalmazásokat, XML web

szolgáltatásokat, elosztott összetevőket, ügyfél-kiszolgáló alkalmazásokat,

adatbázis-alkalmazásokat és még sok mást. A Visual C# fejlett kódszerkesztőt,

kényelmes kezelőfelület-tervezőket, integrált hibakeresőt és számos más eszközt

biztosít a C# nyelv és a .NET-keretrendszer alapján történő alkalmazások

fejlesztéséhez. A legújabb verzió a C# 7.2, amely 2017-ben jelent meg a Visual

Studio 2017 verziójával együtt. [7]

Pl.:

using System; namespace HelloWorld { class Hello { static void Main() { Console.WriteLine("Hello World!"); } } }

Page 19: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

14

Előnye

A C# egy .NET nyelv, támogatja a nyelv interoperabilitását, azaz hozzáférhet

bármelyik .NET kompatibilis nyelven írt kódhoz és örökölheti az ezeken a

nyelveken írt osztályokat is.

Lehetővé teszi több nyelv, például a C++, a Java vagy a Visual Basic használatát

és számos különböző nyelvű fordítóprogramot tartalmaz, amely egy platform

specifikus kódot (azaz Microsoft vagy Windows) állít elő.

Kihasználja a .NET-keretrendszer előnyeit.

A C# erősen típusos, ezért biztosítja a feldolgozás során a memóriában tárolt

adatok értelmének megőrzését, és megnehezíti vagy kizárja az adatok téves

értelmezését, tárolását és feldolgozását.

Objektum orientált, még az egyszerű adattípusok is objektumként vannak

kezelve pl.: az egy int- típushoz kapcsolódó módszerek könnyebben lehet

használni.

Egyszerűsített szintaxis, a C# megkísérli egyszerűsíteni a szintaxist, hogy

következetesebb és logikusabb legyen, miközben eltávolítja a C++ összetett

jellemzőit.

A C# a memóriakezelési problémákat is elveszi a fejlesztőtől a .NET

szemétgyűjtési rendszere segítségével, a már nem használt objektumokat a

szemétgyűjtő automatikusan felszabadítja.

Hátránya

A C# kevésbé rugalmas, mint a C++. A C# nagymértékben függ a .NET

keretrendszertől bármit, ami nem található meg a .NET keretrendszerben,

nehéz lesz végrehajtani.

Költséges a C# nem nyílt forráskódú.

A megfelelő programozási nyelv kiválasztása

A megoldási alternatívák vizsgálata után a C# bizonyult a legmegfelelőbb

megoldásnak. Ennek okai a cég sajátosságaiból adódnak:

a cégnél a preferált nyelv a c#,

a kapcsolódó rendszerek .NET platformra épülnek,

nagyobb támogatás,

korszerűbb és modernebb nyelv.

Page 20: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

15

A munkám során használt fontosabb alkalmazások

Ez a pont tartalmazza a fontosabb alkalmazásokat, amelyeket munkám során

használtam.

SQL Server Management Studio (SSMS)

Az SQL Server Management Studio (SSMS)

egy olyan szoftveralkalmazás, amelyet a Microsoft

SQL Server összes összetevőjének konfigurálásához,

kezeléséhez és felügyeletéhez használunk. Az eszköz

mind scriptszerkesztőket, mind pedig grafikus

eszközöket tartalmaz, amelyek a kiszolgáló objektumokkal és jellemzővel

foglalkoznak. [8]

A program nagy segítséget nyújtott a bonyolult és összetett táblák és

lekérdezések kezelésében, több adatbázis egyszerű és gyors átlátásában. A

programnak van egy saját Transact-SQL hibakeresője, ami a Transact-SQL kód

hibáinak feltárásában és működésük megértésében segített.

Microsoft Visual Studio

A Microsoft Visual Studio egy integrált fejlesztői

környezet (IDE) a Microsofttól. Számítógépes

programokat, weboldalakat, web alkalmazásokat, web

szolgáltatásokat és mobilalkalmazásokat fejleszt. A Visual Studio Microsoft

szoftverfejlesztési platformokat, például Windows API-t, Windows Forms-ot,

Windows Presentation Foundation-t, Windows Store-t és Microsoft Silverlight-et

használ. [9]

A munkám során web fejlesztés volt a meghatározó. A WEB fejlesztéshez

ASP.NET keretrendszert használtam. A program sokat segített mind a Front end és

a Back end fejlesztésében. Könnyen kezelhető grafikus, jól felépített program, ami

jól kezeli a különböző kiegészítőket, referenciákat (.dll).

Ezek közül kiemelnék néhányat:

AjaxControlToolkit.dll: ez segített a különböző AJAX kontrolok

használatában pl.: naptárak vagy fájl feltöltés,

ThoughtWorks. QRCode.dll: ezt használtam a QR-kód generálásban,

TinyMCE: HT7ML szövegszerkesztő, aminek segítségével a felhasználók

nem csak Plain text formátumban tudnak leveleket írni,

Page 21: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

16

ResXManager: a nyelvi fájlokat tette átláthatóbbá, kezelhetővé.

Felhasználók

Ebben fejezetben bemutatom, hogy milyen felhasználók szerepelnek a

programban. Jelenleg milyen rendszereket használnak, az új program miben segít

a mindennapi munkájuk során. A fejezetben a program működésének bemutatása

is leírásra kerül. A rendszer tervezett funkcionális működését, a rendszer

viselkedését és a környezetével való kapcsolatait használati eset (use case)

diagram segítségével írom le. A fejezetek végén egy felhasználói dokumentáció

szerepel.

Adminisztrátor

Feladata

A rendszer karbantartása. A felhasználók munkájának segítése, felhasználó

kezelés, esetleges informatikai támogatás.

A Jelenlegi rendszer hátrányai

Az adminisztrátor több különböző rendszert, programot kezel, átláthatatlan a

rendszer struktúrája, felépítése, a programok nincsenek szinkronban. Az

adminisztrátori feladatok nincsenek konkrétan meghatározva.

Page 22: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

17

Az új rendszer előnyei:

Az adminisztrátor feladatai egyértelműek, a rendszer karbantartása

egyszerűbb, átláthatóbb. Feladatait a 2. ábra mutatja.

2. ábra - Adminisztrátor diagramja

Page 23: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

18

Az adminisztrátor felhasználói dokumentáció:

A programban neki kell elsőnek belépni, Felhasználónév: „Admin” Jelszó:

„789_321fyk7b” ha ez megtörtént, a felületen következőkhöz van hozzáférése (3.

ábra):

3. ábra - Adminisztrátor felület

A Levelezés Beállításoknál alapestben a következő van beállítva (4. ábra), ezt tudja

módosítani, amit a tesztelés gombbal tesztelhet.

4. ábra - Levelezési beállítások

Felhasználói beállításokban a felhasználók számára a belépéshez szükséges

felhasználói nevek, jelszavak és az ezekhez tartozó jogosultságok kezelése.

Az adatbázis beállításoknál alapesetben a következő van beállítva (5. ábra).

Lehetőségünk van módosítani az Adatbázis Kapcsolatot, ha új adatbázist

használunk szükséges az adatbázis létrehozása, ezt a felületen tehetjük meg vagy

pedig a script.sql fájl lefuttatásával. Speciális estekben lehetséges beállítani egy

másodlagos adatbázis tesztelés céljából. A program automatikusan a teszt

adatbázisra kapcsolódik, ha felhasznál „tesztuser” vagy „tesztfelhasznalo”. Az

adatbázis kapcsolatokat a teszt gombbal tesztelheti.

5. ábra - Adatbázis beállítás

Page 24: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

19

Fuvarszervező

Általános feladatai

A fuvarok leszervezése, nyilvántartása, útvonalak tervezése, kommunikáció a

beszállítókkal.

A Jelenlegi rendszer hátrányai

A fuvarok nyilvántartása egy Microsoft Access programban történik, a program

sérülékeny, nehezen karbantartható, nem megbízható és egyszerre csak egy

felhasználó használhatja, ezzel lassítja a napi folyamatokat. A fuvarozók értékelése

kivitelezhetetlen.

Az új rendszer előnye

Egy központi rendszert használ, fuvarok átláthatóbb, egyszerűbb

nyilvántartása, egyszerre több felhasználó is dolgozhat a rendszerben. Feladatait a

6. ábra mutatja.

6. ábra - A fuvarszervező diagramja

Page 25: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

20

Fuvarszervező felhasználó dokumentáció

Fuvarok készítése a saját SGH (Starter Generators Hungary) űrlapon történik

(7. ábra). Itt a fuvarra jellemző adatok és a küldendő levél adatainak kitöltése

történik. A felületet egyszerre több felhasználó is használhatja, nem zavarják

egymás munkáját. A fuvarozó kiválasztása után a szállítmányozói adatok

automatikusan kitöltődnek. Ha a fuvarozó adatokat módosítjuk, a rendszer

automatikusan érzékeli és a módosításokat menti az adatbázisban. A legördülő

listák tartalmát bővíthetjük, ha az „* Egyéb *” lehetőséget választjuk, ilyenkor tudjuk

plusz adatokkal bővíteni a legördülő listát. Miután a mezők megfelelően kitöltése

megtörtént a mentés gombra kattintva, az adatok rögzítésre kerülnek.

7. ábra - A szállítás megrendelőlapja

A program automatikusan egyedi azonosító számot generál (QR kódot + QR

kód azonosítót), ami az egyes szállítmányok megkülönböztethetőségét biztosítja. A

program által készítésre kerül az aktuális fuvar adatait tartalmazó e-mail. A

felhasználónak lehetősége van továbbítás előtt az e-mail adatait ellenőrizni és

szükség esetén módosítani. A fuvarozó részére küldött e-mail kinyomtatásával

létrehoz egy azonosító lapot, mely tartalmazza a szállítmány adatait és ez lesz a

fuvar „igazolványa”. Feladatuk továbbá az adatok karbantartása: a

Page 26: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

21

fuvarszervezőknek lehetősége van az adattáblák módosítására, az adattáblák a

menüben navigálva érhetőek el, ilyen táblák pl az LSP (Logistik Service Partner),

SGH (Starter Generators Hungary).

o Az LSP (Logistik Service Partner) tábla a fuvarozó adatait

tartalmazza. A kiválasztás után egy felrúgó ablakban tudjuk

módosítani a hozzá tartozó adatokat. Ilyenek az elérhetőség,

telefonszám, kapcsolattartók. Ha új adatot akarunk felvinni

szintén a jel megnyomásával lehetséges.

A fuvarszervezőknek is van lehetőségük a riportok készítéséhez hasonlóan, mint

az adminisztrátoroknak.

Page 27: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

22

Irodai asszisztens

Feladatai

A fuvarszervezők munkájának előkészítése, kiegészítő munkák ellátása,

számlaellenőrzés, riportok készítése, fuvarozókkal kapcsolattartás.

A jelenlegi rendszer hibái

Nincs felhasználó kezelés, adatokat tudnak módosítani, illetve törölni

véglegesen a rendszerben. Nem lehetséges az On Time Delivery felül vizsgálata.

Az új rendszer előnyei

Egy központi rendszer, egységes adatokat használnak, a fuvar adatait nem

tudjak módosítani, több felhasználó, több feladatkörben tudja segíteni a

fuvarszervezők munkáját.

Irodai asszisztens felhasználói dokumentáció

A meglévő fuvarok kiegészítése és fuvarszervezés rögzítése során vannak

adatok, amelyek csak utólag állnak rendelkezésre, ezeknek az adatoknak az

utólagos rögzítése az irodai asszisztens (Adminisztrátor) feladata (pl.: tervezett

érkezés időpontja).

Egyik fő feladatuk a riportkészítés (9. ábra), amely két nagy részre bontható:

az alapanyag beérkezésével kapcsolatos szervezett fuvarok riportjai,

az állandó körforgásban lévő, gyártásközi fuvarok riportálása. Feladatit a

8. ábra mutatja.

8. ábra - Irodai asszisztens diagramja

Page 28: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

23

A riportok fajtái pl. mozgási riportok, időriport, időablak alapú riport vagy pedig teljes

listákat lehet készíteni.

9. ábra - Riport készítése

Mozgási riportok: A különböző gépjárművek mozgását lehet rögzíteni,

ilyenkor a riport tartalmazza, hogy hol történt az érkezés, illetve a

távozás, milyen árut mozgatott, az áruhoz milyen egyedi azonosítók

kapcsolódnak.

Időriport: Hasonló, mint a százalékos riport csak itt nem százalékban,

hanem percben mérünk, a várt érkezéshez képest mennyivel érkezett

hamarabb vagy később a szállítmányozó. Az időriportoknál fontos

szerepe van a színeknek.

o abban az esetben, ha a rendelés törlésre került, citromsárga

színnel jelöltem,

o világoskék színt kapott az a sor, ahol a tervezett érkezés még

nincs kitöltve,

o zölddel jelöltem azt a sort, ahol a tervezett érkezéshez képest

az eltérés +- 15 perc,

o piros színt az a sor kapott, ahol, a tervezett érkezéshez képest

az eltérés több, mint +- 15 perc.

Időablak alapú riport: Ez csak az időablakkal rendelkező fuvarokra

használjuk. Ez a riport egy tervezett időablakhoz viszonyítja az

érkezéseket és távozásokat. A riport tartalmazza az időablak szerinti-

illetve a valós érkezéseket.

Page 29: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

24

Egyéb riportok: A program adattábláit lehet riportálni, pl.: LSP (Logistik

Service Partner) tábla

A riportok könnyebb prezentáláshoz lehetőségünk van az adatok exportálásra Excel

formátumban, legtöbb helyen ez az ikon jelzi:

A riport készítésnél lehetséges az adatokra szűrni pl.: dátumra vagy fuvarozóra.

Gépjárműfogadó

Feladatai

A tehergépjárművek beléptetése a telephelyre, adminisztratív munkák.

A jelenlegi rendszer hibái

Az adtok tárolása Microsoft Excelben vagy papíralapon történik, ezért lassú és

pontatlan a regisztrálás. Nincs felhasználó kezelés, adatokat tudnak módosítani,

illetve törölni korlátozások nélkül. Nem lehetséges az On Time Delivery

megvalósítás.

Az új rendszer előnyei

Egységes adatokat használnak, a fuvarokat nem tudjak módosítani, több

felhasználói kör. Feladatait a 10. ábra mutatja.

10. ábra - Gépjárműfogadó diagramja

Gépjárműfogadó felhasználói dokumentáció

Az alapanyag beérkezésénél és az állandó körforgásban lévő, gyártásközi

fuvarok kezelése hasonlóan történik. A szállításokat az egyedi azonosítószámok

alapján lehet megkülönböztetni.

1. A szállítmány megérkezik az érkeztető helyre, a gépjárművezető az áru

érkeztetőnek átadja az azonosító lapot, amely tartalmazza fuvarszervező által

előzetesen generált és e-mail-ben elküldött azonosító adatokat, a QR kódot +

Page 30: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

25

QR kód azonosítót. Ezeket a lapokat minden be- és kilépéskor használni kell a

következő módon. A QR-kódot tartalmazó lap (11. ábra), a beszkennelés után a

sofőrnél marad.

11. ábra - Azonosító lap

2. A porta szolgálat egy tagja az azonosító lapon szereplő kódot a

rendelkezésre álló QR kód leolvasóval beolvassa, ha ez nem sikerül, akkor

a kód felett szereplő azonosítót írja be a sárga mezőbe. A beazonosítás

során a program önműködően kitölti a mezők egy részét, a hiányzó mezőket

manuálisan pótolni kell (12. ábra).

12. ábra - Portai felhasználói felület

3. Az „Adatok Felvétele” gombra rákattintva befejeződik a folyamat.

Page 31: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

26

4. Sikeres adatok felvétele után egy üzenetablak jelenik meg (13. ábra).

13. ábra - Üzenetablak

Az „OK” gomb megnyomása utána a rendszerbe rögzíteni lehet az újabb adatokat.

Page 32: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

27

Adatbázis tervezés

Adatbázis szerkezetének leírása

Az adatok összegyűjtése és rendszerezése után, az adatkezelés

megvalósítására a megfelelő megoldást egy jól átgondolt, a szükséges adattábla

kapcsolatokkal rendelkező adatbázis létrehozása jelenti. Az adatbázisnak

biztosítania kell az egységes adattárolást és adatkezelést továbbá a gyors, pontos

és megfelelően ellenőrzött információáramlást. Két fajta nyelvet használok

adatbázis kezelésére:

XML (Extensible Markup Language, Kiterjeszthető Jelölő Nyelv): a W3C által

ajánlott általános célú leíró nyelv, speciális célú leíró nyelvek létrehozására. előnye,

hogy ha egy szövegszerkesztővel (például Notepad vagy Microsoft Word) nyitjuk

meg, akkor írható, értelmezhető és manipulálható. Felhasználása programban több

helyen történik legfontosabb a web.xml fájl és a nyelvi fájlok (.Resx) tárolása. [10]

SQL,(Structured Query Language strukturált

lekérdezőnyelv) relációsadatbázis-kezelők lekérdezési nyelve. Felhasználása

programban több helyen történik a legfontosabb az adatok hosszú távú tárolása.

Relációs modellek

Az adatbázis szerkezetét a táblák, oszlopok, kulcsok kapcsolatát a következő

grafikus diagramok mutatják be.

LSP (Logistik Service Partner) relációs modellek

14. ábra - LSP diagram

Szerepe:

A fuvarozók adatainak tárolása, a város és ország táblát újra felhasználom (14.

ábra).

Page 33: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

28

PageNames relációs modellek

15. ábra - PageNames diagram

Szerepe:

A dinamikus menühöz tárolja az adatokat. A város és ország táblát újra

felhasználom (15. ábra).

Page 34: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

29

SGHU (Starter Generators Hungary) diagram

16. ábra - SGHU (Starter Generators Hungary) diagramja

Szerepe:

A rendelésekhez tárolja az adatokat. A város és ország táblát újra felhasználom (16.

ábra).

Adattáblák

Az adattáblákat az adminisztrátor tudja létre hozni, módosítani. Néhány

fontosabb tábla, ami program működéséhez nélkülözhetetlen:

Page 35: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

30

USERS tábla

Modell

Nézet:

PRIMARY KEY Name Data Type Allow Nulls

Yes UserId int False

Username nvarchar(20) True

Password nvarchar(20) True

Email nvarchar(60) True

CreatedDate smalldatetime True

LastLoginDate smalldatetime True

Signature text True

Nev varchar(50) True

CegID int True

torolve bit True

PasswordChange bit False

HomePage int True

T-SQL: CREATE TABLE [dbo].[Users] (

[UserId] INT IDENTITY (1, 1) NOT NULL,

[Username] NVARCHAR (20) NULL,

[Password] NVARCHAR (20) NULL,

[Email] NVARCHAR (60) NULL,

[CreatedDate] SMALLDATETIME NULL,

[LastLoginDate] SMALLDATETIME NULL,

[Signature] TEXT NULL,

[Nev] VARCHAR (50) NULL,

[CegID] INT NULL,

[torolve] BIT NULL,

[PasswordChange] BIT NOT NULL,

[HomePage] INT NULL,

[active] BIT CONSTRAINT [DF_Users_active] DEFAULT

((0)) NOT NULL,

CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ([UserId]

ASC)););

1. táblázat - USERS tábla

Page 36: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

31

Szerepe:

A felhasználói adatok tárolás fontos, mert ennek a táblának a segítségével

tudjuk megoldani a felhasználók kezelését (1. tábla).

Fontosabb mezők:

[Signature]: a felhasználók aláírását tartalmazza az automatikusan

generált levelekhez.

[PasswordChange]: ebben a mezőben tárolom a jelszócsere

engedélyét, mert nem minden felhasználónak engedélyezett a csere.

[HomePage]: ez fog automatikusan megjelenni belépéskor.

SGHUorder tábla

Modell

Nézet:

PRIMARY

KEY

Name Data Type Allow

Nulls

Default

OrderID int False

ProfitCenter int True

Info text True

StartDate date True

Person nchar(40) True

Computer nchar(10) True

Nyomonkovetesi nchar(10) True

Konyvelesi numeric(14,0) True

SzamlazottAr decimal(10,4) True

Szamlaszam nchar(20) True

Olepdf nchar(10) True

Igenylo nchar(50) True

TrackingNumber varchar(25) True

Honnan int True

Hova int True

Plannedpickup date True

Actualpickup date True

Plannedarrival datetime True

Actualarrival datetime True

Comment varchar(50) True

Page 37: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

32

Forwarder int True

Service varchar(50) True

Subject varchar(50) True

ColorID int False ((1))

Deleted bit False ((0))

Arrived bit True ((0))

QRCodeID varchar(50) True

TrailerNumber varchar(25) True

receptionID int True

szalitolevelCMR varchar(50) True

kártyaszám varchar(50) True

plombaszam varchar(50) True

kiszallitas bit True

T-SQL: CREATE TABLE [dbo].[SGHUOrder] (

[OrderID] INT IDENTITY (1, 1) NOT NULL,

[ProfitCenter] INT NULL,

[Info] TEXT NULL,

[StartDate] DATE NULL,

[Person] NCHAR (40) NULL,

[Computer] NCHAR (10) NULL,

[Nyomonkovetesi] NCHAR (10) NULL,

[Konyvelesi] NUMERIC (14) NULL,

[SzamlazottAr] DECIMAL (10, 4) NULL,

[Szamlaszam] NCHAR (20) NULL,

[Olepdf] NCHAR (10) NULL,

[Igenylo] NCHAR (50) NULL,

[TrackingNumber] VARCHAR (25) NULL,

[Honnan] INT NULL,

[Hova] INT NULL,

[Plannedpickup] DATE NULL,

[Actualpickup] DATE NULL,

[Plannedarrival] DATETIME NULL,

[Actualarrival] DATETIME NULL,

Page 38: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

33

[Comment] VARCHAR (50) NULL,

[Forwarder] INT NULL,

[Service] VARCHAR (50) NULL,

[Subject] VARCHAR (50) NULL,

[ColorID] INT CONSTRAINT [DF_SGHUOrder_Color]

DEFAULT ((1)) NOT NULL,

[Deleted] BIT CONSTRAINT

[DF_SGHUOrder_Deleted] DEFAULT ((0)) NOT NULL,

[Arrived] BIT CONSTRAINT [DF_SGHUOrder_Arrived]

DEFAULT ((0)) NULL,

[QRCodeID] VARCHAR (50) NULL,

[TrailerNumber] VARCHAR (25) NULL,

[receptionID] INT NULL,

[szalitolevelCMR] VARCHAR (50) NULL,

[kártyaszám] VARCHAR (50) NULL,

[plombaszam] VARCHAR (50) NULL,

[kiszallitas] BIT NULL,

CONSTRAINT [PK_SGHUOrder] PRIMARY KEY CLUSTERED

([OrderID] ASC));

2. táblázat - SGHUorder tábla

Szerepe:

A fuvarszervezők által létrehozott fuvarok tárolása (2. tábla).

Fontosabb mezők: [3]

[OrderID]: az azonosító az alapanyag beérkezésével kapcsolatos

szervezett fuvarok azonosítja, fontos, hogy egy szám csak egyszer

szerepeljen.

[Olepdf]: az azonosító tárolja a csatolt fájlokat.

[Deleted]: fontos, hogy ebből a táblából semmit nem törlünk, hogy

későbbiekben vissza tudjuk álltani, ezért csak szimbolikus a törlés,

ezt egy mezőben jelezzük, hogy törölve lett.

[QRCodeID]: minden fuvarnak lesz egy azonosítója, amit az érkeztető

helyen olvasnak be egy QR kód olvasóval fontos, hogy nem lehet

Page 39: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

34

használni az OrderID, mivel az a csak egy szám így félő, hogy

azonosító nem a valós fuvarhoz tartozik, ezért minden fuvarnak egy

véletlen számot generálunk, ami biztosan azonosítja a fuvart.

PDFiles tábla

Modell

Nézet:

PRIMARY KEY Name Data Type Allow Nulls Default

Yes ID int False

name varchar(50) True

type varchar(50) True

data varbinary(MAX) True

T-SQL: CREATE TABLE [dbo].[PDFiles] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[name] VARCHAR (50) NULL,

[type] VARCHAR (50) NULL,

[data] VARBINARY (MAX) NULL,

CONSTRAINT [PK_PDFiles] PRIMARY KEY CLUSTERED ([ID]

ASC));

3. táblázat - PDFiles tábla

Szerepe:

A fájlok tárolása az adatbázisban. Egyik tárolási mód, ami hasznos akkor, ha

hosszabb időre kell tárolni a fájlokat. Másik tárolási mód egy publikus mappa a

felhasználóknak, a publikus mappa hozzáférést jól kell meghatározni (3. tábla).

Fontosabb mezők:

[data]: itt az adatokat bináris formátumban tárolom.

MilkRunMovement tábla

Modell

Nézet:

PRIMARY KEY Name Data Type Allow Nulls Default

Yes ID int False

name varchar(50) True

type varchar(50) True

data varbinary(MAX) True

Page 40: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

35

T-SQL: CREATE TABLE [dbo].[MilkRunMovement] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[TrackingNumberID] INT NOT NULL,

[InDate] DATETIME NULL,

[OutDate] DATETIME NULL,

[receptionID] INT NULL,

[commentIN] VARCHAR (50) NULL,

[InPalette] INT NULL,

[OutPalette] INT NULL,

[befele] BIT NULL,

[szalitolevelCMR] VARCHAR (200) NULL,

[kártyaszám] VARCHAR (50) NULL,

[plombaszam] VARCHAR (50) NULL,

[kiszallitas] BIT NULL,

[commentOUT] VARCHAR (50) NULL,

[EgyediAzonositIn] VARCHAR (50) NULL,

[EgyediAzonositOut] VARCHAR (50) NULL,

CONSTRAINT [PK_MilkRunMovement] PRIMARY KEY

CLUSTERED ([ID] ASC)

4. táblázat - MilkRunMovement tábla

Szerepe:

Az állandó körforgásban lévő kamionok rögzítése, itt fontos, hogy nem csak

befelé jönnek a kamionok, hanem kifelé is mennek, ezért bizonyos mezők csak

távozás után lesznek kitöltve (4. tábla).

Fontosabb mezők:

[InDate]: érkezés dátuma

[OutDate]: távozás dátuma, mindig a legutolsó beérkezési dátumhoz

tárolom el.

Page 41: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

36

LSP (Logistik Service Partner) tábla

Modell

Nézet:

PRIMARY KEY Name Data Type Allow Nulls Default

ID int False

Name varchar(50) False

Email varchar(150) True

CC varchar(150) True

PostCode int True

City int True

Adress varchar(50) True

Country smallint True

Fax decimal(11,0) True

T-SQL: CREATE TABLE [dbo].[LSP] (

[ID] INT IDENTITY (1, 1) NOT NULL,

[Name] VARCHAR (50) NOT NULL,

[Email] VARCHAR (150) NULL,

[CC] VARCHAR (150) NULL,

[PostCode] INT NULL,

[City] INT NULL,

[Adress] VARCHAR (50) NULL,

[Country] SMALLINT NULL,

[Fax] DECIMAL (11) NULL,

CONSTRAINT [PK_LSP] PRIMARY KEY CLUSTERED ([ID] ASC,

[Name] ASC),

CONSTRAINT [FK_LSP_City] FOREIGN KEY ([City])

REFERENCES [dbo].[City] ([ID]),

CONSTRAINT [FK_LSP_country] FOREIGN KEY ([Country])

REFERENCES [dbo].[country] ([id]));

5. táblázat - LSP tábla

Szerepe:

A fuvarozok adatainak tárolása (5. tábla).

Fontosabb mezők:

[Email]: ezt a címet használják a fuvarszervezők a levél kiküldésénél.

Page 42: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

37

TPageNames tábla:

Modell

Nézet:

PRIMARY KEY Name Data Type Allow Nulls Default

True MenuId int False

PageName varchar(50) True

Name varchar(50) True

ParentmenuId int True

Title varchar(100) True

Description varchar(100) True

Url varchar(100) True

T-

SQL:

CREATE TABLE [dbo].[TPageNames] (

[MenuId] INT IDENTITY (1, 1) NOT NULL,

[PageName] VARCHAR (50) NULL,

[Name] VARCHAR (50) NULL,

[ParentmenuId] INT NULL,

[Title] VARCHAR (100) NULL,

[Description] VARCHAR (100) NULL,

[Url] VARCHAR (100) NULL,

CONSTRAINT [PK_TPageNames] PRIMARY KEY CLUSTERED

([MenuId] ASC));

6. táblázat - TPageNames tábla

Szerepe:

A dinamikus menühöz tárolja az adatokat (6. tábla).

Fontosabb mezők:

[menu_id]: egy egyedi inkrementális azonosító.

[ParentmenuId]: gyerek ParentmenuId szerepe, hogy a megfelelő

szülő alatt jelenjen meg a menü.

Az alkalmazás felépítése

A következő részben az alkalmazás egyes funkcióinak az implementációját

mutatom be forráskódok segítségével. Két nagyobb részre osztom, az első

részben az osztály diagramokat mutatom, be a második rész pedig a program

fejlesztői dokumentációját tartalmazza a program konkrét megvalósítását.

Page 43: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

38

Osztálydiagram

Az osztálydiagramok az alkalmazás strukturális szerkezetét mutatják be, hogy

milyen osztályok vannak és azok milyen adattagokból, metódusokból állnak. Az

osztályokat és a közöttük levő viszonyokat is ábrázolja (17. ábra).

17. ábra - Osztálydiagram

Page 44: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

39

Fontosabb osztályok:

Functions: Ez az osztály tartalmazza a fontosabb metódusokat, így a kódokat

újra tudtam használni. A metódusok paramétereinek a leírásához a <param>

tagoz használtam (18. ábra).

. 18. ábra - Functions osztály

BasePage: Az összes honlap ebből az osztályból származik. A másik fontos

pont a honlapok hozzáférése. Amennyiben felhasználó birtokába kerül egy

honlap elérhetősége, amihez nincs hozzáférése, a megnyitás előtt ellenőrzi

a program az adatbázisban, hogy rendelkezik e hozzáférési jogosultsággal,

ha nem, a szoftver hibaüzenet formájában tájékoztatja a felhasználót. Ezt

egy BasePage nevezetű osztállyal oldottam meg, ahol az ellenőrzés történik

(19. ábra).

19. ábra - BasePage osztály

Page 45: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

40

Base classes: Az összes osztály ebből az egy osztályból származik.

Segítséget nyújt más osztályok létrehozásához, amelyek újra

felhasználhatják az alap osztályból örökölt kódot. Fontosabb

metódusok:ToString (18. ábra).

20. ábra - Base osztály

Page 46: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

41

A szoftver fontosabb funkcióinak bemutatása

A következő fejezetben az általam készített fontosabb funkciók részleteit

taglalom. Ezen kívül a rendszer több más funkciót is tartalmaz.

Új felhasználó

A bejelentkezéshez az ASP.NET

saját beépített bejelentkező felületét

használtam (21. ábra). Belépés előtt

a felhasználót regisztrálni kell a

rendszerben. Ezt kétféleképpen lehet

megoldani, vagy az adminisztrátor

rögzíti manuálisan vagy a

felhasználó egy külön honlapra

navigál, ahol regisztrálhat saját felhasználói név és jelszó megadásával, ezután

kiválaszthatja, milyen szerepkörhöz kér hozzáférést.

A felhasználók beillesztésre egy tárolt eljárást használok [Insert_User] (22. ábra).

21. ábra - Bejelentkezés

22. ábra - A felhasználók beillesztésének folyamatábrája

Page 47: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

42

Az eljárás felhasználói adatok, (felhasználónév, a jelszó és az e-mail cím)

beillesztésére szolgál. Az eljárás ellenőrzi, hogy a felhasználó létezik vagy a

megadott felhasználónév alapján vagy a megadott e-mail cím alapján, ha létezik

akkor, a negatív 1 értékkel tér vissza ha érvényesek az adatok, akkor a rekord

beillesztésre kerül és az automatikusan generált UserId értéket adja vissza.

Ennek az eljárásnak köszönhetően megoldjuk az SQL injection

sérülékenység problémáját, így az olyan karakterek, amelynek az SQL nyelvben

speciális szerepe van (pl. aposztróf, idézőjel), az újonnan előállt SQL utasítás nem

fog mást csinálni csak azt, amire eredetileg használni akartam.

Sikeres regisztráció után egy aktiválási kód generálodig a Guid NewGuid

eljárás segítségivel, ami beillesztésre kerül a UserActivation táblába. Ezután egy

levelet küld a felhasználó e-mail címére, amely tartalmazza az aktiválási oldal URL-

jével generált aktiválási kódot. az URL QueryString-ben. A megadott felhasználónév

és e-mail cím érvényesítéséhez, felhasználónak rá kell kattintani az aktiválási linkre,

így az e-mail cím ellenőrzésre kerül. Ha az aktiváló kód érvényes a fiókja

aktiválódig, majd automatikusan a bejelentkező felületre irányítja át a rendszer.

Közben az adminisztrátor is kap egy levelet az új felhasználóról, majd az

adminisztrátor ellenőrzi, hogy helyesek-e az adatok és engedélyezi a kért

hozzáférést.

A hozzáférések kezelése

Több helyen is szükséges a felhasználó szintek megfelelő kezelése.

Az egyik ilyen elem a menü, ami az aktuális felhasználó jogosultságának

megfelelő menüelemeket jeleníti meg, amelyek segítségével az adott felhasználói

tevékenység maradéktalanul elvégezhető. A programban - mivel a statikus menü

erre a célra nem felel meg - úgy döntöttem, hogy olyan kódot alkalmazok, amely

dinamikusan jeleníti meg a menüt az oldalon és adatbázis alapú. ASP.NET beépített

menüjét használtam, mivel egyszerű a használata és könnyen módosítható. A

Master oldalon található a menü ezért minden betöltésnél ujjá építem.

A másik fontos pont a honlapok hozzáférése. Ha a felhasználó birtokába

kerül egy honlap elérhetősége, amihez nincs hozzáférése, a megnyitás előtt

ellenőrzi a program az adatbázisban, hogy rendelkezik e hozzáférési

jogosultsággal, ha nem, a szoftver hibaüzenet formájában tájékoztatja a

felhasználót. Ezt egy BasePage nevezetű osztállyal oldottam meg, ahol az

Page 48: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

43

ellenőrzés történik, az ellenőrizni kívánt honlapok ennek az osztálynak a

„gyermeke”. A BasePage pedig a System.Web.UI.Page „gyermeke” így a honlap a

továbbiakban is működik.

A harmadik fontos hely, ahol a felhasználók ellenőrzésre kerülnek az a

tesztelés. Az éles rendszerben, ha szükséges a tesztelés az éles adatbázist nem

lehet módosítani, ezért egy tükör adatbázist használok a teszteléshez. Speciális

felhasználók vannak a rendszerbe, akik csak a teszt adatbázishoz férnek hozzá.

Az adatbázis kapcsolódásokhoz mindig using parancsot használom így elérhető,

hogy az objektum használat után felszabaduljon.

A felhasználó nevet User.Identity.Name segítségével kapom vissza.

Levél készítés

A levélkészítés két fajtáját használom:

Automata levél: ez a legtöbb helyen használt levél, amit a rendszer

automatikusan generál és küld. Általában felhasználó létrehozásnál és hiba

kezelésnél használom. Hibakezelésnél a catch ágba kerül a levélküldés, ilyenkor a

levél tartalmazza hibapontos leírását, dátumot ezzel könnyebbé téve a hiba

kezelését.

Manuális levél: a fuvarszervezők generálják. Ez bonyolultabb, mivel a

felhasználók küldés előtt szeretnék látni a levelet - nem csak a weblapon - az általuk

használt Microsoft Outlook programban is, mint egy új levél.

A megvalósításhoz a fuvarszervezőknek a program kompatibilitását

szűkíteni kellett, mivel a levelező program kliens oldali, ezért csak is kliens oldalt

futó programba tudtam megírni (Mail.JS) a választás JavaScript lett. az Outlook-ot

egyedül az ActiveXObject("Outlook.Application") tudja kezelni, ez a kiegészítő csak

az Internet Explorerben található. Így a fuvarkészítésénél kötelező az IE használat.

A levél készítés részletesebben: Miután a felhasználók kitöltöttek az űrlapot és az

adatok lementése megtörtént, a levél több elemét is a C# generálja, ezek közül

fontosabb a levél teste, ami egy HTML szöveg, ehhez egy külön webes

szövegszerkesztőt használok. A levél másik fontos eleme egy kép, ami tartalmazza

a QR kódot. A QR kód a következőképpen épül fel: az eleje az „SGHU”, ami a fuvar

típusát mutatja, a következő számsor az ID, ezután pedig 4 karakteres

using (SqlConnection con = new SqlConnection(Functions.ConnectionString(User.Identity.Name)))

{…}

Page 49: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

44

véletlenszerűen generált 4 karaktert tartalmaz. Ez azért szükséges, hogy biztosan

csak a program által generált QR kód ellenőrzése után léphessen be a szállítmány

az üzem területére.

Abban az esetben, ha a fuvarozó rendkívüli esemény következtében a képet nem

tudja a beléptetés helyére eljuttatni, akkor az egyedi azonosító szám segítségével

a beléptetés végrehajtható, amit a kép alá beégetek. A kód előállítás a következő

program sort használom:

A végeredmény hasonló módon néz ki (23. ábra).

23. ábra - SGHU QR kód minta

A levél elemeit összefűzőm és egy szöveges változóban tárolom, amit tömb

paramétereként adok át a JavaScript függvényének. A következő féleképpen:

string QRCodeID = "SGHU" + orderid + RandomString(9 - orderid.Length);

string script = "window.onload = function(){call_me(" + parameters + ")};"; this.Page.ClientScript.RegisterStartupScript(GetType(), "call_me", script, true);

Page 50: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

45

Fájlok feltöltése

A fájlok feltöltéséhez az AjaxFileUpload vezérlőt használtam. Ezzel csak

tárolom a fájlokat egy mappában, miután a mentés megtörtént. A program a

feltöltött fájlokat átalakítja bináris adattá, majd ezt feltöltöm egy adatbázisba.

Itt az e.FileName, feltöltött fájl neve. A folderPath pedig felhasználóként eltérő

mappa szerveren a létrehozása a következő féle képen történik:

Itt a HostingEnvironment.MapPath parancsot használtam, mivel a teljes elérési

útvonalat nem ismertem, hogy mappák eltérők legyenek, ezért a felhasználó

neveket használtam.

A program indulásánál meg kell nézni, hogy a mappa létezik-e, ha igen törölni kell,

majd egy újat létrehozni. Abban az esetben, ha a törlés hibára fut, a mappát üressé

kell tenni, illetve ha a mappa nem létezett egy újat kell létrehozni.

public string folderPath = HostingEnvironment.MapPath("~//Files//" +

HttpContext.Current.User.Identity.Name.ToString().Trim().ToLower() + @"//");

string filePathoriginal = folderPath + e.FileName; AjaxFileUpload1.SaveAs(filePathoriginal);

if (Directory.Exists(folderPath)) { System.IO.Directory.CreateDirectory(folderPath); try {

System.IO.Directory.Delete(folderPath, true); System.IO.Directory.CreateDirectory(folderPath);

} catch (Exception) {

System.IO.DirectoryInfo di = new DirectoryInfo(folderPath); foreach (DirectoryInfo dir in di.GetDirectories()) {

dir.Delete(true); }

} } else { Directory.CreateDirectory(folderPath);

}

Page 51: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

46

Régió, nyelv beállítása

A riportálásra használt honlapoknak többnyelvűnek kell lenniük. Alapesetben

a honlap nyelve magyar, majd a felhasználó az előre beprogramozott nyelvek közül

kiválaszthatja a számára megfelelő nyelvet. A honlap ehhez a sütit használja, a

tároláshoz a sütik élettartalmát maximumra vettem. A nyelv módosításához pedig a

Global fájt használom. A statikus szöveg mezőket dinamikus formában kell

megjeleníteni mindig az adott nyelven.

A kliens oldali kódban ezt két fajta módon oldottam meg:

Amikor csak az XML fájlban eltárolt szövegre volt szükségünk akkor ezt a

kódot használtam:

Szövegkiegészítésnél a kód a következő:

A szerver oldalon így értem el a nyelvi fájlokat:

Amikor nyelvet váltok kultúrát is kell váltanom, itt figyelni kell pl.: hogy a dátum

formátum más lesz.

Validálás

A programom egyik alapvetően fontos része a validálás, a felhasználók által

megadott minden adat rögzítése előtt a program ellenőrzi a rögzítendő adatok adat

formátumának helyességét, amennyiben a program számára nem értelmezhető

adatot talál, a szoftver hibaüzenet formájában tájékoztatja a felhasználót a nem

megfelelő adatról. Egyéb esetben az adatok rögzítésre kerülnek.

A következő a RegularExpressionValidator az ASP.Net beépítette ellenőrző

része. Itt egy álltam írta REGEX kóddal ellenőrzi le a bevitt adatott, ha helyes, akkor

a rendszer engedi az eseményt lefutni pl.:

Üres mező vizsgálata:

Text="<%$Resources:Resource, all%>"

<%= Resources.Resource.mr + ":"%>

Resources.Resource.finishedproduct;

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"

ControlToValidate="TextBoxPotkocsiRendszam" ErrorMessage="A Vontató rendszáma nem

lehet üres" ValidationGroup="First">Nem lehet üres</asp:RequiredFieldValidator>

Page 52: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

47

A rendszám vizsgálata:

A paletta szám vizsgálata:

Riportok

A programom fő funkciója a riportok készítése, adatok megjelenítése. Néhol

elég csak egy szám megjelenítése, néhol bonyolult összetett táblákat kell

megjeleníteni és szűrni, majd ezeket importálni Excelben. Ezt a következő féle

képen oldottam meg:

Először ki kell választani az importálni kívánt GridView, miután ez meg történt

le kell tiltani a lapozást, mivel csak az aktuális oldal látható, majd a megfelelő név

és formátum beállítása következik.

Az adatok megjelenítésének a másik fontos része a szűrő, így csökkenteni lehet a

letöltött fájl méretét. Két fajta szűrő van:

A legegyszerűbb, amikor egy lehetőségre tudok rászűrni.

<asp:RegularExpressionValidator ID="RegularExpressionValidator16" runat="server"

ControlToValidate="TextBoxPotkocsiRendszam" ErrorMessage="A rendszám nem

megfelelő. Csak szöveg vagy szám lehet pl.: ABC123" ValidationExpression="^[a-zA-

Z0-9]+$" ValidationGroup="First" Height="16px" ></asp:RegularExpressionValidator>

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"

CssClass="hibaoszlop" ControlToValidate="TextBoxPaletta" ErrorMessage="Csak szám

lehet!" ValidationExpression="^[0-9]+$"></asp:RegularExpressionValidator>

protected void ImageButtonExcel_Click(object sender, ImageClickEventArgs e) {

GridView gr = null; string name = ""; if (GridView2.Visible == true) { gr = GridView2; name = "MilkRunMovement"; } if (GridViewMilk.Visible == true) { gr = GridViewMilk; name = "MilkRunMovement"; } if (GridViewPercent.Visible == true) { gr = GridViewPercent; name = "MilkRunMovement"; } if (gr != null) { Response.Clear(); Response.Buffer = true;

Response.AddHeader("content-disposition","attachment;filename="+ name + ".xlsx"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(sw); gr.AllowPaging = false; gr.RenderControl(hw); HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("windows-250"); string style = @"<style> .textmode { mso-number-format:\@; } </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); }

}

Page 53: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

48

A másik, pedig amikor lehetséges a többszörös szűrés is. Itt meg kell

jegyezni mire voltunk már rászűrve.

Megvalósítás kétféleképpen csináltam:

Az egyszerűbb, amikor az SQL kódot módosítom a szűrök segítségével.

A másik FilterExpression itt erre egy külön függvényt írtam:

Először megadjuk paraméterben, hogy melyik oszlopra akarunk szűrni, milyen

szűrést akarunk elvégezni és mi az értéke. A függvény megvizsgálja, hogy a

paraméterek érvényesek e, ezután megvizsgálja, hogy a táblára volt e szűrve, ha

igen, a meglévő szűrőket bővíti. A kódba sütiket használok mind szűrni kívánt

értékre tárolásra, mind a szűrő értékére.

A fenti kódot a következő féle képen tudjuk meghívni:

protected void SQLFilterExpr(string mezo, string op, string ertek) {

if (!String.IsNullOrEmpty(ertek) && ertek != "%%") {

if (String.IsNullOrEmpty(MILK.FilterExpression.ToString())) {

MILK.FilterExpression = mezo + " " + op + " '" + ertek + "'"; } else {

if (Session["filterMR"].ToString().Contains(mezo) && !String.IsNullOrEmpty(ertek)) { MILK.FilterExpression = Session["filter"].ToString(); } else { MILK.FilterExpression += " AND " + mezo + " " + op + " '" + ertek + "'"; }

} Session["filterMR"] = MILK.FilterExpression.ToString(); } else {

Session["filterMR"] = ""; MILK.FilterExpression = "";

} }

SQLFilterExpr("[LabelMRKör]", "=", Session["HeaderMRKör"].ToString());

Page 54: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

49

A riportok készítésnél fontos a vizualizáció a színezés ezt általában RowDataBound

végeztem el:

Interaktív weblap

A weblapok egyik nagy hibája, hogy ha esemény történik, a honlap újra

töltődik. A felhasználók szeretik úgy használni a honlapot, mint egy alkalmazást. Az

ASP.NET UpdatePanelt vezérlő lehetővé teszi, hogy úgy használjak a webes

alkalmazást, mint egy vastag kliens alkalmazást. Az UpdatePanel vezérlők

használatával frissítheti az oldal egyes részeit, nem pedig a teljes oldalt.

protected void GridViewMilk_RowDataBound(object sender, GridViewRowEventArgs e) {

if (e.Row.RowType == DataControlRowType.DataRow) {

Label LabelPercElteres = e.Row.FindControl("LabelPercElteres") as Label; if (!string.IsNullOrEmpty(LabelPercElteres.Text.ToString().Trim())) {

if (int.Parse(LabelPercElteres.Text.ToString().Trim()) > 90) {

e.Row.BackColor = System.Drawing.Color.FromName("Red"); }

} for (int i = 0; i < e.Row.Cells.Count; i++) {

e.Row.Cells[i].Attributes.Add("style", "white-space: nowrap;"); }

} }

<asp:UpdatePanel runat="server"> <ContentTemplate>

<div style="display: inline-block"> <asp:CheckBoxList ID="CheckBoxListTopMenu" runat="server" AutoPostBack="true" OnSelectedIndexChanged="CheckBoxListUsers_SelectedIndexChanged" DataSourceID="SqlDataSourceMenuTop" DataTextField="Name" DataValueField="MenuId"></asp:CheckBoxList>

</div> <div style="display: inline-block">

<asp:CheckBoxList ID="CheckBoxListMenu" runat="server" CssClass="oval" BorderStyle="Solid" BorderColor="Red" EnableTheming="True"></asp:CheckBoxList>

</div> </ContentTemplate>

</asp:UpdatePanel>

Page 55: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

50

Szoftvertesztelés

A fejezet összefoglalja a programomban alkalmazott különböző tesztelési

módszereket, folyamatokat. A fejezet két nagyobb tesztelési technikai részre

bontható, a statikus - és a dinamikus teszt részekre. [11]

Statikus teszt

Statikus tesztelési technikák a szoftver forráskódját vizsgálják fordítási időben.

Ide tartozik a dokumentáció felülvizsgálata is.

Felülvizsgálat

A kód, illetve a dokumentáció, vagy ezek együttes manuális átnézését jelenti.

A dokumentáció tesztelése az egyik legfontosabb szakasz, itt értjük meg és

definiáljuk, hogy a rendszernek milyen szolgáltatásokat kell biztosítania. Egyáltalán

megéri-e a programot lefejleszteni. Kritikus szakasz: az itt vétett hibák nagy

problémákhoz vezethetnek a rendszertervezés későbbi szakaszában és az

implementációban. A programom felhasználói követelményét több, a területen

jártas szakember elemezte, nézte át. A potenciális felhasználókkal folyamatosan

kommunikáltam.

Az elkészült nagyobb modulokat, pl. osztályokat, a vezető fejlesztő, valamint

egy tapasztalt programozó ellenőrizte.

Statikus elemzés

A statikus elemzés, ahol szoftverrel nézetjük át automatikusan a forráskódot.

A felülvizsgálat fehérdobozos teszt, mivel szükséges hozzá a forráskód. A munkám

során a Visual Studio beépített elemzőjét használtam (24. ábra).

24. ábra - Error List

A fordító kétféle anomáliát mutat: hibák (Errors) és figyelmeztetések (Warnings).

Page 56: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

51

A hiba (Errors) olyan állapot, amely megakadályozza a végleges program

létrehozását. A végrehajtható fájlok nem érhetők el, amíg az összes hibát nem

sikerült kijavítani. A leggyakoribb hibák pl.:

Elírjuk a változók nevét

o Oka: Emberi tévesztés a c# kisbetű-nagybetű érzékeny (case sensitivity)

o Tünetek:

Piros aláhúzás:

Ha a View / Error List menüponttal megjelenítjük az Error List

ablakot:

25. ábra - CS0103 hiba

A kódkiegészítés nem ajánlja fel a változó nevét és az utána leütött

pontra sem jelenik meg metódus lista.

o Elkerülhető, ha használjuk a kódkiegészítőt.

Le nem zárt blokkok

o Oka: A C alapú nyelvek blokkos felépítésűek, a blokkokat a { és } jelek

határolják.

o Tünetek:

Piros aláhúzás:

Page 57: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

52

Megjelenik az Error List ablakban:

26. ábra - CS1513 hiba

o Elkerülhető függőleges segédvonalak segítségével, így átláthatóbb lesz

a kód.

A figyelmeztetések (Warnings) olyan üzenetek, amelyeket a fordító a

"különleges" helyzetekről mutat be, amelyekben észlelt egy anomáliát, de

feltételezhető, hogy a fordítás folytatódik. pl.:

Egy változónak értéket adunk, de ezután nem használjuk:

o Kód:

o Hibaüzenet:

27. ábra - CS0219 hiba

Amikor egy változó deklarálva van, de nem használjuk:

o Kód:

o Hibaüzenet:

28. ábra - CS0168 hiba

Page 58: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

53

Dinamikus tesztelés

Az előző fejezetben áttekintettük a statikus tesztelési technikákat. Ezek a

módszerek nem igénylik a tesztelendő rendszer futtatását, sőt bizonyos esetekben

még a forráskód meglétét sem.

A dinamikus tesztelési technikák viszont a tesztelendő rendszer futtatását igénylik.

Ebben a fejezetben a dinamikus tesztek tervezési kérdéseivel foglalkozok.

A dinamikus tesztelési technika elsősorban komponens teszt, azon belül is főleg az

unit-teszt (egységteszt) fázis eszköze. [11]

Egységtesztek

Egy szoftvernél fontos szerepet kap a végeredmény tesztelése, hogy a

megrendelőt ne érje csalódás. Az egységtesztek segítségével metódusokat lehet

tesztelni. A tesztek segítségével olyan hibákra is fény derülhet, melyekre nem is

számítottunk. Letesztelhetjük azt is, hogy a metódus tényleg úgy működik-e, amire

tervezve lett. A tesztek a fejlesztés során is nagy segítséget nyújtanak, mivel ha

változik a metódus felépítése, akkor egy gombnyomással tudomást vehetünk arról,

hogy a megadott metódusok megfelelő módon működnek. A teszteléshez a

Microsoft.VisualStudio.TestTools.UnitTesting névteret használtam.pl.:

Felhasználói felület tesztelése

Az UI tesztelés az egyik legegyszerűbb módszer, a felhasználói felület

tesztelése automatizáltan; magában foglalja azt, hogy ha bizonyos területekre, vagy

[TestMethod] public FunctionTest() {

Functions testFunction = new Functions(); Assert.IsNotNull(testFunction); Assert.IsInstanceOfType(testFunction, typeof(Functions));

} [TestMethod] public void Eql_Obj_Test_Null() {

Functions target = new Functions(); object inobject = null; bool expected = false; bool actual = target.Equals(inobject); Assert.AreEqual(expected, actual);

} [TestMethod] public void Eql_Test_Null() {

string expectedResult = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|DB\Database.mdf;Integrated Security=True"; string actualResult = Functions.ConnectionString("Admin"); Assert.AreEqual<string>(expectedResult, actualResult);

}

Page 59: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

54

vezérlőkre kattintunk az adott oldalon, akkor az, hogy fog kinézni, vagy mi lesz az

értéke, a kompatibilitás megfelelő-e; illetve a felhasználónak egyértelmű-e, mit hol

talál és az jól használható-e. [12]

A szakdolgozatomban a bejelentkezés tesztelését

mutatom be. A módosításokhoz több teszt készült. A

teszteléshez Selenium eszközcsomagot használtam.

A Selenium, Black Box jellegű integrációs felületi

tesztek készítésére ad lehetőséget, ami annyit jelent,

hogy az alkalmazás egészét teszteljük anélkül, hogy

ismernénk annak belső működését. A tesztesetek

felvétele a Selenium IDE Firefox plugin segítségével történik, amely automatikusan

rögzíti a böngészőben végrehajtott műveleteket. A Selenium parancsokat

tartalmazó szkript többek között java forrásként is exportálható, amit némi

refaktorálás és adatforrás bekötés után, eltérő környezettekben is használható

tesztekké alakíthatunk! A tesztet 3 böngészőn végeztem el itt látható a különböző

eredmények. Az oldalsósáv alapján, az Edge végrehajtása gyorsabb, mint a Firefox

vagy Chrome:

29. ábra - Test Explorer

Page 60: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

55

A teszthez tartozó kód:

Vizsgálati eset létrehozása az Edge Browser számára:

Meglévő rendszerekkel való tesztelés

Az egyik legegyszerűbb tesztelési mód, ha a meglévő rendszerrel együtt

futtatjuk az új rendszert. Ha mindkét rendszer ugyanazt az eredményt adja, akkor

a tesztelés valószínűleg nem talált hibát.

o Hátránya: Erőforrás igényes, egyszerre két rendszer fut.

o Előnye: A rendszer felhasználói tesztelik a programot valós adatokkal

feltöltve.

[TestClass] public class OGRRUsingEdgeBrowser { private WebDriverWait wait; private string url = "http://mc0vm011.sg.lan/www/SGHU_LOG-T/Login.aspx"; private string edgeDriverLocation = @"C:\SeleniumEdgeDriver"; [TestMethod] public void OGRR_Using_EdgeBrowser() { using (EdgeDriver driver = new EdgeDriver(edgeDriverLocation)) { try { driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl(url); driver.FindElement(By.Id("ContentPlaceHolder1_Login1_UserName")).SendKeys("Admin"); driver.FindElement(By.Id("ContentPlaceHolder1_Login1_Password")).SendKeys("789_321fyk7b"); driver.FindElement(By.Id("ContentPlaceHolder1_Login1_LoginButton")).Click(); wait = new WebDriverWait(driver, new System.TimeSpan(0, 0, 5)); driver.Close(); driver.Dispose(); } catch (System.Exception) { ITakesScreenshot screenshotDriver = driver as ITakesScreenshot; Screenshot screenshot = screenshotDriver.GetScreenshot(); screenshot.SaveAsFile(Environment.CurrentDirectory, ScreenshotImageFormat.Png); throw; } } } }

Page 61: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

56

Fejlesztési lehetőségek

A szoftver jelenlegi verziója több szempontból is tovább fejleszthető.

A program egy belső rendszeren lett fejlesztve, így nem merült fel igényként,

hogy cégen kívülről is hozzáférjenek. Ha ez megvalósulna a beszállítónak

lehetősége lenne, egy korlátozott felületen saját magának újra nyomtani a QR-kód

azonosítót vagy a beérkezési ponton egy mobileszköz segítségével megjeleníteni a

megfelelő azonosítót. Ehhez a programot egy mobil felületre kell optimizálni. Az

összes felületen lehetségessé kell tenni a nyelv választást. Az „admin” felületen egy

új funkció létrehozása szükséges, amely lehetővé teszi az új nyelvek felvételét vagy

a már meglévő nyelvek szókészletének módosítását.

Az állandó fuvaroknál a QR-kód azonosító helyett egy RTLS vagy RFID

technológián alapuló azonosítást is lehetne használni, ami gyorsíthatja és

egyszerűsítheti a beléptetési folyamatot. Ezzel a módszerrel a rámpán töltött idő is

mérhetővé válik, pontosítva a kihasználtság mutatót. Ezek a fejlesztések lehetővé

teszik az adatszolgáltatást az automata könyvelés számára, amellyel jelentős

költéség illetve erőforrás megtakarítás eredményezhető.

A fejlesztés következő lépéseként a raktárban egy külön felületen

megjeleníthető vizuálisan a következő gépjármű várható beérkezés ideje, illetve a

szállítmány részletes adatai (anyagnév, anyagkód, mennyiség, tárhely típusa,

veszélyességi jelző). A raktár a szállítmány beérkezése előtt kellőképpen fel tud,

készülni az áru fogadására.

A programban használt riportálási funkcióik a későbbiek folyamán

automatizálásra kerülnek (napi, heti, havi riport). A generálás után az előre

meghatározott címzett listára a riportok kiküldésre kerülnek.

A további fejlesztések eredményeként a program összeköthető az EKÁER

(Elektronikus Közúti Áruforgalom Ellenőrző Rendszer) rendszerrel, ezáltal az

EKÁER számok nyomon követése, ellenőrzése is megvalósulhat.

Page 62: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

57

Összegzés

Szakdolgozatom témája az Online Gépjármű Regisztrációs Rendszer

bevezetése volt Starters E-Components Generators Automotive Hungary Kft -nél.

Dolgozatom elején bemutattam a céget, ahol 2012 óta dolgozom.

Ismertettem a feladatot, kitűzött célokat, illetve az ehhez kapcsolódó

követelményeket, elvárásokat.

A következő pontokban összehasonlítottam a különböző fejlesztési

eljárásokat irodalomkutatásom alatt szerzett ismeretek alapján.

Ezt követően részletesen ismertettem az általam elkészített programot,

fejlesztéseket, ezen belül részletesem kitértem pl. különböző felhasználókra és a

program lehetséges megvalósítására.

Az elkészített alkalmazás a tesztelés során a megfelelő eredményeket kapta,

megfelel a feladat specifikációban meghatározott alkalmazásnak. A szoftver

működésével kapcsolatos tapasztalok az alábbiakban összegezhetők. A szoftver

funkcionális működése, kialakítása, a különböző jogosultságokkal felruházott

felhasználói szerepkörök létrehozása megfelel az előzetes elképzeléseknek.

Biztosított az egységes és megfelelően ellenőrzött adatkezelés. Az egyes

felhasználói tevékenységekhez hozzárendelt adatkezelési és funkcionális

szabályozás lehetővé teszi, hogy a felhasználók csak a jogosultságuknak megfelelő

adatokhoz férjenek hozzá (mind olvasás, mind írás), illetve csak a jogosultságuknak

megfelelő tevékenységeket végezhessék. A napi feladatok végrehajtása során a

szoftver várhatóan megfelelő informatikai támogatást nyújt.

Egy teljesen önállóan működő programot sikerült elkészítenem, amelyet

jelenleg is eredményesen használnak.

Page 63: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

58

Summary

I chose Starters E-Components Generators Automotive Hungary Kft’s launch of

its Online Vehicle Registration System as the topic for my thesis.

I started off by introducing the company, where I’ve worked since 2013. I

proceed by describing the task at hand together with all the goals, and requirements.

In the following parts I compared various development methods based on

criteria gleaned from researching available literature.

I then proceeded to review and introduce my proposed program and

improvements, paying particular attention to different users and possible

implementation.

The application produced satisfactory results during the testing phase, satisfying

all specified parameters. Findings regarding the software are summarised below.

The software’s functionality, structure and creation of user roles with different levels

of authority satisfies all previously set parameters. A uniform and adequately

controlled system for handling data is in place. Data handling protocols assigned

individually to particular user actions makes it possible that users can only access

data and perform actions corresponding to their levels of authorization. The software

is expected to provide adequate support in carrying out day to day tasks.

I managed to make a wholly self-sufficient piece of program that is

successfully used even today.

Page 64: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

59

Hivatkozások

[1] Bosch. [Online]. Available: https://www.bosch.hu/.

[2] SEGA, „seg-automotive,” [Online]. Available: http://www.seg-automotive.hu/.

[3] Microsoft, „Choosing an Application Type,” 1 Október 2009. [Online]. Available:

https://msdn.microsoft.com/en-us/library/ee658104.aspx.

[4] N. D. G. Judit, Nyékyné Dr. Gaizler Judit (szerk.) - Java 2 útikalauz

programozóknak 5.0 I-II, Budapest: ELTE TTK Hallgatói Alapítvány, 2009.

[5] Pixelstech, „What are advantages and disadvantages of PHP?,” 15 6 2012.

[Online]. Available: http://www.pixelstech.net/topic/25-What-are-advantages-

and-disadvantages-of-PHP.

[6] „eliteinfoworld,” [Online]. Available: https://www.eliteinfoworld.com/blog/top-

10-benefits-using-php-web-development/.

[7] R. István, C# programozás lépésről lépésre, Budapest: Jedlik Oktatási Stúdió

Kft., 2012.

[8] S. Steve, „SQL Server Management Studio (SSMS),” 02 Február 2017.

[Online]. Available: https://docs.microsoft.com/en-us/sql/ssms/sql-server-

management-studio-ssms?view=sql-server-2017.

[9] Wikipedia, „Microsoft Visual Studio,” 3 Május 2018. [Online]. Available:

https://en.wikipedia.org/wiki/Microsoft_Visual_Studio.

[10] N. Bradley, Az XML-kézikönyv, Szak Kiadó, 2000.

[11] F. Lajos, D. K. László, K. Zoltán és D. K. Gábor, Szoftvertesztelés, 2011.

[12] E. S. Zsanett, „versenycica,” 05 08 2012. [Online]. Available:

https://versenycica.wordpress.com/2012/08/05/ui-tesztek-irasa/.

[13] D. S. József és K. Katalin, Az UML nyelv használata, 2006.

[14] w3schools, „SQL Tutorial,” [Online]. Available:

https://www.w3schools.com/sql/.

Page 65: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

60

Ábrajegyzék

1. ábra - Telephelyek ............................................................................................ 4

2. ábra - Adminisztrátor diagramja ................................................................... 17

3. ábra - Adminisztrátor felület .......................................................................... 18

4. ábra - Levelezési beállítások ......................................................................... 18

5. ábra - Adatbázis beállítás .............................................................................. 18

6. ábra - A fuvarszervező diagramja ................................................................. 19

7. ábra - A szállítás megrendelőlapja ................................................................ 20

8. ábra - Irodai asszisztens diagramja .............................................................. 22

9. ábra - Riport készítése ................................................................................... 23

10. ábra - Gépjárműfogadó diagramja .............................................................. 24

11. ábra - Azonosító lap ..................................................................................... 25

12. ábra - Portai felhasználói felület ................................................................. 25

13. ábra - Üzenetablak ........................................................................................ 26

14. ábra - LSP diagram ....................................................................................... 27

15. ábra - PageNames diagram ......................................................................... 28

16. ábra - SGHU (Starter Generators Hungary) diagramja .............................. 29

17. ábra - Osztálydiagram .................................................................................. 38

18. ábra - Functions osztály .............................................................................. 39

19. ábra - BasePage osztály .............................................................................. 39

20. ábra - Base osztály ....................................................................................... 40

21. ábra - Bejelentkezés ..................................................................................... 41

22. ábra - A felhasználók beillesztésének folyamatábrája .............................. 41

23. ábra - SGHU QR kód minta .......................................................................... 44

24. ábra - Error List ............................................................................................ 50

25. ábra - CS0103 hiba ....................................................................................... 51

26. ábra - CS1513 hiba ....................................................................................... 52

27. ábra - CS0219 hiba ....................................................................................... 52

28. ábra - CS0168 hiba ....................................................................................... 52

29. ábra - Test Explorer ...................................................................................... 54

Page 66: Online Gépjármű Regisztrációs Rendszer

Online Gépjármű Regisztrációs Rendszer

61

Táblázatok jegyzéke

1. táblázat - USERS tábla ................................................................................... 30

2. táblázat - SGHUorder tábla ............................................................................ 33

3. táblázat - PDFiles tábla .................................................................................. 34

4. táblázat - MilkRunMovement tábla ................................................................ 35

5. táblázat - LSP tábla ........................................................................................ 36

6. táblázat - TPageNames tábla ......................................................................... 37