Miskolci Egyetem
GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR
Szakdolgozat Ötletmenedzser Készítette: Bénó Tamás Mérnök-informatikus hallgató Tervezésvezető: Szűcs Miklós
2014
oldal 1
Tartalomjegyzék 1. Bevezetés ............................................................................................................................................. 4 2. Coloplast Hungary Kft. ....................................................................................................................... 5 3.Microsoft Silverlight ............................................................................................................................ 7 4. Vállalat irányítási szoftverek ............................................................................................................... 8 5. Lean ................................................................................................................................................... 10 6. Megbízói specifikáció ....................................................................................................................... 11 6.1 Platform kívánalmak ....................................................................................................................... 12 7.Adatbázis tervezés .............................................................................................................................. 13 7.1 Ötletek tábla leírása ......................................................................................................................... 14 7.2 Dolgozók tábla leírása ..................................................................................................................... 16 7.3 Adatbázis séma létrehozásának összegzése: ................................................................................... 17 8 Szoftver tervezése............................................................................................................................... 18 8.1 Kapcsolat teremtés a kliens és szerver között ................................................................................. 18 8.2.1 Adminisztrátori felület kliens oldali programozása...................................................................... 21 8.2.2 Adminisztrátori felület ................................................................................................................. 21 8.2.2.1 Nyomógombok .......................................................................................................................... 23 8.2.2.2 A Dolgozói adatok kezelése ...................................................................................................... 26 8.2.2.3 Adminisztrátori felület összegzése ............................................................................................ 27 8.2.3 Felhasználói Grafikus megjelenítő felület .................................................................................... 27 8.2.3.1 Ötlet,Ötlet,Ötlet ......................................................................................................................... 28 8.2.3.2 Területek .................................................................................................................................... 32 8.2.3.3 A Hónap ötletei ......................................................................................................................... 32 9. Tesztelés
........................................................................................................................................ 35
10. Felhasználói leírás ........................................................................................................................... 37 10.1 Telepítési instrukció ...................................................................................................................... 37 10.2.1 Adminisztrátori felület leírása .................................................................................................... 37 10.2.2 Új ötlet felvitele .......................................................................................................................... 37 10.2.3 Dolgozói adatok ......................................................................................................................... 39 10.3.1 Felhasználói felület..................................................................................................................... 39 10.3.2 Dolgozói ötletek elérése ............................................................................................................. 40 10.3.3 Beadott ötlet leírása .................................................................................................................... 42 10.3.4 A hónap ötlete ............................................................................................................................ 43 oldal 2
11. Tapasztalatok ................................................................................................................................... 45 12. Összegzés ........................................................................................................................................ 46 13. Summary ........................................................................................................................................ 47 14. Felhasznált szoftverek és kiegészítők .............................................................................................. 48 15. Irodalomjegyzék .............................................................................................................................. 48 16. Mellékletek ..................................................................................................................................... 48
oldal 3
1. Bevezetés A szakdolgozatomat a Coloplast Hungary Kft Nyírbátori gyárában végzet munkám alatt készítettem el. A cégnek szüksége volt egy olyan szoftverre ami képes átvenni az eddig papíron működő "Jó ötletek" rendszert. Ez egy úgy nevezett Lean szemlélethez kapcsolódó Kaizen elv megvalósítása. A szakdolgozatom ezért ennek szoftvernek az implementálásáról szól. Amiben részletesen leírom a vevő elvárásait, valamint az új technológiák megismerését és használatát. A vállalathoz még tavaly ősszel jelentkeztem dolgozni, mint diák. A feltétel folyamat ütemezés és gyártási alapismeretek voltak, valamint a műszaki tanulmányok plusz előnyt jelentettek. A dolgozatomban egy program felületből álló szoftvert mutatok be. A két külön álló rész mint funkcióban mint designban nagyban eltér egymástól. Az első rész az adminisztrálásért felelős. Ahol a létrehozott adatbázist és abban tárolt információkat lesz lehetőségünk módosítani. A másik felület az adatbázisban tárolt információk megjelenítésért felelős. Annak érdekében, hogy a rendszer amit eddig használtak kibővülhessen egy új funkcióval ami nem más mint a dolgozók felé történő információ visszajelzés. Ugyanis az volt a probléma, hogy a dolgozók aki benyújtották az ötleteket nem kaptak semmi féle visszajelzést, hogy mi történt azzal. Ezért igény merült fel egy digitális felületre ami eddig még nem létezett. Amikor megkérdeztek, hogy képes vagyok-e egy ilyen szoftvert elkészíteni, valamint körvonalakban vázolták, hogy mit várnak majd el az elkészült szoftvertől. Elvállaltam azt és részletesebb egyeztetés után elkezdtem megtervezni az adatbázist, majd pedig a készítendő szoftvert. A szakdolgozatomban az előzetes információk összegyűjtése és részletezése után. Minden apró részletre kitérő program bemutatás látható először fejlesztői szempontból megvizsgálva. Majd pedig felhasználó szemszögéből mutatom be a szoftvert.
oldal 4
2. Coloplast Hungary Kft. A Coloplast Hungary, egy nemzetközi vállalat akik prémium minőségű gyógyászati segédeszközöket gyártanak a világ több országában. A világ minden pontján forgalmazzák termékeiket. A céget 1957-ben Elise Sørensen alapította meg. Az első terméke egy sztóma zsák volt a testvére számára aki vastagbélrákban szenvedett. Ezzel az eszközzel akarta megkönnyíteni a minden napjait. Így a vállalat fő célkitűzése is kialakult a kezdeti években.
"Szeretnénk, ha cégünk neve kiváló minõségű termékekre és szolgáltatásokra nyújtana garanciát az egész világon. Vásárlóink elsõsorban az egészségügyben dolgozó szakemberek és felhasználók. Ezért legfontosabb feladatunknak a fogyatékossággal élõ emberek életminõségének javítását tekintjük."/ /Coloplast küldetése és értékrendje[2] A Coloplast gyógyászati segédeszközöket gyárt és forgalmaz olyan emberek számára, akiknek életminősége ezen termékektől függ: •
sztómazsákok és kiegészítők olyan emberek számára, akiknek széklet- vagy vizeletelvezető rendszerét a hasfalon keresztül kivezették
•
vizeletgyűjtő zsákokat, vizeletkondomokat, katétereket és nedvszívó párnákat olyan emberek számára, akiknek problémájuk van a húgyhólyagjuk feletti kontrollal
•
kötszereket krónikus sebekre
•
bőrvédő termékeket megelőzésre és kezelésre
•
mellprotéziseket és speciális ruházatot olyan hölgyek számára, akik mellműtéten estek át.
Kutatás és fejlesztés
A szakképzett ápolók és végfelhasználók tanácsai és ötletei lehetővé teszik, hogy folyamatosan fejleszthessék termékeiket és új termékeket fejlesszenek ki melyek megfelelnek az új gyógykezelések támasztotta igényeknek. A műanyaggyártás technológiája nagyon gyorsan fejlődik, így a cégnek nagy szüksége van a legújabb ismeretekkel rendelkező dolgozókra.
oldal 5
1995 – ben megalakult a Coloplast Kutatóközpont, független centrumként, melynek fő feladata
új
anyagok
és
technológiák
kutatása.
A Coloplast kutatásainak legjelentősebb területe a bőr-ragasztók és azok kölcsönhatás – mechanizmusa a bőrrel. A kutatást egyetemek, oktatási intézmények, kórházak és egyéb vállalatok bevonásával irányítják. A Coloplast Kutatóközponton keresztül dán és nemzetközi kutatóhálózatokat
hoztak
létre.
A termékek határidőre történő szállítása A Coloplast vevői fogyatékossággal kénytelenek élni, így szükséges, hogy akkor jussanak a termékekhez, amikor rászorulnak. Termékeiket különlegesen tervezett, magas fokú automatizáltságú, számítógép vezérlésű gépek gyártják. A minőség és a gyártási folyamat EN46001
és
ISO9000
szerint
akkreditált.
A környezet tisztelete A Coloplast cég működésének következményeként a környezetet az általunk importált polimer nyersanyagok gyártása során érik káros hatások. A gyártás során keletkező szilárd anyag hulladék relatíve magas, és folyamatosan dolgoznak ezen hulladékmennyiség csökkentésén.
A termékek gyártásához, csomagolásához és szállításához, valamint használat utáni megsemmisítésükhöz használt energia és víz szintén hatással van a környezetre. Tiszteletben tartják
a
környezetet
alapanyag
választásukkal,
technológiánkkal,
anyag-
és
energiafelhasználásuk minimalizálásával csakúgy, mint a károsanyag-kibocsátás és a gyártási folyamatból következő hulladék mennyiségének csökkentésével. Beszállítóiknak szigorú környezetvédelmi alapelvek szerint kell működniük és javasolják vásárlóinak és felhasználóinak, hogy a termékeket és csomagolásukat hogyan kezeljék hulladékként.
A Coloplast 1997
óta
rendelkezik
BS7750
és
ISO14001
szabványok
szerinti
környezetvédelmi akkreditációval. 1998-ban bevezettük a „Zöld” könyvelést.[3]
oldal 6
3.Microsoft Silverlight A Silverlight web alkalmazások és mobilalkalmazások készítésére használható szoftverfejlesztési keretrendszer. A fejlesztése több mint két évig tartott és a végén megszületető platformot a Microsoft az Adobe által fejlesztett Flash termék versenytársának szánta. Az általam használt Silverlight 5-ös verziót 2011 december 9-én jelentette meg a vállalat. Ami rengeteg fejlesztést és webes megjelenítést megkönnyítő újítást tartalmazott. A •
legjelentősebb
újítások
és
javítások
az
előző
verziókkal
szemben:
Videók dekódolásának lehetővé tették, hogy az alkalmazás használhassa a videokártyát
•
3D-s megjelenítés tervezése, erre segéd szoftverként használható a Microsoft Expression Blend
•
A létrehozott alkalmazások erőforrás igénye és tervezése sokkal jobban menedzselhető
•
Megkapta a 64-bites rendszerekhez szükséges támogatást és valódi 64-bites alkalmazásokat lehet vele készíteni
•
Lehetőség van böngészőn kívül is futatni a webes felületre tervezett alkalmazást.
•
Fejlett grafikon rajzolás és érték adás ami dinamikusan újra generálható a beviteli adatok alapján. Ez a funkció nagyon fontos a vállalati életben.(később szoftverem fejlesztésénél élni fogok ezzel a funkcióval.
•
További testreszabhatóságokat biztosít a Design-osabb felületek létrehozásához. A fejlesztő környezet és XAML szintaktika hamar megérthető és értelmezhető.
Továbbá rengeteg leírás található a hivatalos fejlesztőket támogató oldalon, valamint egyéb szoftverfejlesztők által gyakran látogatott fórumokon. Az alapokat könnyedén elsajátíthatjuk lépésről lépésre a bemutató videókból illetve leírásokból. Felülete testre szabható igény szerint, és könnyedén szerkeszthető grafikus felületen keresztül. Valamint előzetes tervezés után kód alapján módosítható, amiket a grafikus felület egyből végre is hajt így hiba esetén rögtön értesülünk azokról.[4]
oldal 7
4. Vállalat irányítási szoftverek
A fejlesztés megkezdése előtt körül néztem a piacon található vállalat irányítási szoftverek között. A megtekintett szoftverkínálat közül négyet részletesebben is bemutatok.
Dimension ügyviteli rendszer
(30. ábra) A Dimension által nyújtott szolgáltatások
Látható, hogy általam készítendő szoftvert nem kínálnak. Természetesen igények ismertetése után valószínűleg egyedi árképzéssel elkészítenék, de ezért kértek fel erre a feladatra engem.[5](30. ábra)
oldal 8
Revolution Software A cég rendelkezik rengeteg használható és nagyszerű vállalatirányítási szoftverrel. Ezek közül az egyik termékük már majdnem használható lenne a problémám megoldására. Viszont ez a szoftver csak az információ rendezet tárolását tenné lehetővé megfelelő megjelenítő felület nélkül, ami elengedhetetlen számomra.[6] Symbol Tech A cég alapvető vállaltirányító szoftver rendszereket kínál. Számlázó program Készletnyilvántartó program Ezeket a szoftvereket egy termék család keretében szerezhetjük be.[7] A vizsgált cégek termékei nem kínálnak olyan szoftvert vagy lehetőséget amivel megoldható lenne a számomra vázolt igények kielégítése. A legnagyobb hírű és legtöbb rétű vállalat az SAP által kínált szoftverek között nincs számomra megfelelő, viszont híresek arról, hogy az ügyfeleinek elég kérnie ők megvalósítják azt. Továbbá a Coloplast számára fejleszthető és saját szoftverre volt szüksége viszonylag rövid időn belül. Az első igények részletes egyeztetései idén január végén történtek meg, ami után megkezdtem a fejlesztést.
oldal 9
5. Lean A Lean egy vállalatszervezési, vállalatirányítási rendszer, amelynek célja, hogy a vállalat minél gazdaságosabban állítsa elő a termékeit, szolgáltatásait. A lean vállalat a tevékenységeit elsősorban az alapján alakítja ki, hogy a vevő számára mi az érték. Ami a vevő számára nem teremt értéket, amiért a vevő nem fizet, azt a lean veszteségnek tekinti, és a munkafolyamatok
hatékonyságát
ezeknek
a
veszteségeknek
a
megelőzésével,
megszüntetésével vagy minimálisra csökkentésével növeli.[1] A lean egyik legfontosabb eleme az "ember tisztelete" ami azt jelenti, hogy a vállalat számára fontosak a munkatársai hiszen ők képezik a vállalat legfőbb értékét. Továbbá tiszteletben tartja ötleteiket, véleményüket, gondolataikat. A lean szervezetek a bennük dolgozó emberek folyamatos fejlesztésével működnek. A veszteségek elkerülésére ők keresik a lehetőségeket a kaizen segítségével, ők működtetik hatékonyan a folyamatokat, vevőorientált mérőszámokat és mérési módszereket kialakítva. Ez a szemlélet mód ihlette meg a "Good Idea" rendszer alapjait, ami alapján létrehozták a papír alapon működő változatát. Mivel olyan sikeres volt, hogy körül belül 2 év alatt majd 1000 db ötletet kellett feldolgoznia a rendszernek igény született egy digitális fejlesztésre. Ezek az ötletek százmilliókban mérhető megtakarítást vagy esetlegesen plusz bevételt jelentett a gyár számára mindösszesen 2 év leforgása alatt.
oldal 10
6. Megbízói specifikáció Az papíron működő ötletrendszer sikere szülte az igényt egy szoftveresen működő rendszer létrehozására. Első lépésnek az a cél lett kitűzve, hogy a szoftver tárolja az ötleteket digitálisan, valamint divatos kinézetbe burkolva visszajelzést nyújtson a dolgozók számára a beadott ötleteikkel kapcsolatosan. Ezt egy érintőképernyős Kioszkon képzelték el amin Microsoft-s termékek futnak, majd. A szoftvert két részre bontanám, mert igény volt egy Adminisztrátori felületre. Ezen a felületen kívánták kezelni az rögzített ötleteket: újakat felvinni, régieket módosítani(döntési folyamat eredményével), esetlegesen kiválasztott vagy rosszul regisztrált ötletet törölni. Valamint erről a felületről akarták kezelni a dolgozói nyilvántartást is amiben a dolgozó neve,elsődleges munkaterülete valamint egy egyedi jelszót tartalmaz. Itt mindösszesen a dolgozói jelszó módosítására volt igény ugyanis az adatbázist havi szinten frissítik egy a HR(Human Resource) iroda által kezelt adatok alapján. Ez által két részre bontottam a tervezendő szoftvert így megszületett az adminisztrátori felület ami minden adat manipulálással foglalkozik és mindösszesen egy személy érheti el ami alapján korlátozva van a hozzáférés. Ugyanis még mindig papíron fog történni az ötletek benyújtása, de utána minden folyamat már digitálisan fog folytatódni. Ennek az oka az, hogy így a rendszerbe nem kerülnek értelmetlen ötletek és nem fognak a dolgozók azzal szórakozni, hogy értelmezhetetlen ötletekkel töltsék fel az adatbázist. A vevő erről az adminisztrátori felületről kezelne minden adatbázis szintű adatmanipulálást. A szoftver másik része a felhasználók, jelen esetben a vállalat dolgozói akik minden nap használhatják és nyomon követhetik, hogy az ötletüket regisztrálták-e már, ha már igen akkor döntésre vár-e vagy pedig elfogadásra illetve elutasításra került sor. Döntésre várás esetén kérés volt arra is, hogy rögzíteni lehessen, hogy melyik területi vezetőnél várakozik az ötlet. Így a dolgozó megkeresheti az illetékes személyt és akár személyesen is kaphat választ az ötletével kapcsolatban. Az elfogadott ötletekkel kapcsolatban megjelenítésre kell kerülnie: az ötlet címének, rögzítés időpontjának, ötlet leírásának, ötlet által hozott várható eredménynek, vezetői elbírálás eredményének, ötlet díjazásának. Az ötlet díja egy 800025000 Ft közötti díj lehet. Ez az információ hamar ellentétet, irigységet szülhetne a dolgozók között ezért van szükség a dolgozók egyedi jelszavára ami jelen esetben négy darab számjegyből álló generált szám. A generálás úgy történt meg , hogy minden dolgozó különböző és egyedi jelszóval rendelkezzen. A program fő képernyőjén három gombot akartak látni. Egyikkel elérhető legyen az össze dolgozó kilistázva akik már adtak be ötletet és tartalmazza a dolgozók nevét, iniciáléját és beadott ötleteik számát. Továbbá igény volt oldal 11
arra, hogy lehetőségük legyen név vagy iniciálé alapján való keresésre. Dolgozó kiválasztása után jelenjenek meg az általa beadott ötletek címei kilistázva valamint egyedi háttérrel a pillanatnyi státuszuk alapján. Legyen zöld ha elfogadták, piros ha elutasították valamint sárga ha már rögzítve van, de még nem született döntés az ötlet elbírálásával kapcsolatban. Az ötlet kiválasztva pedig kérje a dolgozó egyedi jelszavát és utána jelenítse meg az ötletet magát, ezt már fentebb részletesen kifejtettem, hogy miknek kell szerepelnie rajta. A másik gombbal egy olyan ablak jelenjen meg ahol kilistázva láthatjuk az összes gyártó területet megnevezését ahonnan már érkezett be ötlet. Majd kiválasztva egy területet listázza ki az ott dolgozókat akik már adtak be ötletet. Olyan módon, hogy a listázás tartalmazza a dolgozó nevét, iniciáléját valamint beadott ötleteinek a számát. A dolgozó kiválasztása után a folyamat ugyan úgy kell, hogy működjön, mint ahogy az első menüpont esetében. A harmadik menüpontnak egy olyan ablakot kell megjelenítenie ahol kilistázza azokat az éveket ahol a beadott ötletek közül választottak Hónap ötlete díjazottat. Az év kiválasztása után listázza ki a hónapokat amikben volt ilyen ötlet. A legvégső megjelenítés a hónap kiválasztása után úgy történjen meg, hogy egy elkészített havi összesítőt jelenítsen meg amit lehessen "lapozni". A legelső kívánalmakat így fogalmazták meg amire létre kellett hozni egy adatbázis sémát .
6.1 Platform kívánalmak A megrendelő a szoftvert a vállalat bármely hálózati pontjáról el akarja érni Real-Time módban ezért web-es felületen futó alkalmazást akart. Mivel a már eddigi tapasztalataim alapján rendelkezted más fajta és más célra használt webes szoftverekkel amik Silverlight-ot használtak ezért a leg kézen fekvőbbnek ezt az irányt láttam. Így lett a fejlesztő környezet Visual Studioban egy Silverlight applikáció.
oldal 12
7.Adatbázis tervezés A megrendelő tervezés elején meghatározta, hogy Microsoft-os környezetben dolgozik így maga a szoftver és adatbázis is ehhez idomuljon. Ezért az adatbázis kezeléshez Microsoft SQL Server 2012-t használtam. A tervezés megkezdése előtt szükség volt végig gondolni mik azok az információk amiket tárolni akarunk benne. Első tervek alapján három táblából állt volna az adatbázis, de ezekkel felesleges táblák és kapcsolókat tartalmazott volna így bonyolítva a későbbi elérés sebességét. A tervezés elején még nem volt információ a dolgozókról érkező információk struktúrájáról. Így ennek okán az ötletek és hozzájuk tartozó információk letárolási módján kezdtem el gondolkozni. A séma megalkotásához először papíron össze írtam milyen mezőket kívánok letárolni. Így létrejött a később véglegesen elfogadott ötleteket tartalmazó adat tábla első változata. Ez először 24 db oszlopot tartalmazott ami nagyon soknak tűnik, de további táblákra szétosztani nem volt értelme, mert a munkát velük nem az adatbázis server fogja végezni lekérdezések során hanem a webserver-en futó kliens feladata lesz. Így nem probléma, hogy ilyen sok oszlopot tartalmaz. Más részről pedig nagyon sok kapcsoló táblát kellene létrehozni, hogy átlagosan 4-5 oszlopos táblákra feldaraboljuk. Így a szervernek sokkal több munkája lenne egyszerű lekérdezések létrehozásánál is. Lentebb látható az oka amiért nem bontottam szét az ötleteket tartalmazó adattáblát további táblákra. Az első vázlat bemutatása után hamar kiderült, hogy voltak előre nem látott felesleges kérések és olyan információk letárolására is igény merült fel ami az előzetes megbeszélések során fel sem merült. Szerencsére az így létrehozott második és egyben végleges tábla már minden szükséges információnak helyet nyújt továbbá tartalmaz olyan kihasználatlan oszlopot amik a későbbiek során módosításra adnak lehetőséget.(1. ábra)
oldal 13
7.1 Ötletek tábla leírása
(1. ábra) Az ötletek adattábla mezői
Mező magyarázat: •
Nr - Egyszerű számlálóként funkcionál új ötletek feltöltése esetén az új ötletnek a sorszáma eggyel nagyobb lesz mint az előtte feltöltött elem sorszáma. Így egyedi azonosítóként is használható majd.
•
Azonosító - Az elsődleges kulcs és egyedi azonosító. Ezt az azonosítót a formanyomtatványról töltik fel. Amit egy központi helyről nyomtatnak ki. A felhasználó bejelentkezési neve alapján, területet és a dátum alapján generál egy egyedi nem ismétlődő azonosítót.
•
Cím- Az ötlet címét tartalmazza
•
Leírás- Az ötlet leírását tartalmazza
•
Várható eredmény- Az ötlet beadó által leírt várható eredményt tartalmazza
•
Típusa- Az ötleteket 6 féle típusba sorolják: költségcsökkentés, kapacitás, minőség, munkavédelem, ergonómia, környezetvédelem.
•
Státusz- A regisztrált ötletnek 6 féle státusza lehet : rögzítve, elfogadva, elutasítva, megvalósítás elindítva, kifizetve/díjazva, szakértőre vár
•
Ötlet nagysága- Először igény volt 3 szinten kategorizálni az ötleteket, de a díjazás mértéke egyértelműen meghatározza ezt így későbbiekben szabadon használható
•
Jutalom- Jutalom összegét tartalmazza
•
Várható megtakarítás- Az elbírálás során szakértő által adott várható megtakarítást tartalmazza
•
Költség- Az ötlet megvalósításához szükséges anyagi befektetés oldal 14
•
Prioritás-
Három
féle
prioritású
ötlet
van
:
magas,
normál,
fagyasztva
Ez a végrehajtó személyzet számára fontos. •
Vezetői jóváhagyás- Az elbírálás során a vezetők véleményét tartalmazza : támogatják vagy ellenzik opcióval.
•
Szakértői jóváhagyás- Akkor van szükség rá amikor a vezető a számára rendelkezésre álló információk alapján nem tudja eldönteni, hogy az ötlet életképes-e ilyenkor kikéri a szakértő véleményét aki ugyan úgy támogatni vagy elutasítani tudja az ötletet
•
Iniciálé- A dolgozók azonosítására szolgál és kapcsolódási pont a dolgozó tábla számára
•
Ötlet megvalósítója- A végrehajtó személyzet számára tartalmazza, hogy ki a felelős az elfogadott ötlet végrehajtásáért
•
Rögzítés dátuma- Az ötlet rögzítésének dátumát tartalmazza
•
Kezdés- Megvalósítás kezdő időpontja
•
Vége- A megvalósítás befejezésének időpontja
•
Komment- Az ötlet elbírálása során felmerülő felvetéseket tartalmazza
•
Hónap ötlete- Ide kerül rögzítésre az év és a hónap amikor is a hónap ötlete volt.
•
Terület- A terület ahonnan beadásra került az ötlet
•
Elbírálás eredménye- Az elbírálás döntésének az indoklását tartalmazza
Továbbá tartalmaz egy tárolt eljárást, ami minden új elem feltöltése után lefut. Mivel rögzítéskor a feltöltött elem [Nr]- mezőbe 0 értéket tölt fel ezért utána ezt az értéket módosítja az új értéknél a következő elem értékére. Ezzel ha későbbiekben több kliensen is regisztrálnak új ötleteket nem okozhat gondot a kliens oldalon generált számláló, mert ezért a szerver lesz a felelős.
oldal 15
7.2 Dolgozók tábla leírása A dolgozók táblánál sokkal egyszerűbb volt a megoldandó probléma ugyanis itt már előre megvoltak azok a fontos információk amiket tartalmaznia kell. (2. ábra) A tábla szerkezet:
(2. ábra) Dolgozók adattábla mezői
Magyarázat: •
Department- A szervezeti egység megnevezése ahová a terület tartozik
•
Area- Magának a területnek a megnevezése ahol a dolgozó dolgozik
•
EMPLID- Az elsődleges kulcs ami a dolgozó egyedi azonosítója amivel szerződés kötéskor regisztrálták a vállalat rendszerében
•
Initials- A helyi gyárban kapott azonosítója ami alapján nyomon követhető
•
First Name- A dolgozó kereszt neve
•
Last Name- A dolgozó vezeték neve
•
Full Name- A dolgozó teljes neve
•
Password- Az általam generált 4 jegyű számokból álló jelszó amivel megtekintheti a saját ötleteit
Az előző táblában külön rögzítésre került a terület neve is amit az iniciálé alapján lelehetne kérdezni, de akkor az olyan problémához vezetne, hogy amikor a dolgozó másik területre kerül úgy az ötlete "menne vele" a rendszer szerint ami a statisztikákat torzítaná, hogy melyik terület volt a legaktívabb az elmúlt fél évben például.
oldal 16
7.3 Adatbázis séma létrehozásának összegzése: A program installáció előtti végső tesztelt bemutatásakor(2014.04.16) minden információt tartalmazott így további módosításokra a fejlesztésig nincs szükség. A megrendelő megvolt elégedve a tárolt információ mennyiségével és minden egyéb tartalmi kívánalmának megfelelt.
oldal 17
8 Szoftver tervezése Először kiválasztottam a fejlesztő szoftvert és környezetet. A választásom a Visual Studio 2010 Ultimate-re esett és ezen belül is Silverlight 5-t választottam. Indoklása egyszerű ugyanis tanulmányaim során C# programozás alapjain már találkoztam vele és nagyon megtetszett. A Silverlight pedig Microsoft-os termék ami a vevő kérése volt. Továbbá rengeteg lehetőség van benne és nagyban megkönnyíti a programozást azzal, hogy egyben tartalmazz Web fejlesztői környezetet(XAML) és C# kódolásra is lehetőséget ad ami rejtve marad.
8.1 Kapcsolat teremtés a kliens és szerver között Mivel a teljes rendszer egy MS SQL szerverből és egy Web serverből áll ezért szükségem volt kommunikációt teremteni köztük. Ezt egy saját WebService létrehozásával értem el ami megteremti a kommunikációt a két szerver között. Első lépésként kapcsolódási pontot kellett létrehoznom a programom és az SQL server között. Ezért létrehoztam egy új "Data Connections"-t amiben megtudtam adni az SQL server elérését valamint a felhasználó nevet és jelszót ami alapján a későbbiekben hozzáférése van. Ehhez azonban előbb a szerveren létre kellett hoznom egy új felszanálót aki az adatbázis tábláinak a tartalmát módosíthatja és lekérdezéseket végezhet, de szerkezeti módosításokra nincs jogosultsága. Miután már a fejlesztő környezetben elértem a szervert létrehoztam egy LINQ to SQL Classes-t . Ami lehetőséget nyújtott arra, hogy az előbb beállított kapcsolat alapján elérhető táblákból generáljon egy adatbázis sémájú osztályt. Ami tartalmazza változóként az összes szükséges mező nevet. Így most már létrehozhattam a ténylegesen kommunikálásra képes elemet ami egy Silverlight-enabled WCF Service lett. Ennek is be kell állítani az SQL server elérési információit ami után egyszerű lekérdezésekkel vagy éppen felvitellel manipulálható az adatbázis.
oldal 18
List
getIdeaList() { DataClasses1DataContext cont = new DataClasses1DataContext(); var query = from q in cont.Ideas orderby q.Nr select q; return query.ToList(); } (3. ábra) Minden adat lekérése az Ideas táblából
Látható, hogy a DataClasses1DataContext osztály típus tartalmazza az adatbázis jellemzőit. Így könnyedén hivatkozhatok a tábla nevekre mint változókra gyűjteményekre. Továbbá azokon belül a fejlécekre mint változó nevekre (3.ábra). Miután ezzel a LinQ lekérdezéssel egy Ideas típusú listába gyűjtöm a tábla tartalmát egyszerűen használhatom ennek a listának az elemeit kiíratásra. A tovább lekérdezésen kívül lehetőséget kell nyújtanom új ötlet felvitelére, régi ötletek módosítására valamint ötlet törlésére. Az további műveleteket is bemutatom az Ideas táblán.
void deleteIdea(Idea input) { DataClasses1DataContext cont = new DataClasses1DataContext(); cont.Ideas.DeleteAllOnSubmit(cont.Ideas.Where(p => p.Azonosító == input.Azonosító)); cont.SubmitChanges(); } (4. ábra) Meglévő ötlet törlése
Itt már szükség van beviteli mezőre amivel meghatározzuk, hogy melyik ötletet akarjuk törölni. Ezért használjuk az elsődleges kulcsként deklarált Azonosító mezőt.(4. ábra)
void insertIdea(Idea input) { DataClasses1DataContext cont = new DataClasses1DataContext(); cont.Ideas.InsertOnSubmit(input); cont.SubmitChanges(); } (5. ábra) Új ötlet felvitele az adatbázisba
A felvitelnél előre beállított értékekkel Idea típusú változót használva hívom meg a DataClasses1DataContext class-t.(5. ábra)
oldal 19
void updateIdea(Idea input) { DataClasses1DataContext cont = new DataClasses1DataContext(); Idea item = cont.Ideas.Where(p => p.Azonosító == input.Azonosító).SingleOrDefault(); if (item != null) { item.Azonosító = input.Azonosító; item.Cím = input.Cím; item.Leírás = input.Leírás; item.Várható_eredmény = input.Várható_eredmény; item.Típusa = input.Típusa; item.Státusz = input.Státusz; item.Jutalom = input.Jutalom; item.Várható_megtakarítás = input.Várható_megtakarítás; item.Költség = input.Költség; item.Prioritás = input.Prioritás; item.Vezetői_jóváhagyás = input.Vezetői_jóváhagyás; item.Szakértői_jóváhagyás = input.Szakértői_jóváhagyás; item.Iniciálé = input.Iniciálé; item.Ötlet_megvalósítója = input.Ötlet_megvalósítója; item.Kezdés = input.Kezdés; item.Vége = input.Vége; item.Komment = input.Komment; item.Hónap_ötlete = input.Hónap_ötlete; item.Terület = input.Terület; item.Ötlet_nagyság = input.Ötlet_nagyság; item.Elbírálás_eredménye = input.Elbírálás_eredménye; cont.SubmitChanges(); } } (6. ábra) Korábban rögzített ötlet módosítása
Látható, hogy az ötlet módosítása nem fogalmazható meg olyan röviden mint a másik három művelet és szükséges helyi Idea típusú változót deklarálni. Azért, hogy először egy lekérdezést hajtsak végre amivel betöltöm a kívánt ötletet az Azonosító alapján. Ezek után mezőről mezőre módosítom az újonnan érkezet értékekre majd a legvégén regisztrálom a módosításokat a szerveren lévő adatbázisban. (6. ábra) A dolgozó adatait tartalmazó táblára ugyan így létre hoztam a megfelelő program részeket és azokat hívom meg a kliens oldalról. A felhasználói felületnek mindösszesen elégendőek a lekérdező metódusok amikkel elérjük és az összes tárolt információt, majd pedig kedvünk szerint megjelenítjük azt egy grafikus felületen.
oldal 20
8.2.1 Adminisztrátori felület kliens oldali programozása Először is a már korábban létrehozott Web-service-t hozzá kell adni mint Service Reference ami után egy szerű hívássokkal elérhető az összes ott deklarált metódus. Ez a módszer két lépcsős módon működik. Minden meghívás előtt létre kell hoznunk egy ServiceReference.Client típusú változót. Aminek a metódusait ezek után meghívhatunk. A meghívás módja két szinten történik. public static List<ServiceReference1.Idea> otletek = new List<ServiceReference1.Idea>(); . . .
private void FillUp() { ServiceReference1.Service1Client qont = new ServiceReference1.Service1Client(); qont.getIdeaListCompleted += new EventHandler<ServiceReference1.getIdeaListCompletedEventArgs>(qont_getIdeaListCompl eted); qont.getIdeaListAsync(); } void qont_getIdeaListCompleted(object sender, ServiceReference1.getIdeaListCompletedEventArgs e) { otletek = e.Result.ToList(); } (7. ábra) Kliens oldalon lévő List típusú változó feltöltése
Az otletek változó beállítása az Ideas tábla tartalmára a következő képen történik. Deklaráljuk a ServiceReference1.Service1Client qont változót amin keresztül meghívhatjuk a webszerver metódusait. A tényleges hívást a qont.getIdeaListAsync() végzi el, amin keresztül bemenő paramétereket adhatunk meg ha szükséges. A lekérdezésen kívül a többinél van bemenő paraméter. A metódus által vissza adott értéket pedig : qont.getIdeaListCompleted += new EventHandler<ServiceReference1.getIdeaListCompletedEventArgs>(qont_getIdeaListCompleted)
keresztül
érjük el. Ahol a program törzsében kinyerhetjük a visszatérési értéket.(7. ábra)
8.2.2 Adminisztrátori felület
oldal 21
Az ötletek kezeléséhez létrehozott grafikus felületről minden értéket könnyedén módisíthatunk valamint újakat vihetünk fel. (8.ábra)
(8. ábra) Ötletek kezeléséhez tartozó grafikus felülete
Itt láthatók a beviteli mezők valamint a gombok amikkel a felület funkcióit elérhetjük. A mezők között vannak egyedi módon működőek. A "Cím" beviteli mező ha írni kezdünk bele megjeleníti a felette lévő rejtett címkét ami kiírja, hogy hány karakter helyünk van még a cím megadására. Az "Azonosító" alatt látható számlálót dinamikusan az adatbázisból nyeri ki és ez változik ahogy új ötlet kerül felvitelre. Amikor módosítjuk az "Ötlet státusza" mező értékét az elfogadott esetén módosítja a vezetői valamint szakértői jóváhagyás mező értékét "engedélyezve" állapotra. A "Dolgozói Iniciálé" mező alatt láthatunk egy "Dolgozó neve" feliratot. Itt megjelenik a dolgozó neve amit az iniciálé alapján keres meg.
private void tbiniciale_TextChanged(object sender, TextChangedEventArgs e) { string szo = tbiniciale.Text; tbterulet.Text = ""; char[] koz = szo.ToCharArray(); for (int i = 0; i < szo.Length; i++) { koz[i] = char.ToUpper(koz[i]); } oldal 22
string veg = new string(koz); tbiniciale.Text = veg; tbiniciale.Select(veg.Length, 0); try { ServiceReference1.Service1Client kon = new ServiceReference1.Service1Client(); kon.getEmpInfoCompleted += new EventHandler<ServiceReference1.getEmpInfoCompletedEventArgs>(kon_getEmpInfoCompleted); kon.getEmpInfoAsync(); } catch(Exception ex) { } } . . .
void kon_getEmpInfoCompleted(object sender, ServiceReference1.getEmpInfoCompletedEventArgs e) { tbdolgozoneve.Text = (from q in e.Result where q.Initials == tbiniciale.Text select q.Full_Name).FirstOrDefault(); tbterulet.Text = (from q in e.Result where q.Initials == tbiniciale.Text select q.Area).FirstOrDefault(); } (9. ábra) Dolgozó nevének keresésért felelős
Működése során először iniciálé egyezést keres, ha talál akkor veszi a hozzá tartozó nevet és módosítja a beviteli mező alatt lévő felirat értékét ezzel a névvel. Valamint kitölti a Terület mezőt is, hogy melyik területről érkezet be az ötlet. Abban az esetben ha nem talál egyezést akkor a felirat értékét üresre állítja. Abban az esetben ha nem tud kapcsolatot létesíteni a WebService-on keresztül a szerverrel egyszerűen vissza tér alap állapotban és nem futtatódik le a keresés. (9.ábra)
8.2.2.1 Nyomógombok A felületen található gombok: •
Ellenőriz
•
Frissítés
•
Ötlet felvitele
•
Ötlet betöltése oldal 23
•
Módosítás/(MENTÉS)
•
Ötlet Törlése
•
Listáz
Ellenőriz:- Egyszerű össze hasonlítás-keresést végez el, hogy a beállított hónap ötlete dátum nem-e létezik már. Ebben az esetben feldob egy üzenet panelt amiben figyelmeztet erre. Ugyanis egy hónapban maximum egy ötletet lehet a legjobb.(10. ábra)
(10. ábra) Az ellenőrző lefutásakor feljövő üzenet
Frissítés:- Vissza állítja az űrlap minden mezőjének az értékét alap helyzetbe. További funkciót nem lát el. Ötlet felvitele:- Az űrlap kitöltése után regisztrálja az új ötletet az adatbázis megfelelő táblájában. Amennyiben kulcs fontosságú mezőket üresen hagy az adminisztrátor aki kezeli a felületet a program figyelmeztet erre. Az ellenőrző függvény akkor fut le amikor az egér mutatója belép a gomb területére. Továbbá azt is megvizsgálja, hogy a beírt azonosítóval regisztráltak-e már ötlet, ha igen akkor egy másik üzenet jelenik meg ezzel a szöveggel: "ILYEN AZONOSÍTÓ MÁR LÉTEZIK ÍRJA ÁT AZ ÖTLET AZONOSÍTÓJÁT". Amit látva tudja az adminisztrátor, hogy rossz azonosítót írt be.(11. ábra)
oldal 24
(11. ábra) Az "Ötlet felvitele" gomb által kiírt üzenet.
Ötlet betöltése:- Ezzel a gombbal tudunk betölteni az adatbázisba már regisztrált ötletet és módosíthatjuk azt. A funkció az Azonosító alapján keres és tölti be az információkat. Abban az esetben ha nem talál ötletet minden mezőt a pillanatnyi értékén hagyja, ha pedig üres mezővel próbálunk keresni akkor figyelmeztet, hogy üres az azonosító beviteli mezője. Módosítás/(MENTÉS):- Ezzel a funkcióval már létező ötletek értékeit módosíthatjuk az űrlapon átírt vagy utólag kitöltött mező értékekre. Láthatjuk, hogy amint feltöltöttem a beviteli változót azzal már meg is hívható a WebService-ban deklarált metódus. Látható, hogy ilyenkor amikor nincs visszatérési érték egyetlen metódust hívunk meg ami rendelkezik bemeneti változóval.(12.ábra) private void button2_Click(object sender, RoutedEventArgs e) { { ServiceReference1.Idea otlet = new ServiceReference1.Idea(); . . .
ServiceReference1.Service1Client kon = new ServiceReference1.Service1Client(); kon.updateIdeaAsync(otlet); } } (12. ábra) A módosító metódus meghívása
oldal 25
Törlés:- A törlést az azonosító egyezés alapján végzi el. Mielőtt törölné az ötletet rákérdez egy beviteli ablakkal, hogy biztosan törölni akarja-e az ötletet és amennyiben ennek a vissza térési értéke igaz akkor meghívja a az azonosító értékével a WebService megfelelő metódusát. Listáz:- Ez a gomb meghív egy teljesen új ablakot ahol táblázatos formában megfelelő fejléc elnevezéssel kilistázza az összes eddig feltöltött ötletet. Ez a táblázat rendezhető ABC sorrendbe egyszerűen a fejlécre kattintva. A feltöltés és címzés módja könnyedén kivitelezhető ugyanis a lekérdezés eredményeként kapott List típusú változót tölti bele. A feltöltés után csökkenő sorrendbe rendezem a tábla elemeit a sorszámuk alapján így a legújabb ötlet lesz mindig a tábla legelső sorában.(13. ábra) void cont_getIdeaListCompleted(object sender, ServiceReference1.getIdeaListCompletedEventArgs e) { var query = (from q in e.Result select q).OrderByDescending(c => c.Nr) ; dataGrid1.ItemsSource = query; dataGrid1.Loaded += new RoutedEventHandler(dataGrid1_Loaded); } void dataGrid1_Loaded(object sender, RoutedEventArgs e) { int temp = 0; for (int i=0;i
8.2.2.2 A Dolgozói adatok kezelése Mivel a dolgozói adatoknál a jelszón kívül minden adatot SQL Server Manager-en keresztül kell kezelni és ennél a verziónál nem volt kérés arra, hogy adminisztrátori felületről erre legyen lehetőség, ezért mindösszesen a dolgozói jelszó módosítható. Ami az azonosító beírása után lehetséges. Ezt a felületet csakis az adminisztrátor érheti el ami kizárja az illetéktelenek visszaélési lehetőségét. (14. ábra) Az iniciálé beírásával egyben keres és egyezés alapján betölti a keresett dolgozó adatait, ez úgy nevezett dinamikus keresés. A módszer ugyan az mint amit már szemléltettem korábban, csak módosítva az itt látható környezethez.(9. ábra) oldal 26
(14. ábra) A dolgozói jelszó módosítási lehetősége
8.2.2.3 Adminisztrátori felület összegzése A felületen a vevő által kért minden funkció megtalálható és későbbiekben könnyedén módosíthatóak és/vagy bővíthetőek. A grafikus felhasználói interfész kialakítása többször módosult míg elérte ezt a végső formát. Az oka a vevői kérések kielégítése volt. Így volt olyan gomb vagy mező ami törlésre került, de vannak új látható illetve rejtett funkciói is amik megfelelő kritériumok teljesülése esetén láthatóvá válnak.
8.2.3 Felhasználói Grafikus megjelenítő felület A felület futásáért egy külön program felelős ami mindösszesen csak megjelenítésre szolgál. Semmilyen bemeneti mezővel nem rendelkezik. Illetve csak lekérdezni tud az SQL szervertől abban módosításra semmilyen lehetősége nincsen. Ezekre a biztonsági funkciókra azért volt szükség, mert a megrendelőnél egy gyár területén elhelyezett Kioszkon fog futni ahol bárki elérheti. Így ettől a kapcsolódási ponttól védve van az adatbázis által tárolt információ.
oldal 27
(15. ábra) Kioszk megjelenítet felület
A vevő kérésére egyszerű letisztult felületet készítettem a lehetőségre álló színek felhasználásával. Mivel a kék és annak világos árnyalatai egyeznek a megrendelő irányvonalaival ezért ebben az irányban valósult meg a Design tervezés. Vissza jelzés képen a telepítés előtti végső bemutatón teljes mértékben megfelelt a kinézet és meg voltak elégedve a munkám minőségével. Kérésnek megfelelően 3 menüpont látható.(15. ábra) A grafikus felület kinézetének valamint funkcionalitásának részletes bemutatás lentebb található
8.2.3.1 Ötlet,Ötlet,Ötlet A gomb megnyomása után megnyit egy gyermek ablakot ahol egy dinamikusan generált listát látunk amiket az adatbázis alapján tölt fel a program elemekkel. Valamint látható egy kereső mező ami Real-Time szűrést végez a megjelenített listán.(16.ábra)
oldal 28
(16. ábra) Beadott ötlettel rendelkező dolgozók
Magának a kód megalkotásának nagyban segítséget nyújtott a Silverlight-ban elérhető WrapPanel nevű funkció. Először létre hoztam megjelenített elem stílusát (17.ábra). Ahol látható, hogy minden adatot mezőnek a kódban foglalt forrás ad értéket. <StackPanel Margin="1,1,1,1" Style="{StaticResource dolgozostack}">
(17. ábra) A megjelenített elem kinézetének és tartalmának létrehozása Mivel az elem kinézetének a stílusát több helyen felhasználom ezért azt rögzítettem az App.xaml osztályban és csak onnan hívom azt meg. Az egész megjelenítő felület egy úgy nevezett ListBox-ba van ágyazva aminek forrásként megadom a lekérdezés alapján kapott List<Emp_Info> típusú változót. Ezek után csak hivatkozom a változóban foglalt nevekre. A megjelenített listát mindig annyi elemmel tölti fel amennyit kap. Ezért amikor keresésre kerül sor akkor igazából elvégez egy új lekérdezést már a keresési paraméterként megadott érték alapján és az így kapott eredményt jeleníti meg. A név és iniciálé megjelenítése egyszerű volt hiszen ezek az adatok direkt eléréssel rendelkezésre állnak számunkra az adatbázisból. Viszont a beadott ötletek számának a megjelenítése sehol sincsen rögzítve. Ehhez a funkcióhoz létre kellett hoznom egy úgynevezett IValueConverter típusú oldal 29
osztályt ami bemenő paraméterként megkapja a dolgozó Iniciáléját ami alapján elvégez egy olyan lekérdezést aminek a visszatérési értéke az adott dolgozó által beadott ötletek száma.(18.ábra)
public class StringToCountConverter:IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { int vissza=0; foreach (var w in MainPage.globallist) { if (value.ToString().ToLower() == w.Iniciálé.ToLower()) vissza++; } if (vissza != 0) return "Beadott ötletek\n"+vissza.ToString(); else return "nemjo"; } . . . } (18. ábra) Azonosító alapján vissza adja a dolgozó által beadott ötletek számát
A paraméterként kapott értékkel egy lekérdezést végzek el ahol ha egyezést talál növeli a helyi int típusú változó értékét 1-el. A végén ezzel az rétékkel valamint az előtte szereplő szöveggel tér vissza. Végül ez a vissza térési string típusú érték jelenik meg a kijelző látható elemben. Miután kiválasztottunk egy dolgozót akire kíváncsiak vagyunk, megjelenik egy új ablak ahol listázva láthatjuk a beadott ötleteit. A könnyebb visszajelzés érdekében ezek egyedi háttér színnel rendelkeznek amit az ötlet státusza alapján egy másik IValueConverter segítségével állítottam be.(19.ábra)
public class StringToColorConverter:IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { SolidColorBrush mybrush = new SolidColorBrush(Colors.Transparent); if (value.ToString().ToLower() == "Ötlet rögzítve".ToLower()) { mybrush=new SolidColorBrush(Colors.Yellow); oldal 30
return mybrush; } } (19. ábra) Beadott ötlet háttér színének az átállítása
Mivel a visszatérési értékkel háttér színt akarok beállítani, ezért SolidColorBrush típusú a visszatérési változóm. A megfelelő visszatérési szín beállításához megvizsgálom az ötlet státuszának az értékét ami alapján értéket kap a helyi SolidColorBrush típusú változó. Amint kiválasztunk egy ötletet és rákattintunk, megjelenik egy beviteli ablak ahol a dolgozó jelszavát kéri. Amennyiben adminisztrátorok vagyunk rendelkezünk egy mester jelszóval amivel minden ötletet megtekinthetünk. Amint beírjuk megjelenik előttünk a végső képernyő ami tartalmazza az ötlet leírását és minden hozzá tartozó olyan adatot amit a dolgozónak tudnia lehet. A megrendelőnek az volt a kérése, hogy az érzékeny információkat ne közöljük a dolgozóval csak annyit, hogy elfogadták-e vagy sem és a díjazás összegét, valamint az általa leírt információt ami az ötletéhez tartozik. A megjelenítés nem minden ötletnél néz ki ugyan úgy ugyanis az ötletekről rögzített információk nem ugyanolyanok. Értem ez alatt azt, hogy nem mindenki írja le mi a várható megtakarítás. Ezekben az esetekben egyszerűen kimarad a kiírásból a mezője és az alatta szereplő információk igazodnak a legfelső megjelenített információhoz.(20.ábra)
(20.ábra) Az ötletről megjelenített információk a dolgozó számára
oldal 31
8.2.3.2 Területek A megjelenített ablakban kilistázza az összes olyan területet ahonnan már adtak be ötletet. Ehhez a szűréshez használtam a következő kód részletet(21.ábra) terulet = new List(); var areak = (from q in MainPage.globallist select q.Terület).Distinct(); foreach (string w in areak) { ClassForList.areainfo temp = new ClassForList.areainfo(); temp.name = w; temp.count=(from asd in MainPage.globallist where asd.Terület.ToLower() == w.ToLower() select asd).Count(); if (temp.name!="") terulet.Add(temp); } AreaList.ItemsSource = terulet; (21. ábra) Területek nevének kigyűjtése az adatbázisból
Ahogy kiválasztunk egy területet ott láthatjuk a dolgozókat akik azon a területen dolgoznak és adtak be ötletet. Ugyan azt az osztályt hívjuk meg mint amikor minden dolgozót láttunk aki adott be ötletet, csak itt a kezdő lista sokkal kevesebb elemet tartalmaz, mivel rendelkezik egy plusz feltétellel ami a terület egyezést követeli meg. Ahogy egyre beljebb megyünk a programban a kiválasztott dolgozó ötleteire és azon belül az ötlet leírására ugyan azokat az osztályokat hívom meg amit a fentebb látható menüpontnál kifejtettem. Ezzel megelőztem, hogy feleslegesen írjam meg ugyan azt a funkciót ellátó osztályt.
8.2.3.3 A Hónap ötletei A megrendelő kérése volt, hogy tervezzek egy a hónap legjobb ötleteit tartalmazó programrészt. Ennek a legfőbb kitétele az volt, hogy havi szinten mindenképp készítenek egy PDF-et ami tartalmazza annak a leírását valamint várhatóan mennyi megtakarítást hozz éves szinten. Miközben megoldásokat kerestem arra, hogy PDF-et a saját formátumában megtudjak jeleníteni, csak megvásárolható fejlesztői segédleteket találtam. Amik képesek formátum vesztés nélkül PDF kiterjesztésű fájlok megnyitására Silverlight környezetben. oldal 32
Amikor ezt az információt megosztottam a megrendelővel ő ezt elfogadhatatlannak találta, és kérésére alternatív megoldások után néztem. A legkézenfekvőbb megoldás az volt, ha a PDF-ből JPG vagy PNG kiterjesztésű könnyedén megjeleníthető és formázható képet készítek. Mivel a PDF-et Microsoftos környezetben készítik ezért ott könnyedén letudják menteni kép formátumban is. Egyetlen kitételem, az volt, hogy a kép neve mindenképpen legyen azonos az ötlet azonosítójával. Így könnyedén betölthető a kiválasztott ötlethez tartozó kép. A már meglévő PDF-eket pedig konverterrel átalakítottam JPG formátumú képekké. A megjelenítésért felelős két kód részlet felelős. Az első a kinézetet és formaiságokat tartalmazza.(22. ábra). Elsőször egy alapértelmezett kép elérési helye van megadva, így ha hiba lépne fel a megfelelő kép elérése közben az szembetűnő volna számunkra.
<ScrollViewer BorderBrush="Transparent" x:Name="kep" Margin="0,0,0,0" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden"> <ScrollViewer.Content> <StackPanel> (22. ábra) A hónap ötletének megjelenítő felületének a kódja
A programozási oldal pedig felelős a megfelelő kép betöltésért. Első sorban kikeresi a betöltéshez szükséges információkat, majd pedig a beállított forrás könyvtárban kiválasztja a számára megfelelő képet. A másik fele pedig az ötlet "lapozhatóságáért" felelős. A megjelenítő melletti két gombnak adva olyan funkciót amivel erre képesek vagyunk (23. ábra).
Loaded += (s, e) => { image = @"/Good_Idea_U;component/Images/"+IdeasOfMonth.otlet.Azonosító.ToString()+".jpg"; kepeleres.Source = new BitmapImage(new Uri(image, UriKind.RelativeOrAbsolute)); }; kep.ScrollToVerticalOffset(kep.VerticalOffset + 100); oldal 33
kep.ScrollToVerticalOffset(kep.VerticalOffset - 100); (23.ábra) Ötlethez tartozó dokumentáció betöltése és lapozási lehetőség
Látható, hogy a kód eseménykezelőhöz van kötve. Vagyis abban az esetben fut le amikor megkezdi az ablak kreálását és betöltését. Így a már korábban beállított alapértelmezett kép elérési útvonalát felül írva a már helyes adatot fogja betölteni.
oldal 34
9. Tesztelés A tesztelés folyamatosan a fejlesztés közben történt, és én magam végeztem. A program néhány hiányosságára hamar fényderült. Ám voltak olyan még lenem kezelt események amik program összeomlásához is vezethettek volna, de legalábbis az adatbázisban hibát generáltak volna. Ezeket a hiányosságokat már a szoftver használatának a korai stádiumában észleltem és javítottam. A régi ötleteket ugyanis felkellett vinni az adatbázisba és erre a legjobb módja az volt ha már a létrehozott adminisztrátori felületet használtam erre. Így egy béta tesztet is sikerült végre hajtani már a bemutató előtti egy hétben. Ekkor került beépítésre a feltöltést és módosítást megkönnyítő funkció amikor, ha az ötlet státuszát elfogadottra állítom a vezetői és szakértői jóváhagyás is engedélyezettre váltson.(6. ábra). Kódban történő fejlesztés a nyomógombokhoz tartozó funkciók megalkotása volt. Amikor ha a gomb területére belépet a kurzor lefut egy ellenőrző metódus, ami megvizsgálja a kritikusnak talált mezőket és ha valamelyik feltételnek nem felel meg üzenet ablakon keresztül üzen az adminisztrátornak és nem engedi, hogy rá lehessen kattintani a gombra. Így került utólag a kódba, hogy figyelmeztessen ha már létező azonosító van a kódban, vagy pedig ha már van hónap ötlete rögzítve a kiválasztott hónapban illetve, hogy ha valamelyik kulcs beviteli mező üresen marad azt kikell tölteni: •
azonosító
•
iniciálé
•
cím
•
leírás. Ami még fontos volt, hogy a rögzítés dátumának a mezőjét lehessen módosítani.
Ugyanis először úgy írtam meg, hogy mindig az aktuális dátum kerüljön a feltöltésre, de ez nem nyújtott lehetőséget a már régebben létrehozott ötletek számára. Így most oly módon működik, hogy a beviteli mező értékének beállítja az aktuális dátumot, de azt már lehet módosítani. A dátum beírásánál sokszor előfordult, hogy pont helyett vesszőt nyomtam és ez hibához vezetett a későbbi adathasználatnál. Ezért beépíttetem egy karakter figyelésért felelős modult. Ami dátum beírásakor a leütött vesszőt automatikusan cseréli pontra így elkerülve a lehetséges hibákat. Csere után a kurzor vissza ugrik a szöveg végére.(24.ábra)
oldal 35
tbrogzitesdatuma.Text= tbrogzitesdatuma.Text.Replace(",", "."); tbrogzitesdatuma.Select(tbrogzitesdatuma.Text.Length, 0); (24. ábra) Karakter cserét végzi el
A lehetséges hibák csökkentése érdekében a nyomógombok elhelyezését is módosítottam az eredetihez képest és megnöveltem a köztük lévő helyet. Mert saját hibáimon is látszott volt olyan alkalom amikor mellé kattintottam és alap helyzetbe állítottam a már kitöltött űrlapot, így kezdhettem előröl az ötlet beírását. Látható, hogy a legtöbb módosítani kívánt részlet a beviteli grafikus interfészen volt, ugyanis itt van egyedül ténylegesen két irányú kommunikáció a kliens és az adatbázis között. Ami a felhasználói programrészhez tartozik az egy időzítő funkció és azért felelős, hogy mindig vissza térjen a főmenübe abban az esetben, ha valaki bent maradna egy ötlet leírásába vagy a főmenünél mélyebbi program pontnál. Jelenleg ez az idő intervallum 120 másodpercre van állítva így azután szépen vissza lép a főmenübe bármelyik menüpontban is időztünk ennél többet.(25. ábra)
idleTimer = new DispatcherTimer(); idleTimer.Start(); idleTimer.Interval = TimeSpan.FromSeconds(1); idleTimer.Tick += new EventHandler(idleTimer_Tick); MainPage.timeNow = DateTime.Now; Létrehozza a az időzítőt ami elkezd számolni és rögzíti a pillanatnyi időt egy globális változóban if (DateTime.Now > MainPage.timeNow.AddSeconds(120)) { this.DialogResult = false; } (25. ábra) Az időzített aktuális ablak bezárása
Látható, hogy a kód nem direkt módon hívja meg a főablakot, hanem sorban bezárja az aktuális ablakokat. Ugyanis minden ablaknak van egy ilyen kód részlete és rendelkeznek egy saját feltétellel amivel meghatározható, hogy mennyi ideig legyenek nyitva. Látható, hogy az oldal megnyitásakor rögzíti a pillanatnyi időt és ahhoz viszonyítva veszi a bezárási időpontot. Ezzel a megoldással elérhető az is, hogy esetlegesen közbenső ablakok hamarabb záródjanak be mint a végső megjelenítésért felelős vagy akár az is, hogy ötlet megtekintése után egyből visszatérjen a főmenübe. Ugyanis a feltétel vizsgáló minden ablakban külön és minden másodpercben lefut annak ellenőrzése érdekében. Ezt a funkciót a vevő nem kérte, de mikor bemutatásra került nagyon megvolt vele elégedve, mert egyszerűségnek tűnik. de egy 0/24-ben futó felületnél ez egy igen fontos része oldal 36
a megjelenítésnek.
10. Felhasználói leírás
10.1 Telepítési instrukció A telepítéshez szükséges egy MS SQL adatbázis szerver amihez a programban bekell állítani a kapcsolódási pontot. Továbbá szükség van egy Web szerverre amin a program fut és elérhető a hálózatról. A telepítés folyamán amint megvan a kapcsolat az adatbázis és program között lefordított kódot felmásoljuk a web szerver egyik könyvtárába, majd pedig hivatkozási pontot rendelünk a program *.aspx vagy *.html kiterjesztésű fájljához amit böngészőből meghívva a program elindul. A megfelelő hálózati hozzáférések és beállítások definiálása után belső illetve, ha engedélyek engedi külső hálózatokról is elérhető interneten keresztül. Tényleges telepítési menetet nem tudom demonstrálni, mert várhatóan a telepítést május közepén tudom elkezdeni a megrendelőnél, ugyanis várnom kell a platform megérkezésére. Valamint a megigényelt hozzáférési jogok megérkezésére. A szoftver Microsoftos környezetben tesztelt és optimalizált. A fejlesztés során használt eszközök és szoftverek a megrendelő számára is rendelkezésre állnak. Így várhatóan nem lesz semmi féle telepítési probléma. A felületek eléréshez pedig egy évnél nem régebben frissített vagy kiadott böngészőre van szükségünk ami rendelkezik Silverlight 5-ös kiegészítővel.
10.2.1 Adminisztrátori felület leírása A program adminisztrátori felületét csak az adminisztrátor érheti el és csak a megrendelő belső hálózatából. Ezt még a telepítésnél be kell állítani. Első ránézésre a felületen két feliratot találunk.(15. ábra). A két felirat gombként funkcionál és rákattintva érhető el az adatbázis adatainak módosítására szolgáló funkciók.
10.2.2 Új ötlet felvitele Az új ablak megnyitása után egy kitöltetlen beviteli felület jelenik meg előttünk.(8. ábra). Minden beviteli mező mellett látható egy felirat ami tartalmazza, hogy az ötlet oldal 37
beadására szolgáló lapon szereplő információkat hova kell beírnia az adminisztrátornak. Tájékoztatás érdekében az azonosító alatt szerepel egy szám ami megmutatja, hogy az adatbázis hányadik ötleteként lesz rögzítve az új. A cím mezőt ahogy elkezdi kitölteni megjelenik majd felette egy felirat, ami mindig kiírja, hogy hány karakter hely van még a cím megadására. A megfelelő működés érdekében az alábbi mezőket kötelező kitölteni: •
Azonosító - kitöltés közben csak nagy karakterek fognak megjelenni
•
Cím - maximálisan 100 karakter hosszú
•
Leírás
•
Dolgozó iniciáléja Amennyiben a fentebbi mezők valamelyikét üresen hagyja a program figyelmezteti,
hogy "Hiányos információk és kötelező kitölteni a következő mezőket:...". Felsorolva azokat a mezőket amiket még nem töltöttünk ki. A rögzítés dátuma, a dolgozó neve, valamint a terület automatikusan töltődnek ki. A rögzítés dátumát mindig az aktuális dátumra állítja, míg a dolgozó nevét és területet a beírt dolgozói iniciálé alapján tölti ki. Amennyiben dolgozói iniciálé kitöltése nem látja a dolgozó nevét és területet ellenőrizze, hogy jól írta-e be az iniciálét. Ennek helyessége esetén forduljon az adatbázis kezeléséért felelős személyhez aki frissíti a dolgozók adatbázisát, mert valószínűleg új alkalmazott adta be az ötletet és még azóta nem frissült a dolgozói adatbázis. A nem megfelelő kitöltés és már rögzített ötletek újra felvitelének elkerülése érdekében beépített védelmi mechanizmusokkal rendelkezik a program így ha egy nem megfelelő személy is kerül oda, hogy ötletet rögzítsen az adatbázisba. Nem lesz képes azt tönkre tenni valamint hibát elkövetni. A lenyitható elemekben minden lehetséges beviteli információ elérhető. Ezzel meggyorsítva az ötlet felvitelét. Amennyiben az ötlet rendelkezik hiányos információval akkor a beviteli mezőjében "0" karaktert benne hagyva rögzítsük azt az "Ötlet rögzítése" gomb megnyomásával. Már régebben rögzített ötlet betöltéséhez írjuk az azonosítóját a megfelelő mezőbe és nyomjuk meg az "Ötlet betöltése" gombot. Amennyiben létező ötlet azonosítóját írtuk be a hozzá tartozó információk betöltődnek, ellenkező esetben alaphelyzetben maradnak. A megfelelő
adatok
módosítása
után
a
mentést
a
"Módosítás/(MENTÉS)"
gomb oldal 38
megnyomásával érhetjük el. Ötlet törlése esetén beírjuk a törölni kívánt ötlet azonosítóját és megnyomjuk a "Törlés" gombot. Ekkor megjelenik egy kérdés ami rákérdez, hogy valóban törölni kívánja-e a kiválasztott ötletet. "Frissítés" gombbal vissza állítható a beviteli felület az alaphelyzetbe, és törli a már beírt, de még nem mentett információkat. A "Listázás" gombbal elérhető egy ablak ahol kilistázza az összes eddig rögzített ötletet. Olyan formában jelenik meg mintha egy Excel táblázat lenne. Lehetőség van benne növekvő illetve csökkenő sorrendbe rendezni az elemeit, a megfelelő fejlécre való kattintással. Bezárása a jobb felső sarokban található "X"-el történik. Ahol látható egy kék körben balra mutató fehér nyíl az minden esetben vissza lépteti a felhasználót az eggyel korábbi felületre.
10.2.3 Dolgozói adatok A dolgozói adatok módosítása feliratra kattintva elérhetjük a kezelő felületet. Látható, hogy a beviteli mezők közül összesen csak kettő módosítható aktívan.(14 ábra). A dolgozói adatokat egyszerűen a dolgozói iniciálé begépelésével érhetjük el. Amint beírjuk a kiválasztott dolgozó iniciáléját egyből betöltődik a róla tárolt összes információ a megfelelő mezőkbe. A jelszó módosításához begépeljük a dolgozó iniciáléját és ezek után a jelszó mezőben lévő
karaktereket
átírjuk
az
új
jelszóra.
Majd
mentéshez
megnyomjuk
a
Módosítás/(MENTÉS) gombot. A felület tartalmaz még egy "Listáz" feliratú gombot ahol kilistázhatjuk az összes dolgozót és a róluk tárolt információkat.
10.3.1 Felhasználói felület A felhasználói felületen három gombot láthatunk amiken keresztül elnavigálhatunk a program bármelyik pontjára. A navigálás közben vissza lépéshez minden esetben a kék körben balra mutató fehér nyílra kell kattintani vagy várni kell 2~3 percet és a program automatikusan a visszalép a főképernyőbe.(15. ábra) A három gomb: 1. Ötlet,ötlet,ötlet oldal 39
2. Területek 3. A hónap ötletei
10.3.2 Dolgozói ötletek elérése Az első és második menüpontban elérhetjük bármelyik eddig beadott ötletet abban az esetben ha tudjuk ki adta be. Az első menüpontban kilistázva láthatjuk az összes dolgozó nevét aki már eddig adott be ötletet. Az listás elrendezésben látható nevek felett látható egy keresésre szolgáló beviteli mező. (16. ábra) A keresési funkció inkább szűrőként működik mint keresőként. Működése során egy időben szűkíti a kilistázott emberek listáját iniciálé és név egyezés esetén is. A kereső mechanizmusa nem lineárisan működik. Vagyis a beírt szó előtt és után is lehet karakter a név vagy iniciálé esetén. Így nagyban megnöveljük a keresési eredményességet. Feltételezve, hogy lehet van olyan dolgozó akinek nem tudjuk csak az iniciáléjának 3 karakterét és azt egymás után leírva már lehet, hogy megtaláljuk, de az is lehet, hogy kevesebb mint 10 dolgozó marad a kijelzőn. A kilistázott elemek 3 fontos információt tartalmaznak 1. Dolgozó neve 2. Dolgozó iniciáléja 3. Dolgozó által eddig beadott ötletek száma Ebből a három információból épül fel minden egyes lista elem. Kiválasztva egy lista elemet megnyitjuk a dolgozó saját "profilját" ahol az általa beadott ötletek címe láthatóak egyéni háttérrel. A rácslistában szereplő ötletektől balra pedig három színkód látható ami magyarázat az listában látható elemek egyedi háttérszínére. A lista felett pedig látható a kiválasztott dolgozó neve valamint iniciáléja. (26. ábra)
oldal 40
(26. ábra) Dolgozó által beadott ötletek listája
A látható három szín az ötletek pillanatnyi státuszát jelentik. •
Piros Az ötletet rögzítették és az elbírálás során elutasításra került.
•
Sárga Az ötletet rögzítették, de az elbírálásnak még nincs eredménye, a részletek az ötlet megnyitása után láthatóak
•
Zöld Az ötletet rögzítették és az elbírálás során elfogadták, a díj kifizetésével kapcsolatos részletek az ötlet megnyitása után láthatóak
oldal 41
10.3.3 Beadott ötlet leírása Amennyiben ötlet megnyitásánál beírjuk a dolgozóhoz tartozó vagy pedig az adminisztrátori jelszót megjelenik az ötlet részletes leírása. Látható:(27.ábra) •
Ötlet rögzítése- ÉÉÉÉ.HH.NN
•
Ötlet címe
•
Ötlet leírása
•
Ötlet bevezetése után várható eredmény
•
Ötlet elbírálásának az eredménye
•
Elfogadott ötlet esetén az ötlet díjazásának a mértéke
(27. ábra) Beadott ötlet végső megjelenített leírása
Amennyiben megnyitás után nem látjuk az összes most felsorolt mezőt az nem azt jelenti, hogy a programnak működési problémája van, hanem csak annyit, hogy az adatbázisban az azt tartalmazó cella értéke üres és ezért nem jeleníti meg a szövegdobozát. A közel múltban beadott ötletek esetén felmerülhet egy várható kifizetési dátumot megjelenítő mező is ami az ötlet díjazásának várható időpontját fogja tartalmazni. Ez csak elfogadott ötletek esetén igaz.
oldal 42
A második menüpont alatt az első képernyő ami megjelenik előttünk a gyárban található területek listája ahonnan adhattak be ötletet.(28.ábra).
(28. ábra) Terület nevek kilistázva
Bármelyik területet kiválasztva a megjelenő listában szereplő dolgozók nevei azok lesznek akik ott dolgoznak és adtak be ötletet, vagy pedig korábban ott dolgoztak amikor az ötletüket beadták és utána más területre helyezték át őket ezért ebben az esetben ennek a dolgozónak a neve több terület név alatt is megtalálható lesz, de az ötleteit csak annál a területnél fogjuk látni ahol azt beadta. Az összes ötletének eléréséhez használjuk a főképernyő egyes menüpontját. Terület kiválasztása után látható lista ugyan olyan formátumú mint a (16. ábra), annyi különbséggel, hogy a kiválasztott területnek is egyeznie kell a dolgozó ötletének a területével. Az dolgozó ötleteinek a listázásánál ugyan az a felület látható mint az egyes menüpont esetében, csak itt is jelen van a területre való szűrés. Az ötlethez tartozó információk leírására szolgáló felület kinézete semmiben nem tér el a korábban bemutatott felületétől.(27. ábra)
10.3.4 A hónap ötlete A harmadik menüpontot megnyitva megjelenő képernyő tartalmazza azoknak az éveknek a listáját amikor választottak hónap ötlete címre ötletet. Jelen esetben ez még csak két darab megjelenő év lesz, mivel elég fiatal a rendszer. oldal 43
Egyiket kiválasztva megjelennek azok a hónapok amikor volt hónap ötlete. Az elemek tartalmazzák az ötlet címét és alatta pedig a hónap nevét amikor megkapta ezt a kitüntetést. Ötlet kiválasztása után megjelenő ablakban látható az ötlet leírása valamint annak várható megtakarítása éves viszonylatban és megtakarított Millió Ft-ban. A leírás mellett szerepel egy kép is aminek a fejlesztésére benyújtották az ötletet. A megjelenítő ablak mellett látható két nyomógomb a navigálásra szolgál. A lefelé mutató nyíllal kicsiket lefelé léptethetünk, amíg a felfelé mutató nyíllal felfelé mozgathatjuk az ötlet leírását így olvashatjuk el annak tartalmát.(29. ábra)
(29.ábra) A hónap ötletének megjelenített leírása
oldal 44
11. Tapasztalatok A munkám során rengeteg új ismerettel és elvárással találkoztam illetve találkozok mind a mai napig. A program fejlesztése során új ismeretek megszerzése elengedhetetlen volt a siker eléréséhez. Szakirányon tanultak alapján könnyedén megérthető és átlátható a gyártási folyamat amiket nap mint nap vizsgálnom és tanulmányoznom kell munkakörömből kifolyólag. A program fejlesztés webes felületre egy számomra eddig igen távol álló terület volt. Viszont most egyszerűen kivitelezhetőnek találom. Továbbá saját bőrömön tapasztaltam, hogy a vevő milyen gyakran képes igényeit módosítani. Ami laikusként számára nem tűnnek nagy változtatásnak, viszont számomra program vagy adatbázis tervezés szempontjából igen befolyásoló lehet. Esetenként ez akár felesleges munkaórákhoz is vezethet. Esetemben, viszont még ezek az új igények sem eredményeztek felesleges munkát, mivel a technológiát fejlesztés közben ismertem meg és tanultam meg, hogy kell használni az alapokat. Majd a szoftvert ilyen alap ismeretek kombinálásával hoztam létre. Természetesen vannak részei amiknek a létrehozásához összetettebb funkciókat kellett alkalmaznom.
oldal 45
12. Összegzés A cégnél a fejlesztés során csupán a szoftver funkcionalitását vizsgálták felül ugyanis a gyárban nincs olyan alkalmazott aki ilyen szoftverfejlesztéssel foglalkozna. A közvetlen főnököm, viszont minden funkció, design tervezési lépésben részt vett. Ő volt akivel a tényleges igényeket pontosítottam illetve fejlesztés közben felmerülő ötletekre megoldást kerestünk. Ennek oka részben az, volt, hogy az átültetni kívánt rendszert ő hozta létre és ő volt az egyedüli aki menedzselte azt. Az átadott szoftver két felületből áll. Az egyik felület az adminisztrálásra szolgál ahonnan menedzselhetjük az adatbázisban tárolt információkat, amíg a másik felület a tárolt információk megjelenítésért felelős. Az egyszerűség érdekében a teljes rendszer erőforrás igénye igen alacsony így akár egy átlagos PC is képes futatni a szükséges rendszereket. A megjelenítő felület tartalmaz minden olyan információt ami a későbbiekben új ötletet benyújtó dolgozók számára tanulságosak lehetnek, így növelve a rendszer hatékonyságát. Tudni fogják a dolgozók milyen ötleteket adtak be eddig, illetve melyik az a terület ahová érdemes ötletet kitalálni, mert nagy potenciállal bír a fejlesztések tekintetében. Valamint egy napra kész információt tartalmaz az általuk beadott ötletek státuszáról valamint díjazásáról. A megjelenítő felületet a program végső bemutatása után már további funkciók beépítésével fejleszteni akarta a vezetőség, ami a későbbi tervekben szerepel. Ennek okán a szoftverhez mellékelni fogok a cég számára a telepítés után egy teljes programkód leírást ami alapján könnyedén fejleszthető a rendszer.
oldal 46
13. Summary Developing of the software only the functionality was examine by my boss. The reason was at the industry no one know how to develop software. But my boss can help me at the planning phase. Because he made the system what i have to remake in the software. He know all of sensitive and important information what my database have to contain and save. The finished software have 2 platform. The first contain all administrator function. Where possible to modify the database stored information. The second platform made for good idea system feedback. It's running on the Kiosk what place in production area, and the employers can view all of their or other's ideas. They can check idea's status. It's important for the system efficiency improving. The workers know what ideas already released. And know what kind of idea missing for improving of production. After the software presentation the management have so many new function what they need in the future in the software. These functions make more efficiency the program administrator and user platform. Give more information for worker and make them better in thinking. After the installation i will make a develop guide for the person who will upgrade the software. It will contain all important information about the code and used technology.
oldal 47
14. Felhasznált szoftverek és kiegészítők 1. Microsoft Visual Studio C# 2010 2. Microsoft MYSQL SERVER 2012 3. Microsoft Silverlight 5 4. Microsoft Expression Blend 5. Adobe Photoshop CS6 Extended version (design tervezés)
James P Womack and Daniel Jones: Lean thinking ISBN 0-7432-4927-5
15. Irodalomjegyzék 1. James P Womack and Daniel Jones: Lean thinking , 2003 ISBN 0-7432-4927-5 2. http://www.coloplast.hu/(2014.05.05)
3. http://www.hungary.coloplast.com/(2014.05.05) 4. http://blogs.msdn.com/b/silverlight_sdk(2014.05.05) 5. http://www.unit.hu/(2014.05.05) 6. http://www.revolution.hu/(2014.05.05) 7. http://www.symboltech.hu/(2014.05.05)
16. Mellékletek CD melléklete: Adatbázis mappa Program mappa Good Idea A (adminisztrátori felület) Good Idea U (felhasználói felület) Szakdolgozat Szakdolgozat.docx Szakdolgozat.pdf oldal 48
Összegzés.docx Összegzés.pdf Summary.docx Summary.pdf Szükséges kiegészítők Silverlight5(böngésző kiegészítő)
oldal 49