Issuu on Google+

Handelsonderwijs Burgerschool Kattenstraat 7 – 8800 Roeselare – Tel. 051 26 46 66 – info@burgerschool.be

Geïntegreerde Proef

Pieter Deprez Studierichting TSO Informaticabeheer Schooljaar 2011-2012


Woord Vooraf Naar aanleiding van het laatste jaar van het secundair onderwijs in de richting Informaticabeheer, in de Burgerschool te Roeselare, heb ik deze Ge誰ntegreerde Proef (GP) geschreven. Deze GP is een belangrijk onderdeel van dit laatste jaar. Dit is tevens een voorbereiding op mijn latere studies of het werkleven. Een belangrijk deel van mijn GP was mijn stage. Ik liep stage bij Sercu NV gelegen in de Brugsesteenweg 380 te Roeselare, dit van 17 oktober tot en met 28 oktober 2011. Deze bundel bevat alle taken die we gedurende het schooljaar moesten maken. De belangrijkste taak was een fictief bedrijf opstarten. Voor dit bedrijf moesten we een volledige website maken. Er was gespecifieerd dat de site een dynamisch deel moest bevatten, zoals een webshop of een gastenboek. Ook de stage was een belangrijk deel van dit eindwerk. In deze bundel vindt u de blog die we moesten bijhouden tijdens onze stage terug. Deze blog bevat de taken die we gedurende onze stage moesten uitvoeren. In dit woord vooraf bedank ik graag mijn stagementor de heer. K Sercu en alle medewerkers van Sercu NV om hun goede begeleiding. Daarnaast zou ik de leerkrachten van Informaticabeheer namelijk de heer P. Vandamme( leerkracht Software en klastitularis), de heer A. Clauw (leerkracht Hardware), mevrouw H. Leenknegt(leerkracht Frans), mevrouw M. Verhaegen (leerkracht Nederlands) en mevrouw S. Werbrouck (leerkracht Engels) willen bedanken voor de hulp en de begeleiding die ze tijdens dit schooljaar hebben aangeboden om deze GP tot een goed einde te brengen.


Inhoudsopgave 1

Beschrijving stagebedrijf.......................................................................................................... 6

1.1

Situering en historiek ............................................................................................................... 6

1.2

Aard van de activiteiten ........................................................................................................... 6

1.3

Ondernemingsvorm ................................................................................................................. 7

1.4

Actieve regio ............................................................................................................................ 7

1.5

Kengetallen .............................................................................................................................. 7

1.6

Organogram ............................................................................................................................. 7

2

Stageactiviteiten ...................................................................................................................... 8

2.1

Eerste contact met het bedrijf ................................................................................................. 8

2.2

Mijn stageopdrachten.............................................................................................................. 8

2.2.1

Maandag 17/10/2012 .............................................................................................................. 8

2.2.2

Dinsdag 18/10/2012 ................................................................................................................ 8

2.2.3

Woensdag 19/10/2012 ............................................................................................................ 9

2.2.4

Donderdag 20/10/2012 ........................................................................................................... 9

2.2.5

Vrijdag 21/10/2012 .................................................................................................................. 9

2.2.6

Maandag 24/10/2011 .............................................................................................................. 9

2.2.7

Dinsdag 25/10/2011 .............................................................................................................. 10

2.2.8

Woensdag 26/10/2011 .......................................................................................................... 10

2.2.9

Donderdag 27/10/2011 ......................................................................................................... 10

2.2.10

Vrijdag 28/10/2011 ................................................................................................................ 10

2.3

A report about 3 different challenges you faced during your traineeship. ........................... 11

2.3.1

First challenge ........................................................................................................................ 11

2.3.2

Second challenge ................................................................................................................... 11

2.3.3

Third challenge ...................................................................................................................... 12

2.3.4

Design and develop a promotional brochure for the company you work with .................... 13

2.4

Klachtenbrief (Frans) ............................................................................................................. 14

2.5

Antwoord op de klachtenbrief (Frans) .................................................................................. 15

3

Bedrijfseconomische toepassing : ondernemingsplan .......................................................... 16

3.1

Financieel plan ....................................................................................................................... 16

3.1.1

investering financieringsplan ................................................................................................. 17

3.1.2

Resultaatrekening .................................................................................................................. 17

3.2

Marketinganalyse .................................................................................................................. 18

3.2.1

Product................................................................................................................................... 18

3.2.2

Prijs ........................................................................................................................................ 18


3.2.3

Plaats...................................................................................................................................... 18

3.2.4

Promotie ................................................................................................................................ 18

3.2.5

Personeel ............................................................................................................................... 18

4

Informatica in het stagebedrijf .............................................................................................. 19

4.1

Draw up a detailed overview of the company’s network structure (hardware and software) and provide an explanatory word list ............................................................ 19

4.1.1

Network structure ................................................................................................................. 19

4.1.2

Explanatory word list ............................................................................................................. 20

4.2

Hardware and software ......................................................................................................... 20

4.3

Netwerkstructuren ................................................................................................................ 20

4.3.1

Opbouw van het netwerk ...................................................................................................... 20

4.3.2

Protocollen............................................................................................................................. 21

4.3.3

Opleiding en helpdesk ........................................................................................................... 21

4.3.4

Beveiliging van het systeem................................................................................................... 21

4.3.5

Bedenkingen .......................................................................................................................... 21

5

Een informaticatoepassing uitwerken ................................................................................... 22

5.1

Probleemstelling .................................................................................................................... 22

5.2

Structuur en opbouw ............................................................................................................. 22

5.3

Documentatie project ............................................................................................................ 22

5.3.1

Homepagina (Index.aspx) ...................................................................................................... 22

5.3.2

Webshop (Webshop.aspx) ..................................................................................................... 23

5.3.3

Contact (Contact.htm) ........................................................................................................... 26

5.3.4

Winkelmand ........................................................................................................................... 27

5.3.5

Registratie .............................................................................................................................. 29

5.4

Bronvermelding gebruikte sites............................................................................................. 30

5.5

Statische website fictief bedrijf ............................................................................................. 31

5.6

Erd en Codd databank fictief bedrijf ...................................................................................... 33

5.6.1

Erd schema............................................................................................................................. 33

5.6.2

Codd databank ....................................................................................................................... 33

5.7

Databaseschema databank fictief bedrijf .............................................................................. 35

5.8

Handleiding website .............................................................................................................. 36

5.8.1

Home pagina .......................................................................................................................... 36

5.8.2

Webshop ................................................................................................................................ 36

5.8.3

Registreren............................................................................................................................. 37

5.8.4

Winkelmand ........................................................................................................................... 37


5.8.5

Contact ................................................................................................................................... 38

5.9

Code website ......................................................................................................................... 39

5.9.1

Index.aspx .............................................................................................................................. 39

5.9.2

Webshop.aspx ....................................................................................................................... 43

5.9.3

Webshop.aspx.vb................................................................................................................... 47

5.9.4

Registratie.aspx...................................................................................................................... 49

5.9.5

Registratie.aspx.vb................................................................................................................. 53

5.9.6

Contact.htm ........................................................................................................................... 54

5.9.7

Winkelmand.aspx .................................................................................................................. 56

5.9.8

Winkelmand.aspx.vb.............................................................................................................. 61

5.9.9

CSS ......................................................................................................................................... 63


1 Beschrijving stagebedrijf 1.1

Situering en historiek Ik liep mijn stage in het bedrijf NV Sercu in Roeselare. Het bedrijf werd opgestart in 1971 door de heer Paul Sercu. Dit is de vader van de bazen die het bedrijf nu in handen hebben: de heren Koen, Dirk en Wim Sercu. Koen was mijn stagementor. Hij is hoofd van de ICTafdeling van het bedrijf, Wim is hoofd van de aankoop- en verkoopafdeling (maar excl. alles wat met computers te maken heeft) en Dirk is hoofd van het atelier. Het bedrijf werd opgestart in de Ooststraat. Maar door enkele nadelen heeft Paul besloten om voor veranderingen te zorgen. Hij vond namelijk dat het moeilijk bereikbaar was voor de vrachtwagens van leveranciers en eventuele klanten. Er was ook helemaal geen plaats om het bedrijf uit te breiden. Ook vond hij dat er veel te weinig parkeermogelijkheden waren voor zijn klanten. Dus zocht hij een nieuw stukje grond, waar hij al deze problemen niet had. Zijn keuze viel op een terrein in het Mammoetcenter, Brugsesteenweg 380. Paul besefte wel, dat er aan deze oplossing ook andere risico’s verbonden waren. Namelijk het verlies van klanten. Eerst hielden ze het bedrijf op beide locaties open, maar later hebben ze toch het bedrijf in de Ooststraat gesloten. Waar Paul vroeger geen rekening mee hield is het feit dat er in het Mammoetcenter veel concurrentie kan zijn. Nu zijn er 2 firma’s die voornamelijk de concurrentie vormen:

Mediamarkt, omdat deze veel lager kan gaan in de vraagprijs voor de artikelen Photohall, omdat ze bijna identieke producten hebben. De grootste troef van deze firma is hoofdzakelijk de dienstverlening, die bovenstaande bedrijven niet zo uitgebreid aanbieden. Ook hebben hun medewerkers een zeer grondige kennis van hun producten. Nu zijn ze niet direct meer van plan om uit te breiden.

1.2

Aard van de activiteiten Dit is een handelszaak in kantoor – en bureau waren, daarnaast ze hebben ook een ICTafdeling. Deze afdeling staat in voor verkoop en herstelling van computers en printers. Ook hebben ze er een helpdesk, om problemen van op afstand te proberen op te lossen. Dit gebeurt hoofdzakelijk via Teamviewer. Teamviewer is een programma die het mogelijk maakt om mee te kijken op het scherm van de PC van de klant. Deze technologie maakt gebruik van het internet om de connectie te maken. Het bedrijf verkoopt hoofdzakelijk computers en computeraccessoires aan andere bedrijven. Hun assortiment bestaat vooral uit kantoorwaren, computers en toebehoren. Dit gaat van USB-sticks tot printers, van papierwaren tot schrijfgerei. Ook behandelen ze de automatisatie van de administratie van bedrijven. Ook herstellingen van computers nemen ze voor hun rekening. Dit laatste was de afdeling waar ik mijn stage mocht lopen. Deze firma biedt ook de mogelijkheid aan om kantoorwaren en computertoebehoren online te bestellen via de online shop Calipage.

Geïntegreerde Proef

6


1.3

Ondernemingsvorm Het is een naamloze vennootschap en dit is al altijd zo geweest. Er zijn namelijk meerdere vennoten, het opstartkapitaal bedraagt 61 500 EUR. De voordelen van een naamloze vennootschap:

• • •

Alle vennoten zijn slechts aansprakelijk ten belope van hun inbreng. Aandelen zijn in principe vrij overdraagbaar. Er kunnen winstbewijzen worden uitgegeven.

De nadelen van een naamloze vennootschap:

• • • •

1.4

Notariële akte nodig voor de oprichting van een NV. Minder goede waarborgen voor het behoud van het familiale karakter Vrij ingewikkelde besluitvorming en zware boekhoudkundige verplichtingen Hoog startkapitaal vereist.

Actieve regio Hun klantenbestand bestaat voornamelijk uit kleinhandelaars. Dit is namelijk een percentage van 80%. De overige 20% zijn particulieren. Ook de helft van hun klanten is gevestigd in een straal van 5 km rond Roeselare, 20% in een straal van 15 km, nog eens 20% in een straal van 20 km en 10% is gevestigd buiten West-Vlaanderen. Dus hun afzetgebied ligt voor 90% in West-Vlaanderen. Ze hebben ook geen klanten in het buitenland.

1.5

Kengetallen Op dit moment zijn er 12 werknemers en 3 werkgevers tewerkgesteld in NV Sercu. De mensen waar ik hoofdzakelijk mee moest samenwerken waren de werknemers op de afdeling ICT, in opdracht van Koen Sercu, die mijn stagementor was.

1.6

Organogram

Afbeelding 1 : Organogram Geïntegreerde Proef

7


2 Stageactiviteiten 2.1

Eerste contact met het bedrijf Ik heb mijn stage bedrijf “Sercu NV” relatief snel gevonden. Dit bedrijf is niet zover gelegen van mijn woonplaats. Ik ben persoonlijk naar het bedrijf toegestapt met de vraag of ik in hun bedrijf stage kon lopen. Voor het stage bedrijf was ik de eerste student die op de afdeling informatica stage liep. Daarom wou de bedrijfsleider ook eerst navragen aan het personeel of die geen bezwaren hadden om een student te begeleiden.

2.2

Mijn stageopdrachten

2.2.1

Maandag 17/10/2012 Mijn eerste stage dag begon om 8u15 met een rondleiding in het bedrijf en kennismaking met alle werknemers. Als eerste taak mocht ik mee naar klant om een all-in-one printer te installeren op een netwerk met 2 computers (XP en vista). Eenmaal terug op het bedrijf kreeg ik de taak om een programma (PCtools) te verwijderen. Wanneer je dit programma probeerde te verwijderen kwam er telkens een foutmelding op het scherm waardoor het verwijderen niet lukte. Dit moest ik oplossen door het programma opnieuw te downloaden en te installeren en daarna te verwijderen. Nadat de software succesvol verwijderd was, moest ik Norton Antivirus installeren. De volgende taak was een herstelling van een laptop (die regelmatig uitvalt). De medewerker vermoedde dat het probleem zich stelt door oververhitting, waardoor ik de opdracht kreeg om deze uit te blazen. Mijn laatste taak voor de middag was het aanmaken van een Ghost van een harde schijf. Na de middag moest ik deze PC opstarten en alle overtollige software verwijderen. Hierna ben ik begonnen met het installeren van combofix. Ik heb deze installatie niet kunnen afwerken omdat ik terug met een andere medewerker naar het Heilig Hart Ziekenhuis te Roeselare moest gaan. Daar moest een oud All-in-one toestel vervangen worden door een nieuw toestel. Dit toestel moest uiteraard ook nog geconfigureerd worden. Als laatste taak moest ik een harde schijf opnieuw in een computer plaatsen. Ik ben nog met een andere taak begonnen, maar ik heb deze niet kunnen afwerken omdat ik naar huis mocht vertrekken.

2.2.2

Dinsdag 18/10/2012 Toen ik in het bedrijf aankwam werd ik gevraagd om een printer uit het magazijn te halen en in de winkel te plaatsen. Daarna kreeg ik de opdracht om een herstelling aan een laptop uit te voeren. Bijna onmiddellijk daarna werd ik gevraagd om mee te gaan naar een klant waar de harde schijven van de back-up server moesten vervangen worden. Eenmaal terug op het bedrijf kon ik beginnen met de laptop te ontmantelen. Mijn opdracht was namelijk het fanboard van de laptop te vervangen door een nieuwe. Hier heb ik aan gewerkt tot de middag. Na de middag kon ik beginnen met het opnieuw samenstellen van de laptop. Tijdens deze opdracht moest ik opnieuw mee naar een klant. Ditmaal om een nieuwe pc te installeren en te configureren. Deze moest in het netwerk geplaatst worden en daarna verbonden worden met 2 netwerk-printers. Ook de mailbox moest geconfigureerd en overgezet (oude - nieuwe pc) worden. Daarna had ik nog ongeveer een uurtje om de laptop af te werken en te testen. Tijdens het testen werden geen problemen meer vastgesteld. De laptop is dus hersteld.

Geïntegreerde Proef

8


2.2.3

Woensdag 19/10/2012 Toen ik vandaag op het bedrijf aankwam werd ik meteen verzocht om mee te gaan naar een klant. Voor deze klant moest er een pc ge誰nstalleerd worden en in het netwerk geplaatst worden. Ook moesten er 2 netwerkprinters geconfigureerd worden op deze pc. We installeerden ook de gevraagde programma's voor hun bedrijf. Toen ik terug toekwam op het bedrijf werd ik verteld dat er een laptop een bluescreen gekregen had. Voor dit probleem te verhelpen moest ik proberen de HDD te ghosten. Dit lukte niet meteen maar uiteindelijk begon hij toch te ghosten, maar gezien de schijf heel oud is kan dit een lange tijd duren. Ondertussen moest ik op een andere laptop een Norton Antivirus installeren en daarna de klant verwittigen dat ze haar laptop kan komen afhalen. Mijn laatste taak voor de middag was het toetsenbord en touchpad van een laptop controleren. Dit moest ik doen door de laptop 10 keer opnieuw op te starten en telkens het toetsenbord en touchpad controleren. Na de middag kreeg ik als opdracht Windows 7, Office 2010 Professional Plus en een McAfee antivirus programma te installeren. Dit nam veel tijd in beslag, maar ondertussen moest ik ook nog een andere laptop van Internet Explorer 8 voorzien en zijn windows bijwerken.

2.2.4

Donderdag 20/10/2012 Als eerste taak, die het grootste deel van de dag in beslag nam, moest ik op 5 nieuwe laptops windows 7 installeren en configureren. 1 van de 5 laptops moest in het frans in orde gesteld worden. Daarna moest ik een levering klaarmaken van 7 pc's waaronder ook weer 1 in het frans. Voor deze levering moest ik de pc's een juiste naam geven en de productkey van het officepakket opzoeken aan de hand van de tool:produkey. Als laatste taak van de dag moest ik een nieuwe harde schijf plaatsen in een oude laptop en daarop windows XP installeren.

2.2.5

Vrijdag 21/10/2012 Als eerste taak moest ik een XP laptop volledig in orde stellen. Dit wil zeggen: drivers downloaden en installeren, windows updates uitvoeren. In een andere laptop die telkens uitviel na een tijdje van gebruik, moest ik nieuwe koelpasta aanbrengen. In de namiddag moest ik mee naar een klant om 3 pc's te installeren en configureren. Deze pc's moesten ook in het domein van het bedrijf toegevoegd worden. De printers moesten ook opnieuw op deze pc's ge誰nstalleerd worden. Van deze 3 pc's moest ik er 2 zelf installeren en in het domein plaatsen.

2.2.6

Maandag 24/10/2011 Toen ik vandaag toekwam op het bedrijf kreeg ik meteen al een opdracht om 4 IP camera's te installeren in de toonzaal van de winkel. De video's van deze 4 camera's moesten op een laptop zichtbaar zijn. Ik moest hiervoor gebruik maken van een router en een switch. Hiermee was ik het grootste deel van de voormiddag mee bezig. Juist voor de middag kreeg ik nog de taak om een laptop te zoeken met eenzelfde type ventilator als een andere. Dan moest ik de ventilator in de andere laptop plaatsen en die testen. Uiteindelijk bleek deze te werken. Na de middag had ik als opdracht een ingekomen levering in te scannen en in het magazijn te plaatsen. Deze opdracht kreeg ik omdat er op dat moment geen informatica taken waren. Ook dit duurde een hele tijd. Dan kwam er een laptop binnen waar er een Norton antivirus moest op ge誰nstalleerd worden.

Ge誰ntegreerde Proef

9


2.2.7

Dinsdag 25/10/2011 Als eerste taak vandaag moest ik een pc installeren. Ik heb windows 7, NORMAN antivirus, office 2007 enterprise en een printer moeten installeren op deze computer. Ook de pc moest aan de hand van Windows Updates volledig up to date gezet worden. Daarna moest ik een laptop opnieuw samenstellen, alles op zijn plaats steken en toevijzen. Juist voor de middag moest ik Service Pack 1 op een laptop installeren. Dit kon ik laten installeren tijdens mijn middagpauze. Na de middag was hij bijna klaar. Onmiddellijk daarna moest ik een wachtwoord verwijderen van een laptop omdat ze het niet wisten. Op diezelfde laptop moest ik ook de overtollige software verwijderen en de windows updates installeren. Dan begon ik aan mijn laatste taak voor vandaag, namelijk de camera's van gisteren aansluiten op een desktop. Die desktop onderaan de tafel bevestigen aan de hand van een CPU beugel. Ook de router en de switch moesten onderaan de tafel komen te hangen.

2.2.8

Woensdag 26/10/2011 Toen ik vandaag toekwam in het bedrijf moest ik beginnen met een laptop te herstellen. Ik vond het probleem in de logboeken van de computer. Dit was namelijk als de laptop in slaapstand ging, kon hij er niet meer uit zonder afgesloten te moeten worden. Dit probleem heb ik kunnen verhelpen met de slaapstand modus uit te schakelen. Ook heb ik geleerd hoe ik een wachtwoord van een Windows gebruiker kan verwijderen. Daarna kwam er een levering binnen en die moest ik dan controleren. Dit nam veel tijd in beslag omdat je ieder serienummer moet vergelijken met dat op de factuur. In de namiddag moest ik proberen een laptop alleen te herstellen. Maar dit kon echter niet omdat de laptop niet op het internet geraakte, dus kreeg ik een taak om alle drivers die een laptop nodig had te downloaden en te installeren. Toen ik dat gedaan had moest ik op ieder artikel van de levering een etiket plakken en alles op zijn plaats in de rekken plaatsen. Dit nam het grootste deel van de namiddag in. Als laatste taak mocht ik beginnen met de data van een oude harde schijf over te plaatsen naar een nieuwe.

2.2.9

Donderdag 27/10/2011 Toen ik vandaag aankwam in het bedrijf waren er opnieuw geen informaticataken. Dus moest ik een rek controleren of dat alle etiketten leesbaar waren en de niet-leesbare etiketten overplakken. Daarna werd ik gevraagd om nieuwe lichten te plaatsen maar dit ging niet omdat er een nieuwe kabel moest gelegd worden en dit kon ik niet doen. In de plaats daarvan moest ik de stock van de Brother printers controleren. Na de middag moest ik nog een beetje data overzetten van een oude PC naar een nieuwe. Daarna moest ik verder werken aan de IP-camera's. Er is een nieuwe camera toegekomen en die moest ook geconfigureerd worden. Dit was mijn laatste taak van vandaag omdat ik daarna informatie over het bedrijf heb gekregen naar aanleiding van mijn GP.

2.2.10

Vrijdag 28/10/2011 Vandaag is de laatste dag van deze leerrijke stage. Toen ik toekwam op het stagebedrijf werd ik direct verzocht mee te gaan naar een klant om verder te werken aan de installatie van hun domein. Deze installatie werd eerder deze stage al aangevat, maar tot op heden niet helemaal voltooid. Toen we toekwamen op het bedrijf van de klant zijn we direct begonnen met het exporteren van de mails naar een nieuwe pc. Dit was niet zo moeilijk, maar het vergde veel tijd. Ondertussen had ik tijd voor McAfee te installeren op een andere pc. Als dit gebeurd was moest ik gewoon kijken naar de verdere configuratie die uitgevoerd werd. Eenmaal terug op het bedrijf waren er geen informaticataken meer beschikbaar. Daarom kreeg ik dus kleine taken zoals etiketten plakken, rekken aanvullen en een lading printers in het magazijn plaatsen. Uiteindelijk kwam er nog een laatste informaticataak binnen. Deze mocht ik oplossen. De taak omvatte een integrale dataoverdracht van een oude pc naar een nieuwe pc.

Ge誰ntegreerde Proef

10


2.3

A report about 3 different challenges you faced during your traineeship.

2.3.1

First challenge The first challenge was replacing a hardware piece in the core of a lap top. Therefor I had to strip the lap top from every other part so I could reach the fan-board. What did you do to meet the challenge? I had to collect all the screws and store them so I couldn’t lose one. Then I had to take every part out of the lap top carefully. When I did that I had to replace the fan-board and put every piece back together. Did you meet the challenge? I took me a whole day to complete this challenge. When I tested the lap top everything was normal. The lap top worked without any problems.

2.3.2

Second challenge To complete another challenge I had to install 5 cameras. In order to do this, they had to be placed in a network. Therefore every camera needed its own IP address. What did you do to meet the challenge? I installed the router and the switch. When all the cameras were connected, I was able to configurate the cameras’ IP address . I had to show the live stream in the company so the clients can see how the cameras work. Did you meet the challenge? For the completion of this challenge, I needed some help from the employees because I had never made a network before.

GeĂŻntegreerde Proef

11


2.3.3

Third challenge The last challenge I had to complete was configuring a new computer and add it into the domain of a client. After that, I had to make sure the client have all the rights on the network. What did you do to meet the challenge? To complete the challenge, they showed me new way to add the computer in the domain. The new way I learnt is faster than the one we learnt at school. Did you meet the challenge? I succeeded the challenge with some help of the employee who had to install the computers. When we left the client’s company, the client could do anything he needed to do

GeĂŻntegreerde Proef

12


2.3.4

Design and develop a promotional brochure for the company you work with

Ge誰ntegreerde Proef

13


2.4

Klachtenbrief (Frans) Pieter Deprez Onledeplein 12 8800 ROESELARE

Sercu NV Brugsesteenweg 380 8800 ROESELARE

votre message du

vos réf.

nos réf.

Roeselare 2012-02-08

Réclamation

Madame, Monsieur Le 14 janvier dernier, j’ai acheté un laptop de Q-Force Duranote 7560 Series. Le clavier de ce laptop ne fonctionne pas très bien, c’est-à-dire les touches a, d, o et g. Quand j’allume le laptop, le clavier fonctionne environ 5 minutes, ensuite ces lettres ne fonctionnent plus. J’utilise un clavier externe maintenant mais le prix de €899,00 fait supposer un laptop d’une excellente qualité. Et quand je suis à l’école, le clavier externe est très inconfortable. Par conséquent, puis-je vous demander de m’ échanger cet article ou de le reprendre? Vous pourriez toujours envoyer un représentant pour qu’il constate les défauts. Je vous remercie d’avance de votre compréhension. Dans l’attente d’une réponse rapide, je vous prie d’agréer, Madame, Monsieur, mes meilleures salutations.

Pieter Deprez

Geïntegreerde Proef

14


2.5

Antwoord op de klachtenbrief (Frans) SERCU NV Brugsesteenweg 380 8800 ROULERS

Deprez Pieter Onledeplein 12 8800 ROULERS

votre lettre du 2012-02-08

vos réf.

nos réf.

Roulers 2012-03-01

Réponse réclamation du 8 février

Monsieur Nous avons bien reçu votre courrier nous informant que vous avez acheté un article présentant des défauts. Malgré les contrôles effectués, nous n’avons pas pu empêcher une perte de qualité de certains produits due à une panne sur la chaîne de fabrication. Veuillez nous excuser de l’ennui que vous a causé cet incident. Nous reprendrons le laptop présentant des défauts, et nous vous expédierons un autre le plus vite possible ! En espérant que cet incident ne nuira pas à nos bonnes relations, nous vous prions d’agréer, Monsieur, nos meilleures salutations.

Koen Sercu Directeur

Geïntegreerde Proef

15


3 Bedrijfseconomische toepassing : ondernemingsplan Het opstellen van een ondernemingsplan is cruciaal in de voorbereiding van de start van je zaak. In een ondernemingsplan tracht je op voorhand in te schatten of de markt voor je product of dienst groot genoeg is, hoe je die markt best benadert en of je over voldoende financiële middelen beschikt om je project te financieren. Uit je ondernemingsplan zal uiteindelijk blijken of je project haalbaar is en welke strategie je het meeste kans op succes biedt. Een ondernemingsplan bestaat uit verschillende onderdelen: • • • • •

de projectbeschrijving de voorstelling de marktanalyse het marketingplan financieel plan

In elk van deze onderdelen kijkt men naar de specifieke kant van de onderneming, maar je zal ondervinden dat deze nauw met elkaar verbonden zijn. Wij zullen ons beperken tot het opstellen van een financieel plan en een marketingplan.

3.1

Financieel plan We maken een financieel plan voor een fictieve BVBA met 3 bestuurders. Het doel van deze onderneming is het leveren van diensten en goederen op het gebied van hard- en software. Ze verkopen zowel aan particulieren als aan bedrijven. Voor de financiering doen ze beroep op het Participatiefonds en kiezen ze ook voor een investeringskrediet. Ze kunnen zelf 6200,00 EUR ter beschikking stellen aan hun onderneming. Ze brengen ook een wagen in ter waarde van 6000,00 EUR.

Geïntegreerde Proef

16


3.1.1

investering financieringsplan

Balans INVESTERINGSPLAN

vaste activa

FINANCIERINGSPLAN bedrag

Eigen Middelen

bedrag 6.200,00

inbreng kapitaal Kantoormeubilair Kantoormachines Aankoop auto's Waarborgen (bijv. huurwaarborg) totaal vaste activa

1.245,66 2.160,97 inbreng in natura 6.000,00 4.500,00 13.906,63

vlottende activa klantenvorderingen voorraad totaal vlottende activa

TOTAAL INVESTERINGEN

3.1.2

12.200,00

totaal eigen middelen

VVLT starteo 29.944,00 lening bank 25.000,00 54.944,00

liquide middelen bank /kas

6.000,00

40.000,00 34.995,82

totaal vreemd vermogen lang 74.995,82

VVKT leveranciers 23.349,37 kaskrediet bank schulden vervallen binnen jaar totaal kort vreemd vermogen 92.200,00

TOTAAL FINANCIERING

0,00 0,00 5.004,18 5.004,18 92.200,00

Resultaatrekening Rentabiliteitsvooruitzichten verwachte verkopen verwachte aankopen (grondstoffen of handelsgoederen) brutobedrijfswinst (1-2) bedrijfskosten: Huur Water, gas, electriciteit, verwarming Kosten voertuig (verzekeringen, taksen, brandstof, herstellingen) Bureaukosten, onderhoud materieel, telefoon, portokosten Reclamekosten (cfr. Marketingplan) Bezoldiging bestuurders Verzekeringen, brand, B.A. Sociale verzekeringen zelfstandige Afschrijvingen Andere diverse kosten Totaal bedrijfskosten (4 tot 13) Netto-bedrijfswinst (3-14) FinanciĂŤle lasten, intresten op leningen Belastbaar resultaat (15-16) Belastingen Winst van het boekjaar

GeĂŻntegreerde Proef

Jaar 1 364.300,00 82.000,00 282.300,00 18.000,00 1.200,00 2.000,00 1.000,00 1.500,00 75.000,00 500,00 16.500,00 7.237,17 122.937,17 159.362,83 2.825,10 156.537,73 53.222,83 103.314,90 17


3.2

Marketinganalyse

3.2.1

Product Ons bedrijf “Advanced Computers” zal vooral gespecialiseerd zijn in het aan- en verkopen van computers en computertoebehoren. Naast de hardware zal er ook een beperkt aanbod van software in ons productgamma opgenomen worden. De merken die wij zullen verdelen zijn de volgende: • • •

3.2.2

Q-force Dell HP

Prijs Gezien onze firma vooral gebaseerd is op aan – en verkoop van goederen zijn we wat prijssetting een beetje afhankelijk van onze leveranciers. We moeten dus onze winst zien te realiseren door verkoop per percentage. Om onze kosten zo minimaal mogelijk te houden, zullen we werken met een beperkte voorraad. Door goede afspraken met onze leveranciers te maken, proberen we toch een aanvaardbare leveringstermijn te kunnen garanderen aan onze klanten.

3.2.3

Plaats Onze winkel bevindt zich in een gehuurd pand in het centrum van Roeselare-Beveren. In onze onmiddellijke omgeving bevinden zich een aantal computerwinkels. Wij zullen proberen de lokale markt te winnen door een goede en snelle service na verkoop aan te bieden. Om toch een ruimer publiek aan te spreken hebben we op onze website een webshop voorzien. Daar kunnen de klanten na registratie een bestelling plaatsen die dan ofwel kan afgehaald worden in ons bedrijf ofwel thuis geleverd worden. Dit kan gratis gebeuren binnen een straal van 15 km.

3.2.4

Promotie Een eerste vorm van promotie zullen we proberen te maken aan de hand van onze web site. Hiervoor is het essentieel dat onze website gemakkelijk en snel te vinden is via de meest gebruikte zoekmachines. We voorzien ook dat we iedere maand een nieuwe promotieartikel te hebben. Deze zullen we verspreiden aan de hand van flyers. De flyers zullen in groot Roeselare verspreid worden. Deze flyers zullen ook een verwijzing maken naar onze website. Er zal ook 1x per jaar een opendeurdag voorzien worden. Door middel van deze opendeurdag hopen we ook meer naambekendheid te verwerven, evenals onze klanten te laten kennismaken met onze producten en onze service. In een tweede fase hopen we promotie te kunnen maken door sponsoring.

3.2.5

Personeel Advanced Computers richt zich op kleine bedrijven in de onmiddellijke omgeving maar vooral op de lokale markt, de nabije buurtbewoners die een computer nodig hebben of waarvan hun computer moet hersteld worden. De doelgroep zal bestaan uit studenten die naar het hoger onderwijs gaan studeren en volwassenen. Als speciaalzaak hebben we een goede service die het koopgedrag van de consumenten zou moeten beïnvloeden. Het contact met de leveranciers worden vooral telefonisch en via vertegenwoordigers onderhouden. Ook zal de communicatie naar de klanten toe verlopen met een vertegenwoordiger. We hopen goede banden te houden met de leveranciers en de klanten, om zo de verkoop te stimuleren.

Geïntegreerde Proef

18


4 Informatica in het stagebedrijf 4.1

Draw up a detailed overview of the company’s network structure (hardware and software) and provide an explanatory word list

4.1.1

Network structure

Afbeelding 2 :Netwerkstructuur

GeĂŻntegreerde Proef

19


4.1.2

4.2

Explanatory word list •

Watchguard This is a device that protects your network from viruses, spam and hack.

Mailmarshal This is a program that prevents your mailserver from being full of spammails.

Webmarshal Webmarshal is software that controls user access to certain types of sites, downloads and bandwidth use.

SAN This is a way to storage your data on a network. SAN means Storage Area Network.

Synology NVR NVR stands for Network Video Recorder. This is a place where you can store your video’s that were recorded from the surveillance camera’s.

Hardware and software The company uses pc’s from the mark I-Pro. On those computers they have a Windows 7 Pro 64 bit operation system installed. The other hardware they use goes from printers to cameras. Most of their printers are Brother printers, but they also use Kyocera MultiFunctional. These are all network printers because it’s necessary that multiple computers are able to print on those printers. For the surveillance they use Sony IP cameras. You have to give those cameras a fixed IP-address so you can look at their videos through the network. The supervisor Koen Sercu can check those videos from anywhere by using his Blackberry or his I-Pad. These videos are also stored on a Synology Video recorder. For scanning mails and documents like word-files, electronic documents and also invoices and offers, they use a Watchguard X550e. As office packet, they use Office 2007 Enterprise. The accounting software they use is Cubic Exact Software. To archive several types of documents they use DIAS. This is a service brought by the company C&C Oudenaarde. This software is built with 4 elements: document management, workflow management, relationship management and project management.

4.3 4.3.1

Netwerkstructuren Opbouw van het netwerk Het netwerk van de firma bestaat uit 2 delen: het fysiek netwerk en het virtueel netwerk. Als eerste bespreek ik het fysiek gedeelte van het netwerk. De basis van het fysiek netwerk is 1 switch waar 18 pc’s, 10 multifunctionele printers, 1 backup server, 2 ESXI Host servers, 1 SQL server, 1 UPS en 1 andere switch voor beveiliging via camera’s en het opslaan van de video’s aan gekoppeld zijn. Deze switch maakt ook verbinding met de Watchguard X550e. Deze staat op zijn beurt in verbinding met een FTP-server en het internet. Van de backup server worden iedere dag de tapes gewisseld en om veiligheidsredenen worden deze niet opgeslagen in het bedrijf zelf. Het virtueel netwerk wordt aan de hand van de 2 ESXI host servers opgebouwd. Met deze 2 servers maken volgende apparaten op hun beurt verbinding: 1 switch, 1 terminal server, 1 data server en 1 email server. De switch staat in verbinding met een SAN, waarvan de schijven in RAID staan. De terminal server laat toe om verbinding te maken met het netwerk via pc’s binnen en buiten het bedrijf.

Geïntegreerde Proef

20


Om hun mailserver te beveiligen hebben ze Mailmarshal en Webmarshal geïnstalleerd. Mailmarshal dient om spammail tegen te houden. Webmarshal is een soort proxyserver die de mogelijk biedt aan de beheerder om het internet van zijn werknemers te beperken (bv: tijdens de werkuren wordt Facebook niet toegelaten). De communicatie met de werknemers die klanten bezoeken gebeurt hoofdzakelijk via de blackberry enterprise server express. Dit laat hen toe om mails te ontvangen en verzenden van en naar het bedrijf via hun blackberry. In het bedrijf is er ook een intranet aanwezig. 4.3.2

Protocollen Er wordt gebruik gemaakt van volgende protocollen: •

• • •

• 4.3.3

Voor het maken van een VPN: o PPTP o IPSEC Mail server: o SMTP Terminal server: o RDP Andere: o SMB (shares) o LPD (printers) SNMP

Opleiding en helpdesk Ik heb niet vernomen dat de werknemers in een opleidingsprogramma zijn opgenomen. Twee van de medewerkers staan in voor de helpdesk naar klanten toe. De problemen bij de klant worden zoveel mogelijk telefonisch opgelost. Indien dit echt niet lukt wordt er via teamviewer verbinding gemaakt met de pc van de klant en proberen ze zo het probleem te verhelpen.

4.3.4

Beveiliging van het systeem Het netwerk zelf wordt beveiligd via watchguard. Als er stroompanne is neemt de UPS tijdelijk stroomvoorziening op zich. Deze laat toe dat indien nodig de informaticasystemen op een correcte manier kunnen afgesloten worden. Binnen het bedrijf wordt er wel gewerkt met wachtwoorden. Er werd ervoor gekozen dat alle personeelsleden hetzelfde wachtwoord hebben. Enkel de 3 bedrijfsleiders hebben hun eigen paswoord. Er is dan ook geen wachtwoord policy.

4.3.5

Bedenkingen Het enigste nadeel van het systeem vind ik dat er geen wachtwoord policy gebruikt wordt. De argumentering van Sercu is dat wanneer er iemand afwezig is, steeds het wachtwoord gekend is om aan te loggen op zijn pc.

Geïntegreerde Proef

21


5 Een informaticatoepassing uitwerken 5.1

Probleemstelling De opdracht was een website te maken van een fictief informaticabedrijf. Dit heb ik gerealiseerd door de volgende verschillende stappen te doorlopen : • • •

5.2

Database ontwerpen Website (layout) ontwerpen en opbouwen CSS Uitwerken website

Structuur en opbouw Mijn website bevat een 5-tal pagina’s. Deze zijn allemaal op dezelfde manier opgebouwd. Iedere pagina is opgedeeld in 2 grote delen nl. Hoofding en Detail. In de hoofding vind je naast de naam en het logo van het bedrijf ook het menu. De navigatie binnen het menu is opgebouwd door middel van hyperlinks.

5.3

Documentatie project

5.3.1

Homepagina (Index.aspx)

Afbeelding 3 :Design Index.aspx

Design van de pagina Deze pagina is opgebouwd in 3 delen: • • •

Slideshow Korte toelichting over het bedrijf Gegevens en foto van de werknemers van het bedrijf

Geïntegreerde Proef

22


De slideshow: Er zijn steeds 5 foto’s zichtbaar in onze slideshow. Je kan navigeren in de slideshow aan de hand van de pijltjes links en rechts. De foto’s van de slideshow bevatten producten van de webshop en zijn is bedoeld om de klanten een vlugge kijk te geven in ons assortiment. De inhoud van de slideshow vind je terug in het bestand “dynamic_ajax.txt”. Door dit bestand te wijzigen, wordt de inhoud van de slideshow gewijzigd. De inhoud van dit bestand moet voldoen aan volgende criteria: • • •

1 record per foto Volledig path met naam van de foto in jpg formaat De lijn wordt afgesloten met een “|”, uitgezonderd de laatste lijn.

De gegevens van de werknemers : Om de gegevens van iedere werknemer voor te stellen, wordt gebruik gemaakt van een individuele “detailsview”. Deze zijn gelinkt met de tabel tblPersoneel van de database via een “connectionstring”. Het veld waar de foto in geplaatst wordt, wordt omgezet naar een “template field”. Daarna wordt de binding van dit template field aangepast naar ImageUrl. De costum binding van deze url is de volgende: “Eval("Foto", "~/WEB/images/{0}")”. 5.3.2

Webshop (Webshop.aspx)

Afbeelding 4 : Design webshop.aspx

Basisscherm Om een gestructureerde webshop de maken hebben we onze producten ingedeeld in verschillende categorieën. Daardoor wordt bij het laden van deze pagina enkel een dropdownlist vane verschillende categorieën getoond. Na het selecteren van de gewenste categorie, wordt er een gridview weergegeven die alle producten van deze categorie omvat. Inloggen Deze pagina is echter beschermd door middel van een inlogsysteem. Dit wil zeggen dat enkel geregistreerde klanten in staat zijn om producten aan te kopen via de webshop. Indien je nog geen klant bent, dan dien je je eerst te registreren. Dit kan aan de hand van de pagina “Registratie.aspx” (zie 5.3.5 Registratie). Als de klant al bestaat in ons klantenbestand, dan kan hij onmiddellijk inloggen via voorziene invoervakken. Als de klant op de knop “Aanmelden” klikt, wordt een controle op de ingevoerde waarden uitgevoerd. Geïntegreerde Proef

23


Controle login Dim strDelete As String Session("user") = txtID.Text Session("Paswoord") = txtPW.Text If gdvLogin.Rows.Count = 0 Then MsgBox("Login is onjuist", MsgBoxStyle.OkOnly, "Gegevens niet correct") Session("LoginOK") = False Else If gdvLogin.Rows(0).Cells(1).Text = txtPW.Text Then Session("KlantID") = gdvLogin.Rows(0).Cells(2).Text strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & _ gdvLogin.Rows(0).Cells(2).Text & " )" dtsDeleteWinkel.DeleteCommand = strDelete 'invoegen tabel dtsDeleteWinkel.Delete() Session("LoginOK") = True lblNaam.Text = txtID.Text pnlLogbar.Visible = False pnlWelkom.Visible = True Else MsgBox("Paswoord is onjuist", MsgBoxStyle.OkOnly, "Gegevens niet correct") Session("LoginOK") = False End If End If

Er wordt gebruik gemaakt van een onzichtbare gridview om de ingevoerde gegevens te controleren. Deze gridview wordt opgevuld a.h.v. een datasource gelinkt aan de tabel” tblKlanten”. Door middel van de login door te geven aan de session variabele “user”, worden enkel de gegevens met betrekking tot die login geladen. Indien het resultaat in de datasource leeg is, dan werd er een ongeldige login ingegeven. Wanneer de login gekend is, wordt vervolgens het paswoord op zijn correctheid gecontroleerd. Wanneer beide ingevulde waardes correct zijn, wordt het winkelmandje leeggemaakt. Dit gebeurt om ervoor te zorgen dat de klant steeds met een lege winkelmand begint. Dit zal gebeuren a.h.v. AccessDataSource DtsDeleteWinkel. strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & gdvLogin.Rows(0).Cells(2).Text & " )" dtsDeleteWinkel.DeleteCommand = strDelete ‘invoegen tabel dtsDeleteWinkel.Delete()

Ook wordt de login bar vervangen door onderstaande lijn.

Afbeelding 5 :Melding “Welkom”

Geïntegreerde Proef

24


Weergeven producten van geselecteerde categorie De producten van de geselecteerde categorie, worden weergegeven a.h.v. een gridview die gelinkt is aan de tabel “tblProducten”. Door de gekozen categorie toe te kennen aan de session variabele “Categorie” worden enkel de producten van die categorie getoond in onze gridview. Per product wordt naast een foto ook nog de volgende gegevens weergegeven • • • • • •

productId productnaam product omschrijving verkoopprijs BTW tarief Knop “Voeg toe aan winkelmand”

Door op de knop “Voeg toe aan winkelmand” te klikken wordt uw gekozen product toegevoegd aan uw winkelmand. Dit gebeurt door een record toe te voegen aan de tabel “tblWinkelmand” a.h.v. een AccessDataSource.dtsWinkel. Deze bevat de volgende SQL Code Dim strSql As String strSql = "Insert Into tblWinkelmand(KlantID, ProductID, TotaalBedrag) Values('" & gdvLogin.Rows(0).Cells(2).Text & "' , '" & grvWebshop.SelectedRow.Cells(1).Text & "' , '" & _ grvWebshop.SelectedRow.Cells(4).Text & "')" dtsWinkel.InsertCommand = strSql 'invoegen tabel dtsWinkel.Insert()

Gezien het mogelijk moet zijn dat er meerdere klanten tegelijk een bestelling aanvragen wordt ook het KlantID per besteld product opgeslagen. De hoeveelheid wordt standaard op 1 geplaatst. De klant zal op de pagina “Winkelmand” zelf de hoeveelheid kunnen bepalen.

Geïntegreerde Proef

25


5.3.3

Contact (Contact.htm)

Afbeelding 6 :Design Contact.htm

Gezien deze pagina geen dynamisch onderdeel bevat is deze pagina ontworpen op basis van “Htm”. Deze pagina bevat een HTML tabel met de openingsuren van onze winkel. Daarnaast vind je een kaartje met de ligging van onze zaak terug. Door op de link “Contacteer ons” te klikken wordt automatisch “Outlook” geopend. In de adresbalk is reeds ons email adres ingevuld. Door op de link “Grotere kaart weergeven” te klikken wordt er een webpagina geopend met Google Maps waar de locatie op aangeduid is.

Geïntegreerde Proef

26


5.3.4

Winkelmand

Afbeelding 7 :Design winkelmand.aspx

Wanneer de winkelmand geladen wordt, wordt een gridview opgevuld met de gegevens voor die klant die zich bevinden in de tabel tblWinkelmand. Per besteld product worden volgende gegevens weergeven : foto, productID, de productnaam, de productomschrijving, de verkoopprijs per artikel, het btw-tarief. Gezien de klant geen hoeveelheid kan opgeven bij het selecteren van het product krijgt hij hier de kans de hoeveelheid te wijzigen. Het totaalbedrag wordt onmiddellijk herrekend. Dit zelfde geld eveneens voor het totaal bedrag van het order. Hoeveelheid wijzigen Om het mogelijk te maken om de hoeveelheid te wijzigen, hebben we deze cel omgezet naar een templatefield, waarin we een tekstvak hebben geplaatst. Om bij het wijzigen een “onchange” event mogelijk te maken hebben we de “property” “EnableAutoPostBack” op true geplaatst. Dim aantal As Integer Dim strUpdate As String For inti = 0 To gdvOverzicht.Rows.Count - 1 'Herberekenen totaal bedrag per product aantal = CType(gdvOverzicht.Rows(inti).FindControl("txtHoeveelheid"), TextBox).Text gdvOverzicht.Rows(inti).Cells(8).Text = aantal * _ gdvOverzicht.Rows(inti).Cells(5).Text ' Aanpassen tabel strUpdate = "UPDATE tblWinkelmand SET Hoeveelheid=" & aantal & " WHERE KlantId=" & Session("KlantID") & " AND ProductID = " & gdvOverzicht.Rows(inti).Cells(2).Text dtsOverzicht.UpdateCommand = strUpdate dtsOverzicht.Update() strUpdate = "UPDATE tblWinkelmand SET TotaalBedrag='" & _ gdvOverzicht.Rows(inti).Cells(8).Text & "' WHERE KlantId=" & Session("KlantID") & " AND ProductID = " & gdvOverzicht.Rows(inti).Cells(2).Text dtsOverzicht.UpdateCommand = strUpdate dtsOverzicht.Update() Next ' herberekenen totaal frvTotaalPrijs.DataBind()

Geïntegreerde Proef

27


Product schrappen Door te klikken op de knop “Verwijder uit lijst” wordt het mogelijk om een product uit de winkelmand te verwijderen. Dit gebeurt door het geselecteerde product te verwijderen uit de tabel tblWinkelmand, daarna wordt het scherm automatisch gerefreshed door middel van de gridview opnieuw te laden. Protected Sub gdvOverzicht_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles gdvOverzicht.SelectedIndexChanged Session("ProductID") = gdvOverzicht.SelectedRow.Cells(2).Text LeegmakenWinkelmand() gdvOverzicht.DataBind() frvTotaalPrijs.DataBind() End Sub Private Sub LeegmakenWinkelmand() Dim strDelete As String strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & Session("KlantID") & " AND ProductID = " & Session("ProductID") & ")" dtsVerwijderProduct.DeleteCommand = strDelete 'schrappen in tabel dtsVerwijderProduct.Delete() End Sub

Order bevestigen Het order wordt geplaatst wanneer de klant op de knop “Bevestig order” klikt. Daarna verschijnt de melding “Uw order werd succesvol geplaatst”. Op dit ogenblik is de inhoud van de winkelmand overgeschreven naar de tabellen van de orders en wordt de winkelmand terug leeggemaakt.

Afbeelding 8 :Melding na plaatsen order

Dim strOrderLijn As String Dim strOrderInfo As String Dim aantal As Integer Dim EenheidsPrijs As String strOrderInfo = "INSERT INTO tblOrderInfo(KlantID) Values(" & Session("KlantID") & ")" dtsOrderInfo.InsertCommand = strOrderInfo 'invoegen Order dtsOrderInfo.Insert() For inti = 0 To gdvOverzicht.Rows.Count - 1 Session("ProductID") = gdvOverzicht.Rows(inti).Cells(2).Text aantal = CType(gdvOverzicht.Rows(inti).FindControl("txtHoeveelheid"), TextBox).Text EenheidsPrijs = CStr(gdvOverzicht.Rows(inti).Cells(5).Text) strOrderLijn = "INSERT INTO tblOrderLijnen(OrderId, ProductId, Aantal, Prijs) Values( " & GridView1.Rows(0).Cells(0).Text & " ," & gdvOverzicht.Rows(inti).Cells(2).Text & " , " & aantal & " ,'" & EenheidsPrijs & "')" dtsOrderLijnen.InsertCommand = strOrderLijn ' invoegen productlijn in orderlijnen dtsOrderLijnen.Insert() LeegmakenWinkelmand() Next gdvOverzicht.DataBind() frvTotaalPrijs.DataBind() lblAntwoord.Text = "Uw order werd succesvol geplaatst" frvTotaalPrijs.Visible = False btnBevestig.Visible = False Geïntegreerde Proef

28


5.3.5

Registratie

Afbeelding 9 : Design Registratie.aspx

Op deze pagina staan verschillende tekstvakken die ons de nodige informatie over onze klant moeten verschaffen. Ieder tekstvak is verplicht in te vullen en wordt gecontroleerd a.h.v. een RequiredFieldValidator. Het veld “E-mailadres” bevat naast een RequiredFieldValidator ook nog een RegularExpressionValidator. Dit om de opbouw van het email adres te controleren. Wanneer de klant op de knop Registreren klikt, wordt naast de bovenstaande validators ook gecontroleerd of de ingegeven login uniek is in de tabel tblKlanten. Hiervoor wordt een onzichtbare gridview gebruikt die wordt opgevuld a.h.v. een datasource gelinkt aan de tabel” tblKlanten”. Door middel van de login door te geven aan de session variabele “user”, wordt enkel de login geladen indien deze reeds voorkomt in onze database. Enkel indien deze gridview leeg is, werd er een geldige login ingegeven. Wanneer een geldige login wordt ingegeven, worden alle ingevulde gegevens weggeschreven naar de tabel tblKlanten en worden alle tekstvakken leeggemaakt. Het wegschrijven naar onze tabel gebeurt door middel van een datasource dtsKlanten. Dim strSql As String If (gdvControleLogIn.Rows.Count > 0) Then MsgBox("Login is reeds in gebruik. Probeer opnieuw", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Login in gebruik") txtLogin.Text = "" Else strSql = "Insert Into tblKlanten (Naam, Voornaam, Adres, Postcode, Woonplaats, Telefoonnummer, Email, Login, Paswoord) Values('" & txtNaam.Text & "' , '" & txtVoornaam.Text & "' , '" & txtAdres.Text & "' , '" & txtPostcode.Text & "' , '" & txtWoonplaats.Text & "' , '" & txtTel.Text & "' , '" & txtEmail.Text & "' , '" & txtLogin.Text & "' , '" & txtPaswoord.Text & "')" dtsKlanten.InsertCommand = strSql 'invoegen tabel dtsKlanten.Insert() MsgBox("U registratie is correct verlopen", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Registratie compleet") Reset() End If Geïntegreerde Proef

29


5.4

Bronvermelding gebruikte sites Het ontwerp heb ikzelf opgemaakt. Ik heb slechts beperkt gebruik gemaakt van het internet nl voor de slideshow en op de momenten dat ik bepaalde technische problemen ondervond. Website Slideshow: http://www.catswhocode.com/blog/top-10-javascript-slideshows-carousels-and-sliders Website technische problemen: http://forums.asp.net/ URL van mijn gestelde vragen: http://forums.asp.net/p/1792998/4933006.aspx/1?Re+Getting+value+from+a+template+fi eld http://forums.asp.net/t/1792995.aspx/1?retreiving+autonumber+from+accessdatabase http://forums.asp.net/t/1792997.aspx/1?Error+when+placing+site+on+internet

Ge誰ntegreerde Proef

30


5.5

Statische website fictief bedrijf Afbeelding 1 : Index.aspx

Afbeelding 10 :Index.aspx

Webshop.aspx

Afbeelding 11 :Webshop.aspx

Ge誰ntegreerde Proef

31


Contact.htm

Afbeelding 12 :Contact.htm

Winkelmand.aspx

Afbeelding 13 :Winkelmand.aspx

Registratie

Afbeelding 14 :Registratie.aspx Ge誰ntegreerde Proef

32


5.6

Erd en Codd databank fictief bedrijf

5.6.1

Erd schema

5.6.2

Codd databank

Afbeelding 15 :Erd schema fictief bedrijf

Nulde Normaalvorm:

CategorieID CategorieNaam KlantID Naam Voornaam Adres Email Login Paswoord Postcode Woonplaats Telefoonnummer Leverancier Bedrijf Adres Postcode Woonplaats OpenstaandSaldo OrderId KlantId Betaald PersoneelsID OrderId ProductId Prijs Aantal Korting PersoneelsID Naam Voornaam Adres Postcode Woonplaats Telefoonnummer

Ge誰ntegreerde Proef

Gsmnummer Geboortedatum Datum In Dienst Functie Bijkomende info Foto ProductID ProductNaam ProductOmschrijving Aankoopprijs Verkoopprijs BTW-tarief LeverancierID Voorraad CategorieID UitAssortiment Foto Id KlantID ProductID Hoeveelheid TotaalBedrag

33


Eerste Normaalvorm

CategorieID CategorieNaam KlantID Email Login Paswoord Naam Voornaam Adres Postcode Woonplaats Telefoonnummer Leverancier Bedrijf Adres Postcode Woonplaats OpenstaandSaldo OrderId KlantId Betaald OrderId KlantId Betaald PersoneelsID ProductID Prijs Aantal Korting

Ge誰ntegreerde Proef

PersoneelsID Naam Voornaam Adres Postcode Woonplaats Telefoonnummer Gsmnummer Geboortedatum Datum In Dienst Functie Bijkomende info Foto ProductID ProductNaam ProductOmschrijving Aankoopprijs Verkoopprijs BTW-tarief LeverancierID Voorraad CategorieID UitAssortiment Foto Id KlantID ProductID Hoeveelheid TotaalBedrag

34


Tweede normaalvorm CategorieID CategorieNaam KlantID Naam Voornaam Adres Postcode Woonplaats Telefoonnummer Email Login Paswoord Leverancier Bedrijf Adres Postcode Woonplaats OpenstaandSaldo OrderId KlantId Betaald OrderId KlantId Betaald PersoneelsID OrderId ProductId Prijs Aantal Korting

5.7

PersoneelsID Naam Voornaam Adres Postcode Woonplaats Telefoonnummer Gsmnummer Geboortedatum Datum In Dienst Functie Bijkomende info Foto ProductID ProductNaam ProductOmschrijving Aankoopprijs Verkoopprijs BTW-tarief LeverancierID Voorraad CategorieID UitAssortiment Foto Id KlantID ProductID Hoeveelheid TotaalBedrag

Databaseschema databank fictief bedrijf

Afbeelding 16 :Databaseschema fictief bedrijf

Ge誰ntegreerde Proef

35


5.8

Handleiding website Wanneer u naar de website gaat, komt u steeds terecht op onze home pagina. Bovenaan de pagina vindt u de menu balk. Door op de woorden te klikken kunt u navigeren binnen onze website

5.8.1

Home pagina Op deze pagina vindt u ook algemene informatie over ons bedrijf en personeel. Naast de algemene info kunt u reeds een blik werpen op onze nieuwste producten. U kunt bladeren door de verschillende producten door te drukken op de pijltjes links en rechts.

Afbeelding 17 :Index.aspx

5.8.2

Webshop Deze pagina wordt vooral gebruikt om de producten die u wenst aan te kopen te selecteren. Vooraleer u bij ons producten kunt bestellen hebben we natuurlijk uw gegevens nodig. Daarom is het verplicht om eerst in te loggen op onze website. Dit kunt u doen door in loginbar uw login en paswoord in te geven. Indien u de eerste maal bij ons wenst aan te kopen, kan u zichzelf registreren. (Zie punt registreren) Hoe een product bestellen ? Door op de knop “Voeg toe aan winkelmand” selecteert u een product. Bij selectie is het niet mogelijk om een hoeveelheid op te geven. Deze zult u kunnen wijzigingen in de pagina “Winkelmand”.

Afbeelding 18 :Webshop.aspx Geïntegreerde Proef

36


5.8.3

Registreren Om u correct te registreren dient u alle velden correct in te vullen. Er wordt eveneens een geldig email adres verwacht. Eenmaal uw registratie correct is verlopen kunt u inloggen op onze webshop en uw bestelling plaatsen.

Afbeelding 19 :Registratie.aspx

5.8.4

Winkelmand Hier krijgt u overzicht van alle producten die u in de webshop hebt geselecteerd. Bij ieder product is de initiële hoeveelheid gelijkgesteld aan 1 stuk. In het invoervak kunt u de gewenste hoeveelheid gaan ingeven. Indien u toch een product niet meer wenst te bestellen, dan kunt u dit product verwijderen uit uw winkelmand door te klikken op de knop met opschrift “Verwijder uit de lijst”. Indien u vaststelt dat u een product te weinig geselecteerd hebt kunt u gerust terug gaan naar de pagina van de webshop, daar een product toevoegen aan uw winkelmand en daarna terug naar de winkelmand om uw bestelling af te werken. Op dit scherm ziet u steeds de prijs die u zal moeten betalen per product en onderaan de tabel vindt u het totaal te betalen bedrag terug. Wanneer uw winkelmand volledig correct is, kunt u uw bestelling definitief doorsturen door middel van te drukken op de knop “Bevestig uw order”.

Afbeelding 20 :Winkelmand.aspx

Geïntegreerde Proef

37


5.8.5

Contact Aan de hand van deze pagina kunt u op een vlotte manier onze ligging en openingsuren vinden. Door op de tekst “Contacteer ons� te klikken kunt u ons bereiken per email. U dient zich niet te registreren om ons uw vragen te stellen via e-mail. Wij staan steeds ter beschikking voor het verschaffen van de nodige informatie.

Afbeelding 21 :Contact.htm

GeĂŻntegreerde Proef

38


5.9

Code website

5.9.1

Index.aspx <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Index.aspx.vb" Inherits="Home" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Home</title> <link href="WEB/Stijlen/Stijl.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="WEB/images/favicon.ico" /> <!-- Slideshow --> <script src="WEB/lib/jquery-1.4.2.min.js" type="text/javascript"></script> <script src="WEB/lib/jquery.jcarousel.min.js" type="text/javascript"></script> <script type="text/javascript"> function mycarousel_itemLoadCallback(carousel, state) { // Since we get all URLs in one file, we simply add all items // at once and set the size accordingly. if (state != 'init') return; jQuery.get('WEB/dynamic_ajax.txt', function (data) { mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, data); }); }; function mycarousel_itemAddCallback(carousel, first, last, data) { // Simply add all items at once and set the size accordingly. var items = data.split('|'); for (i = 0; i < items.length; i++) { carousel.add(i + 1, mycarousel_getItemHTML(items[i])); } carousel.size(items.length); }; /** * Item html creation helper. */ function mycarousel_getItemHTML(url) { return '<img src="' + url + '" width="150" height="150" alt="" />'; }; jQuery(document).ready(function () { jQuery('#mycarousel').jcarousel({ itemLoadCallback: mycarousel_itemLoadCallback }); }); </script> </head> <body> <form id="form1" runat="server"> <div id="container" style="width: 100%"> <div id="hoofd"> <table id="TabHeader"> <tr> <td width="10%" align="left"> <h1>Advanced Computers</h1> </td> <td width="5%">

Ge誰ntegreerde Proef

39


&nbsp; </td> <td> <div id="Nav"> <table> <tr> <td width="10%"> <a href="Index.aspx">Home</a> </td> <td width="10%"> <a href="WEB/Webshop.aspx">Webshop</a> </td> <td width="10%"> <a href="WEB/Contact.htm">Contact</a> </td> <td width="10%"> <a href="WEB/Winkelmand.aspx">Winkelmandje</a> </td> </tr> </table> </div> </td> <td> <img src="WEB/images/logo.gif" alt="" width="150" height="150" /> </td> </tr> </table> </div> <img src="WEB/images/HeaderLijn.gif" alt="" width="100%" height="15" /> <br /> <br /> <br /> <div id="mycarousel" class="jcarousel-skin-ie7"> <ul> <!-- The content will be dynamically loaded in here --> </ul> </div> <div id="Inhoud"> <p> <asp:Label ID="lblWieZijnWij" runat="server" CssClass="LabelMedium" Text="Wie zijn wij &amp; wat doen we?"></asp:Label> <br /> Advanced Computers is een klein computerbedrijf bestaande uit 3 personeelsleden. <br /> Dit bedrijf is gelegen te Roeselare-Beveren. Wij verkopen desktops, laptops en allerlei accesoires voor uw bedrijfs- of thuissituatie.<br /> Ook herstellen wij uw defecte pc. Dit bedrijf zorgt voor een sterke service na verkoop.</p> <p>&nbsp;</p> <p> <asp:Label ID="lblWerknemers" runat="server" CssClass="LabelMedium" Text="Werknemers"></asp:Label> </p> <p id="Werknemers"> <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataSourceID="Werknemer" Height="50px" Width="125px" CssClass="Detailsview1"> <Fields> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Voornaam" HeaderText="Voornaam" SortExpression="Voornaam" /> <asp:BoundField DataField="Functie" HeaderText="Functie" SortExpression="Functie" /> Ge誰ntegreerde Proef

40


<asp:TemplateField ConvertEmptyStringToNull="False" HeaderText="Foto" SortExpression="Foto"> <EditItemTemplate> <asp:DynamicControl ID="DynamicControl1" runat="server" DataField="Foto" Mode="Edit" /> </EditItemTemplate> <InsertItemTemplate> <asp:DynamicControl ID="DynamicControl1" runat="server" DataField="Foto" Mode="Insert" /> </InsertItemTemplate> <ItemTemplate> <asp:Image ID="Image1" runat="server" Height="141px" ImageUrl='<%# Eval("Foto","~/WEB/images/{0}") %>' Width="123px" /> </ItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView> <asp:DetailsView ID="DetailsView2" runat="server" Height="50px" Width="125px" AutoGenerateRows="False" DataSourceID="Werknemer2" CssClass="Detailsview2"> <Fields> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Voornaam" HeaderText="Voornaam" SortExpression="Voornaam" /> <asp:BoundField DataField="Functie" HeaderText="Functie" SortExpression="Functie" /> <asp:TemplateField HeaderText="Foto" SortExpression="Foto"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Foto") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Foto") %>'></asp:TextBox> </InsertItemTemplate> <ItemTemplate> <asp:Image ID="Image2" runat="server" Height="141px" ImageUrl='<%# Eval("Foto", "~/WEB/images/{0}") %>' Width="123px" /> </ItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView> <asp:DetailsView ID="DetailsView3" runat="server" AutoGenerateRows="False" DataSourceID="Werknemer3" Height="50px" Width="125px"> <Fields> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Voornaam" HeaderText="Voornaam" SortExpression="Voornaam" /> <asp:BoundField DataField="Functie" HeaderText="Functie" SortExpression="Functie" /> <asp:TemplateField HeaderText="Foto" SortExpression="Foto"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Foto") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Foto") %>'></asp:TextBox> </InsertItemTemplate> Ge誰ntegreerde Proef

41


<ItemTemplate> <asp:Image ID="Image3" runat="server" Height="141px" ImageUrl='<%# Eval("Foto", "~/WEB/images/{0}") %>' Width="123px" /> </ItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView> <asp:SqlDataSource ID="Werknemer3" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT Naam, Voornaam, Functie, Foto FROM tblPersoneel WHERE (PersoneelsId = 3)"> </asp:SqlDataSource> </p> <p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:SqlDataSource ID="Werknemer2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT Naam, Voornaam, Functie, Foto FROM tblPersoneel WHERE (PersoneelsId = 2)"> </asp:SqlDataSource> &nbsp;&nbsp;&nbsp; <asp:SqlDataSource ID="Werknemer" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT [Naam], [Voornaam], [Functie], [Foto] FROM [tblPersoneel]"> </asp:SqlDataSource> </p> </div> </div> </form> </body> </html>

Ge誰ntegreerde Proef

42


5.9.2

Webshop.aspx <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Webshop.aspx.vb" Inherits="images_Webshop" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Webshop</title> <link href="Stijlen/Stijl.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="images/favicon.ico" /> </head> <body> <form id="form1" runat="server"> <body> <div id="container"> <div id="hoofd"> <table id="TabHeader"> <tr> <td width="10%" align="left"> <h1>Advanced Computers</h1> </td> <td width="5%"> &nbsp; </td> <td> <div id="Nav"> <table> <tr> <td width="10%"> <a href="../Index.aspx">Home</a> </td> <td width="10%"> <a href="Webshop.aspx">Webshop</a> </td> <td width="10%"> <a href="Contact.htm">Contact</a> </td> <td width="10%"> <a href="Winkelmand.aspx">Winkelmandje</a> </td> </tr> </table> </div> </td> <td> <img src="images/logo.gif" width="150" height="150" /> </td> </tr> </table> </div> <img src="images/HeaderLijn.gif" width="100%" height="15" /> <div id="logbar" align="right"> <asp:Panel ID="pnlLogbar" runat="server"> <a id="Registratie" href="Registratie.aspx">Registreren</a> <asp:Label ID="lblID" runat="server" Text="Gebruikersnaam" CssClass="LabelMedium"></asp:Label> &nbsp;<asp:TextBox ID="txtID" runat="server" BackColor="#BDBDBD" BorderColor="#666666"></asp:TextBox> &nbsp;<asp:Label ID="lblPW" runat="server" Text="Wachtwoord" CssClass="LabelMedium"></asp:Label> &nbsp;<asp:TextBox ID="txtPW" runat="server" TextMode="Password" BackColor="#BDBDBD" BorderColor="#666666"></asp:TextBox>

Ge誰ntegreerde Proef

43


&nbsp;<asp:Button ID="btnLogIn" runat="server" Text="Aanmelden" BackColor="#BDBDBD" BorderColor="#666666" /> </asp:Panel> </div> <div id="Ingelogd" align="right"> <asp:Panel ID="pnlWelkom" runat="server" Visible="false"> <asp:Label ID="lblWelkom" runat="server" Text="Welkom, " CssClass="LabelMedium"></asp:Label> &nbsp;<asp:Label ID="lblNaam" runat="server" Text="" CssClass="LabelMedium"></asp:Label> &nbsp;<asp:Button ID="btnAfmelden" runat="server" Text="Afmelden" BackColor="#BDBDBD" BorderColor="#666666" /> </asp:Panel> </div> </div> <br /> <asp:Label ID="lblCategorie" runat="server" CssClass="LabelMedium" Text="Selecteer de categorie"></asp:Label> &nbsp;<asp:DropDownList ID="cboCategorie" runat="server" AutoPostBack="True" DataSourceID="categoriewebshop" DataTextField="CategorieNaam" DataValueField="CategorieID"> </asp:DropDownList> <asp:SqlDataSource ID="categoriewebshop" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT [CategorieNaam], [CategorieID] FROM [tblCategoriën]"> </asp:SqlDataSource> <br /> &nbsp;<asp:GridView ID="grvWebshop" runat="server" DataSourceID="Webshop" AllowPaging="True" AutoGenerateColumns="False" CssClass="GridviewWebshop" HorizontalAlign="Center" DataKeyNames="ProductID"> <Columns> <asp:CommandField ButtonType="Button" SelectText="Voeg toe aan winkelmand" ShowSelectButton="True" /> <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="ProductNaam" HeaderText="ProductNaam" SortExpression="ProductNaam" /> <asp:BoundField DataField="ProductOmschrijving" HeaderText="ProductOmschrijving" SortExpression="ProductOmschrijving" /> <asp:BoundField DataField="Verkoopprijs" HeaderText="Verkoopprijs" SortExpression="Verkoopprijs" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="Right" /> </asp:BoundField> <asp:BoundField DataField="BTW-tarief" HeaderText="BTW-tarief" SortExpression="BTWtarief" DataFormatString="{0:P}"> <ItemStyle HorizontalAlign="Right" /> </asp:BoundField> <asp:TemplateField HeaderText="Foto" SortExpression="Foto"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Geïntegreerde Proef

44


Text='<%# Bind("Foto") %>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Image ID="Image1" runat="server" Height="150px" ImageUrl='<%# Eval("Foto", ~/WEB/images/{0}") %>' Width="150px" /> </ItemTemplate> </asp:TemplateField> </Columns> <EditRowStyle HorizontalAlign="Center" /> <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:GridView> <br /> <asp:SqlDataSource ID="Webshop" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT ProductNaam, ProductOmschrijving, Verkoopprijs, [BTW-tarief], Foto, ProductID FROM tblProducten WHERE (CategorieID = ?)"> <SelectParameters> <asp:SessionParameter Name="?" SessionField="Categorie" /> </SelectParameters> </asp:SqlDataSource> <asp:GridView ID="gdvLogin" runat="server" AutoGenerateColumns="False" DataSourceID="ControleLogin" Visible="False" DataKeyNames="KlantID"> <Columns> <asp:BoundField DataField="Login" HeaderText="Login" SortExpression="Login" /> <asp:BoundField DataField="Paswoord" HeaderText="Paswoord" SortExpression="Paswoord" /> <asp:BoundField DataField="KlantID" HeaderText="KlantID" InsertVisible="False" ReadOnly="True" SortExpression="KlantID" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="ControleLogin" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT Login, Paswoord, KlantID FROM tblKlanten WHERE (Login = ?) "> <SelectParameters> <asp:SessionParameter Name="?" SessionField="User" /> </SelectParameters> </asp:SqlDataSource> <asp:AccessDataSource ID="dtsWinkel" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT * FROM [tblWinkelmand]"></asp:AccessDataSource> <asp:AccessDataSource ID="dtsDeleteWinkel" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" DeleteCommand="DELETE FROM [tblWinkelmand] WHERE [Id] = ?" InsertCommand="INSERT INTO [tblWinkelmand] ([Id], [KlantID], [ProductID], [Hoeveelheid], [TotaalBedrag]) VALUES (?, ?, ?, ?, ?)" SelectCommand="SELECT * FROM [tblWinkelmand] WHERE ([KlantID] = ?)" UpdateCommand="UPDATE [tblWinkelmand] SET [KlantID] = ?, [ProductID] = ?, [Hoeveelheid] = ?, [TotaalBedrag] = ? WHERE [Id] = ?"> <DeleteParameters> <asp:Parameter Name="Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Id" Type="Int32" /> <asp:Parameter Name="KlantID" Type="Int32" /> <asp:Parameter Name="ProductID" Type="Int32" /> Ge誰ntegreerde Proef

45


<asp:Parameter Name="Hoeveelheid" Type="Int32" /> <asp:Parameter Name="TotaalBedrag" Type="Decimal" /> </InsertParameters> <SelectParameters> <asp:SessionParameter Name="KlantID" SessionField="KlantID" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="KlantID" Type="Int32" /> <asp:Parameter Name="ProductID" Type="Int32" /> <asp:Parameter Name="Hoeveelheid" Type="Int32" /> <asp:Parameter Name="TotaalBedrag" Type="Decimal" /> <asp:Parameter Name="Id" Type="Int32" /> </UpdateParameters> </asp:AccessDataSource> </form> </body> </html>

Ge誰ntegreerde Proef

46


5.9.3

Webshop.aspx.vb Partial Class images_Webshop Inherits System.Web.UI.Page Protected Sub cboCategorie_DataBound(sender As Object, e As System.EventArgs) Handles cboCategorie.DataBound cboCategorie.Items.Insert(0, "- selecteer -") Session("Categorie") = 0 End Sub Protected Sub cboCategorie_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles cboCategorie.SelectedIndexChanged Session("Categorie") = cboCategorie.SelectedValue End Sub Protected Sub grvWebshop_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles grvWebshop.SelectedIndexChanged If Session("LoginOK") = True Then Dim strSql As String strSql = "Insert Into tblWinkelmand(KlantID, ProductID, TotaalBedrag) Values('" & gdvLogin.Rows(0).Cells(2).Text & "' , '" & grvWebshop.SelectedRow.Cells(1).Text & "' , '" & grvWebshop.SelectedRow.Cells(4).Text & "')" dtsWinkel.InsertCommand = strSql 'invoegen tabel dtsWinkel.Insert() Else MsgBox("Gelieve eerst aan te melden", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Aanmelden vereist") End If End Sub Protected Sub btnLogIn_Click(sender As Object, e As System.EventArgs) Handles btnLogIn.Click Dim strDelete As String Session("user") = txtID.Text Session("Paswoord") = txtPW.Text If gdvLogin.Rows.Count = 0 Then MsgBox("Login is niet correct", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Login is niet correct") Session("LoginOK") = False Else If gdvLogin.Rows(0).Cells(1).Text = txtPW.Text Then Session("KlantID") = gdvLogin.Rows(0).Cells(2).Text strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & gdvLogin.Rows(0).Cells(2).Text & " )" dtsDeleteWinkel.DeleteCommand = strDelete 'invoegen tabel dtsDeleteWinkel.Delete() Session("LoginOK") = True lblNaam.Text = txtID.Text pnlLogbar.Visible = False pnlWelkom.Visible = True Else MsgBox("Paswoord is niet correct", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Paswoord is niet correct") Session("LoginOK") = False End If End If End Sub

Ge誰ntegreerde Proef

47


Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Session("LoginOK") = True Then lblNaam.Text = Session("user") pnlLogbar.Visible = False pnlWelkom.Visible = True Else pnlLogbar.Visible = True pnlWelkom.Visible = False End If End Sub Protected Sub btnAfmelden_Click(sender As Object, e As System.EventArgs) Handles btnAfmelden.Click Dim strDelete As String strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & Session("KlantID") & " )" dtsDeleteWinkel.DeleteCommand = strDelete 'invoegen tabel dtsDeleteWinkel.Delete() Session("LoginOK") = False pnlLogbar.Visible = True pnlWelkom.Visible = False txtID.Text = "" End Sub End Class

Ge誰ntegreerde Proef

48


5.9.4

Registratie.aspx <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Registratie.aspx.vb" Inherits="Registratie" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Registreren</title> <link href="Stijlen/Stijl.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="images/favicon.ico" /> <style type="text/css"> .style2 { width: 159px; } .style3 { width: 159px; height: 28px; } .style4 { height: 28px; } </style> </head> <body> <form id="form1" runat="server"> <div id="container" style="width: 100%"> <div id="hoofd"> <table id="TabHeader"> <tr> <td width="10%" align="left"> <h1>Advanced Computers</h1> </td> <td width="5%"> &nbsp; </td> <td> <div id="Nav"> <table> <tr> <td width="10%"> <a href="../Index.aspx">Home</a> </td> <td width="10%"> <a href="Webshop.aspx">Webshop</a> </td> <td width="10%"> <a href="Contact.aspx">Contact</a> </td> <td width="10%"> <a href="Winkelmand.aspx">Winkelmandje</a> </td> </tr> </table> </div> </td> <td> <img src="images/logo.gif" width="150" height="150" /> </td> </tr> </table>

Ge誰ntegreerde Proef

49


</div> <img src="images/HeaderLijn.gif" width="100%" height="15" /> <div id="Registratie" align="center" style="height: 100%"> <table id="tblRegistratie" style="border-style: none"> <tr style="height: 30px"> <td colspan="2"> <h2 align="left">Registreren</h2> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblNaam" runat="server" CssClass="LabelLarge" Text="Naam"></asp:Label> </td> <td> <asp:TextBox ID="txtNaam" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtNaam" ErrorMessage="Vul uw familienaam in" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style3"> <asp:Label ID="lblVoornaam" runat="server" CssClass="LabelLarge" Text="Voornaam"></asp:Label> </td> <td class="style4"> <asp:TextBox ID="txtVoornaam" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtVoornaam" ErrorMessage="Vul uw voornaam in" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblAdres" runat="server" CssClass="LabelLarge" Text="Straat en nummer"></asp:Label> </td> <td> <asp:TextBox ID="txtAdres" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtAdres" ErrorMessage="Vul uw adres in" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblPostcode" runat="server" CssClass="LabelLarge" Text="Postcode"></asp:Label> </td> <td> <asp:TextBox ID="txtPostcode" runat="server" CssClass="Textbox"></asp:TextBox> Ge誰ntegreerde Proef

50


</td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtPostcode" ErrorMessage="Vul uw postcode in" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblGemeente" runat="server" CssClass="LabelLarge" Text="Gemeente"></asp:Label> </td> <td> <asp:TextBox ID="txtWoonplaats" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtWoonplaats" ErrorMessage="Vul uw gemeente in" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblEmail" runat="server" CssClass="LabelLarge" Text="E-mailadres"></asp:Label> </td> <td> <asp:TextBox ID="txtEmail" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="txtEmail" ErrorMessage="Vul uw E-mailadres in" ForeColor="Red"></asp:RequiredFieldValidator> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtEmail" ErrorMessage="E-mailadres is niet correct" ValidationExpression="\w+([+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ForeColor="Red"></asp:RegularExpressionValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblTelefoonnummer" runat="server" CssClass="LabelLarge" Text="Telefoonnummer"></asp:Label> </td> <td> <asp:TextBox ID="txtTel" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="txtTel" ErrorMessage="Vul uw telefoonnummer in" Ge誰ntegreerde Proef

51


ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblGebruiker" runat="server" CssClass="LabelLarge" Text="Login"></asp:Label> </td> <td> <asp:TextBox ID="txtLogin" runat="server" CssClass="Textbox"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ControlToValidate="txtLogin" ErrorMessage="Login is verplicht" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:Label ID="lblPaswoord" runat="server" CssClass="LabelLarge" Text="Paswoord"></asp:Label> </td> <td> <asp:TextBox ID="txtPaswoord" runat="server" CssClass="Textbox" TextMode="Password"></asp:TextBox> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" ControlToValidate="txtPaswoord" ErrorMessage="Paswoord is verplicht" ForeColor="Red"></asp:RequiredFieldValidator> </td> </tr> <tr> <td class="style2"> <asp:AccessDataSource ID="dtsKlanten" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT * FROM [tblKlanten]"></asp:AccessDataSource> </td> <td> <asp:Button ID="btnVerder" runat="server" CssClass="Knop" Text="Registreren" Width="128px" /> </td> </tr> </table> </div> </div> <asp:GridView ID="gdvControleLogIn" runat="server" AutoGenerateColumns="False" DataSourceID="dtsGebruikersnaam" Visible="False"> <Columns> <asp:BoundField DataField="Login" HeaderText="Login" SortExpression="Login" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="dtsGebruikersnaam" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT Login FROM tblKlanten WHERE (Login = ?)"> Ge誰ntegreerde Proef

52


<SelectParameters> <asp:SessionParameter Name="?" SessionField="User" /> </SelectParameters> </asp:SqlDataSource> </form> </body> </html>

5.9.5

Registratie.aspx.vb Partial Class Registratie Inherits System.Web.UI.Page Protected Sub btnVerder_Click(sender As Object, e As System.EventArgs) Handles btnVerder.Click Session("user") = txtLogin.Text Dim strSql As String If (gdvControleLogIn.Rows.Count > 0) Then MsgBox("Login is reeds in gebruik. Probeer opnieuw", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Login in gebruik") txtLogin.Text = "" Else strSql = "Insert Into tblKlanten (Naam, Voornaam, Adres, Postcode, Woonplaats, Telefoonnummer, Email, Login, Paswoord) Values('" & txtNaam.Text & "' , '" & txtVoornaam.Text & "' , '" & txtAdres.Text & "' , '" & txtPostcode.Text & "' , '" & txtWoonplaats.Text & "' , '" & txtTel.Text & "' , '" & txtEmail.Text & "' , '" & txtLogin.Text & "' , '" & txtPaswoord.Text & "')" dtsKlanten.InsertCommand = strSql 'invoegen tabel dtsKlanten.Insert() MsgBox("U registratie is correct verlopen", MsgBoxStyle.MsgBoxSetForeground & MsgBoxStyle.OkOnly, "Registratie compleet") Reset() End If End Sub Private Sub Reset() txtAdres.Text = "" txtEmail.Text = "" txtNaam.Text = "" txtPostcode.Text = "" txtTel.Text = "" txtVoornaam.Text = "" txtWoonplaats.Text = "" txtLogin.Text = "" txtPaswoord.Text = "" End Sub End Class

Ge誰ntegreerde Proef

53


5.9.6

Contact.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Contact</title> <link href="Stijlen/Stijl.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="images/favicon.ico" /> </head> <body> <div id="Header" style= "width:100%"> <table id="TabHeader" width ="100%"> <tr> <td width="10%" align="left"><h1>Advanced Computers</h1></td> <td width="5%">&nbsp;</td> <td> <div id ="Nav"> <table> <tr> <td width="10%"><a href="Index.aspx">Home</a></td> <td width="10%"><a href="Webshop.aspx">Webshop</a></td> <td width="10%"><a href="Contact.aspx">Contact</a></td> <td width="10%"><a href="Winkelmand.aspx">Winkelmandje</a></td> </tr> </table> </div> </td> <td><img src="images/logo.gif" width="150" height="150" /></td> </tr> </table> <img src="images/HeaderLijn.gif" width = "100%" height="15" /> </div> <div id="Open"> <span id="LblOpeningsuren" class="LabelMedium">Openingsuren</span> <br /> <br /> <table id="tblContact" border=1> <tr> <td>Dag</td> <td>Voormiddag</td> <td>Namiddag</td> </tr> <tr> <td>Maandag</td> <td>8u tot 12u</td> <td>13u30 tot 18u</td> </tr> <tr> <td>Dinsdag</td> <td>8u tot 12u</td> <td>13u30 tot 18u</td> </tr> <tr> <td>Woensdag</td> <td>8u tot 12u</td> <td>13u30 tot 18u</td> </tr> <tr> <td>Donderdag</td> <td>8u tot 12u</td>

Ge誰ntegreerde Proef

54


<td>13u30 tot 18u</td> </tr> <tr> <td>Vrijdag</td> <td>8u tot 12u</td> <td>13u30 tot 18u</td> </tr> <tr> <td>Zaterdag</td> <td>8u tot 12u</td> <td>13u30 tot 17u</td> </tr> <tr> <td>Zondag</td> <td colspan=2>Gesloten</td> </tr> </table> <br /> <br /> <a href="mailto:Info@advancedcomputers.com">Contacteer ons</a> </div> <div id ="Kaartje"> <span id="LblKaartje" class="LabelMedium">Ligging</span> <br /> <br /> <iframe width="425" height="350" frameborder="0" scrolling="yes" marginheight="0" marginwidth="0" src="http://maps.google.be/maps?f=q&amp;source=s_q&amp;hl=nl&amp;geocode=&amp; q=Onledeplein,+Roeselare&amp;aq=0&amp;oq=Onledeplein+&amp;sll=50.805935,4.4329 83&amp;sspn=5.499756,7.932129&amp;ie=UTF8&amp;hq=&amp;hnear=Onledeplein,+Bever en+8800+Roeselare,+WestVlaanderen,+Vlaams+Gewest&amp;ll=50.973,3.140955&amp;spn=0.002675,0.003873&amp ;t=m&amp;z=14&amp;output=embed"></iframe><br /><small> <a href="http://maps.google.be/maps?f=q&amp;source=embed&amp;hl=nl&amp;geocode=&a mp;q=Onledeplein,+Roeselare&amp;aq=0&amp;oq=Onledeplein+&amp;sll=50.805935,4.4 32983&amp;sspn=5.499756,7.932129&amp;ie=UTF8&amp;hq=&amp;hnear=Onledeplein,+Be veren+8800+Roeselare,+WestVlaanderen,+Vlaams+Gewest&amp;ll=50.973,3.140955&amp;spn=0.002675,0.003873&amp ;t=m&amp;z=14" style="color:#BDBDBD; text-align:left">Grotere kaart weergeven</a></small> </div> </body> </html>

Ge誰ntegreerde Proef

55


5.9.7

Winkelmand.aspx <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Winkelmand.aspx.vb" Inherits="Winkelmand" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>Winkelmand</title> <link href="Stijlen/Stijl.css" rel="stylesheet" type="text/css" /> <link rel="shortcut icon" href="images/favicon.ico" /> </head> <body> <form id="form1" runat="server"> <div id="Header" style="width: 100%"> <table id="TabHeader" width="100%"> <tr> <td width="10%" align="left"> <h1>Advanced Computers</h1> </td> <td width="5%"> &nbsp; </td> <td> <div id="Nav"> <table> <tr> <td width="10%"> <a href="../Index.aspx">Home</a> </td> <td width="10%"> <a href="Webshop.aspx">Webshop</a> </td> <td width="10%"> <a href="Contact.htm">Contact</a> </td> <td width="10%"> <a href="Winkelmand.aspx">Winkelmandje</a> </td> </tr> </table> </div> </td> <td> <img src="images/logo.gif" width="150" height="150" /> </td> </tr> </table> <img src="images/HeaderLijn.gif" width="100%" height="15" /> </div> <div id="Overzicht"> <table id="tableWinkelmand" align="center"> <tr> <td> <asp:GridView ID="gdvOverzicht" runat="server" AllowPaging="True" AutoGenerateColumns="False" CssClass="GridviewWebshop" DataSourceID="dtsOverzicht" HorizontalAlign="Center"> <Columns> <asp:CommandField ShowSelectButton="True" ButtonType="Button" SelectText="Verwijder uit lijst" /> <asp:TemplateField HeaderText="Foto" SortExpression="Foto"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Foto")

Ge誰ntegreerde Proef

56


%>'></asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:Image ID="Image1" runat="server" Height="150px" ImageUrl='<%# Eval("Foto", "~/WEB/images/{0}") %>' Width="150px" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="ProductID" HeaderText="ProductID" SortExpression="ProductID" InsertVisible="False"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:BoundField> <asp:BoundField DataField="ProductNaam" HeaderText="ProductNaam" SortExpression="ProductNaam"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:BoundField> <asp:BoundField DataField="ProductOmschrijving" HeaderText="ProductOmschrijving" SortExpression="ProductOmschrijving"> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:BoundField> <asp:BoundField DataField="Verkoopprijs" HeaderText="Verkoopprijs" SortExpression="Verkoopprijs" DataFormatString="{0:c}"> <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle" /> </asp:BoundField> <asp:BoundField DataField="BTW-tarief" HeaderText="BTW-tarief" SortExpression="BTW-tarief" DataFormatString="{0:P0}"> <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle" /> </asp:BoundField> <asp:TemplateField HeaderText="Hoeveelheid" SortExpression="Hoeveelheid"> <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Hoeveelheid") %>'> </asp:TextBox> </EditItemTemplate> <ItemTemplate> <asp:TextBox ID="txtHoeveelheid" runat="server" Text='<%# Bind("Hoeveelheid", "{0}") %>' OnTextChanged="txtHoeveelheid_TextChanged" AutoPostBack="True"></asp:TextBox> </ItemTemplate> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:TemplateField> <asp:BoundField DataField="TotaalBedrag" DataFormatString="{0:c}" HeaderText="TotaalBedrag" SortExpression="TotaalBedrag"> <ItemStyle HorizontalAlign="Right" VerticalAlign="Middle" /> </asp:BoundField> </Columns> </asp:GridView> </td> </tr> <tr> <td align="right"> <asp:FormView ID="frvTotaalPrijs" runat="server" DataSourceID="dtsTotaalAankoop" ForeColor="#BDBDBD" CssClass="LabelMedium"> <EditItemTemplate> Totaal: <asp:TextBox ID="TotaalTextBox" runat="server" Text='<%# Bind("Totaal") %>' /> Ge誰ntegreerde Proef

57


<br /> <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" /> &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" /> </EditItemTemplate> <InsertItemTemplate> Totaal: <asp:TextBox ID="TotaalTextBox" runat="server" Text='<%# Bind("Totaal") %>' /> <br /> <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Insert" /> &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" /> </InsertItemTemplate> <ItemTemplate> Totaal: <asp:Label ID="TotaalLabel" runat="server" Text='<%# Bind("Totaal", "{0:C}") %>' /> <br /> </ItemTemplate> </asp:FormView> </td> </tr> <tr> <td align="center"> <asp:Button ID="btnBevestig" runat="server" Height="58px" Text="Bevestig order" Width="179px" CssClass="Knop" /> <br /> <asp:Label ID="lblAntwoord" runat="server" CssClass="LabelMedium"></asp:Label> </td> </tr> </table> <asp:AccessDataSource ID="dtsTotaalAankoop" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT SUM(TotaalBedrag) AS Totaal FROM [tblWinkelmand] WHERE ([KlantID] = ?)"> <SelectParameters> <asp:SessionParameter Name="?" SessionField="KlantID" /> </SelectParameters> </asp:AccessDataSource> <asp:SqlDataSource ID="dtsOverzicht" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT tblProducten.ProductNaam, tblProducten.ProductOmschrijving, tblProducten.Verkoopprijs, tblProducten.[BTW-tarief], tblProducten.Foto, tblWinkelmand.Hoeveelheid, tblWinkelmand.TotaalBedrag, tblProducten.ProductID FROM ((tblProducten INNER JOIN tblWinkelmand ON tblProducten.ProductID = tblWinkelmand.ProductID) INNER JOIN tblKlanten ON Ge誰ntegreerde Proef

58


tblWinkelmand.KlantID = tblKlanten.KlantID)"> </asp:SqlDataSource> </div> <asp:AccessDataSource ID="dtsVerwijderProduct" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" DeleteCommand="DELETE FROM [tblWinkelmand] WHERE [Id] = ?" InsertCommand="INSERT INTO [tblWinkelmand] ([Id], [KlantID], [ProductID], [Hoeveelheid], [TotaalBedrag]) VALUES (?, ?, ?, ?, ?)" SelectCommand="SELECT * FROM [tblWinkelmand] WHERE (([KlantID] = ?) AND ([ProductID] = ?))" UpdateCommand="UPDATE [tblWinkelmand] SET [KlantID] = ?, [ProductID] = ?, [Hoeveelheid] = ?, [TotaalBedrag] = ? WHERE [Id] = ?"> <DeleteParameters> <asp:Parameter Name="Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Id" Type="Int32" /> <asp:Parameter Name="KlantID" Type="Int32" /> <asp:Parameter Name="ProductID" Type="Int32" /> <asp:Parameter Name="Hoeveelheid" Type="Int32" /> <asp:Parameter Name="TotaalBedrag" Type="Decimal" /> </InsertParameters> <SelectParameters> <asp:SessionParameter Name="KlantID" SessionField="KlantID" Type="Int32" /> <asp:SessionParameter Name="ProductID" SessionField="ProductID" Type="Int32" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="KlantID" Type="Int32" /> <asp:Parameter Name="ProductID" Type="Int32" /> <asp:Parameter Name="Hoeveelheid" Type="Int32" /> <asp:Parameter Name="TotaalBedrag" Type="Decimal" /> <asp:Parameter Name="Id" Type="Int32" /> </UpdateParameters> </asp:AccessDataSource> <asp:AccessDataSource ID="dtsOrderInfo" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT * FROM [tblOrderInfo]"></asp:AccessDataSource> <asp:AccessDataSource ID="dtsOrderLijnen" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT * FROM [tblOrderLijnen]"></asp:AccessDataSource> <asp:AccessDataSource ID="dtsOrderNummer" runat="server" DataFile="~/App_Data/VoorbeeldDBFictiefBedrijf.accdb" SelectCommand="SELECT MAX(OrderId) FROM tblOrderInfo WHERE KlantId = ?"> <SelectParameters> <asp:SessionParameter Name="?" SessionField="KlantID" /> </SelectParameters> </asp:AccessDataSource> <p> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="dtsOrderNummer" Visible="False"> <Columns> <asp:BoundField DataField="Expr1000" HeaderText="Expr1000" SortExpression="Expr1000" /> </Columns> </asp:GridView> </p> Ge誰ntegreerde Proef

59


</form> </body> </html>

Ge誰ntegreerde Proef

60


5.9.8

Winkelmand.aspx.vb Partial Class Winkelmand Inherits System.Web.UI.Page Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load frvTotaalPrijs.Visible = False btnBevestig.Visible = False If Session("LoginOK") = False Then gdvOverzicht.Columns.Clear() lblAntwoord.Text = "" End If If gdvOverzicht.Rows.Count = 0 Then lblAntwoord.Text = "Gelieve eerst een product toe te voegen aan de winkelmand" Else frvTotaalPrijs.Visible = True btnBevestig.Visible = True End If End Sub Protected Sub btnBevestig_Click(sender As Object, e As System.EventArgs) Handles btnBevestig.Click Dim strOrderLijn As String Dim strOrderInfo As String Dim aantal As Integer Dim EenheidsPrijs As String strOrderInfo = "INSERT INTO tblOrderInfo(KlantID) Values(" & Session("KlantID") & ")" dtsOrderInfo.InsertCommand = strOrderInfo 'invoegen Order dtsOrderInfo.Insert() For inti = 0 To gdvOverzicht.Rows.Count - 1 Session("ProductID") = gdvOverzicht.Rows(inti).Cells(2).Text aantal = CType(gdvOverzicht.Rows(inti).FindControl("txtHoeveelheid"), TextBox).Text EenheidsPrijs = CStr(gdvOverzicht.Rows(inti).Cells(5).Text) strOrderLijn = "INSERT INTO tblOrderLijnen(OrderId, ProductId, Aantal, Prijs) Values( " & GridView1.Rows(0).Cells(0).Text & " ," & gdvOverzicht.Rows(inti).Cells(2).Text & " , " & aantal & " ,'" & EenheidsPrijs & "')" dtsOrderLijnen.InsertCommand = strOrderLijn 'invoegen productlijn in orderlijnen dtsOrderLijnen.Insert() LeegmakenWinkelmand() Next gdvOverzicht.DataBind() frvTotaalPrijs.DataBind() lblAntwoord.Text = "Uw order werd succesvol geplaatst" frvTotaalPrijs.Visible = False btnBevestig.Visible = False End Sub Protected Sub txtHoeveelheid_TextChanged(sender As Object, e As System.EventArgs) Dim aantal As Integer Dim strUpdate As String For inti = 0 To gdvOverzicht.Rows.Count - 1 'Herberekenen totaal bedrag per product aantal = CType(gdvOverzicht.Rows(inti).FindControl("txtHoeveelheid"), TextBox).Text gdvOverzicht.Rows(inti).Cells(8).Text = aantal * gdvOverzicht.Rows(inti).Cells(5).Text ' Aanpassen tabel

Ge誰ntegreerde Proef

61


strUpdate = "UPDATE tblWinkelmand SET Hoeveelheid=" & aantal & " WHERE KlantId=" & Session("KlantID") & " AND ProductID = " & gdvOverzicht.Rows(inti).Cells(2).Text dtsOverzicht.UpdateCommand = strUpdate dtsOverzicht.Update() strUpdate = "UPDATE tblWinkelmand SET TotaalBedrag='" & gdvOverzicht.Rows(inti).Cells(8).Text & "' WHERE KlantId=" & Session("KlantID") & " AND ProductID = " & gdvOverzicht.Rows(inti).Cells(2).Text dtsOverzicht.UpdateCommand = strUpdate dtsOverzicht.Update() Next ' herberekenen totaal frvTotaalPrijs.DataBind() End Sub Protected Sub gdvOverzicht_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles gdvOverzicht.SelectedIndexChanged Session("ProductID") = gdvOverzicht.SelectedRow.Cells(2).Text LeegmakenWinkelmand() gdvOverzicht.DataBind() frvTotaalPrijs.DataBind() End Sub Private Sub LeegmakenWinkelmand() Dim strDelete As String strDelete = "DELETE FROM tblWinkelmand WHERE (KlantID = " & Session("KlantID") & " AND ProductID = " & Session("ProductID") & ")" dtsVerwijderProduct.DeleteCommand = strDelete 'schrappen in tabel dtsVerwijderProduct.Delete() End Sub End Class

Ge誰ntegreerde Proef

62


5.9.9

CSS body { background-attachment: fixed; background-image: url('../images/Achtergrond.jpg'); } #Hoofd { width: 100%; height: 10%; } #Nav { width: 100%; height: 10%; } #Logbar { width: 100%; height: 20px; } #Inhoud { max-width: 100%; color: #bdbdbd; text-align: center; margin: 50px 5% auto 5%; } h1 { font-family: Century Gothic; color: #666666; margin-left: 50px; float: left; clear: right; } a { font-family: Century Gothic; color: #bdbdbd; text-decoration: none; font-size: 24px; } a:hover { color: #666666; } .aRegistratie { font-family: Century Gothic; color: #bdbdbd; font-size: 16px; text-decoration: underline; }

Ge誰ntegreerde Proef

63


.aRegistratie:hover { color: #666666; text-decoration: underline; font-size: 16px; } .LabelMedium { font-family: Century Gothic; color: #666666; } .LabelLarge { font-family: Century Gothic; color: #bdbdbd; font-size: 18px; } .Textbox { background-color: #bdbdbd; border-color: #666666; } .Knop { background-color: #bdbdbd; border-color: #666666; } h2 { font-size: 24px; color: #666666; } #Registratie { margin-top: 5%; margin-left: 10%; } #Kaartje { margin-left: 40%; margin-top: 5%; } .Detailsview1 { top: 200px; clear: none; float: left; margin-right: 8%; margin-left: 20%; }

Ge誰ntegreerde Proef

64


.Detailsview2 { top: 200px; left: 350px; float: left; margin-right: 8%; } .GridviewWebshop { font-family: Century Gothic; color: #bdbdbd; font-size: 15px; } #tblContact { color: #BDBDBD; border-color: #666666; } #Open { clear: none; float: left; margin-left: 15%; margin-top: 5%; } /** * CSS Slide Show */ .jcarousel-skin-ie7 .jcarousel-container { -moz-border-radius: 10px; -webkit-border-radius: 10px; background: #D4D0C8; border: 1px solid #808080; left: 20%; } .jcarousel-skin-ie7 .jcarousel-direction-rtl { direction: rtl; } .jcarousel-skin-ie7 .jcarousel-container-horizontal { width: 790px; padding: 20px 40px; } .jcarousel-skin-ie7 .jcarousel-container-vertical { width: 150px; height: 790px; padding: 40px 20px; } .jcarousel-skin-ie7 .jcarousel-clip { overflow: hidden; }

Ge誰ntegreerde Proef

65


.jcarousel-skin-ie7 .jcarousel-clip-horizontal { width: 790px; height: 152px; }

.jcarousel-skin-ie7 .jcarousel-item { width: 150px; height: 150px; border: 1px solid #fff; } .jcarousel-skin-ie7 .jcarousel-item:hover, .jcarousel-skin-ie7 .jcarouselitem:focus { border-color: #808080; } .jcarousel-skin-ie7 .jcarousel-item-horizontal { margin-left: 0; margin-right: 7px; } .jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-item-horizontal { margin-left: 7px; margin-right: 0; } .jcarousel-skin-ie7 .jcarousel-item-vertical { margin-bottom: 7px; } .jcarousel-skin-ie7 .jcarousel-item-placeholder { } /** * Horizontal Buttons */ .jcarousel-skin-ie7 .jcarousel-next-horizontal { position: absolute; top: 73px; right: 5px; width: 32px; height: 32px; cursor: pointer; background: transparent url('../images/next-horizontal.gif') no-repeat 0 0; } .jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-next-horizontal { left: 5px; right: auto; background-image: url('../images/prev-horizontal.gif'); }

Ge誰ntegreerde Proef

66


.jcarousel-skin-ie7 .jcarousel-next-horizontal:hover, . jcarousel-skin-ie7 .jcarousel-next-horizontal:focus { background-position: -32px 0; } .jcarousel-skin-ie7 .jcarousel-next-horizontal:active { background-position: -64px 0; } .jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal, .jcarousel-skin-ie7 .jcarousel-next-disabled-horizontal:hover, .jcarousel-skin-ie7 .jcarouselnext-disabled-horizontal:focus, .jcarousel-skin-ie7 .jcarousel-next-disabledhorizontal:active { cursor: default; background-position: -96px 0; } .jcarousel-skin-ie7 .jcarousel-prev-horizontal { position: absolute; top: 73px; left: 5px; width: 32px; height: 32px; cursor: pointer; background: transparent url('../images/prev-horizontal.gif') no-repeat 0 0; } .jcarousel-skin-ie7 .jcarousel-direction-rtl .jcarousel-prev-horizontal { left: auto; right: 5px; background-image: url('../images/next-horizontal.gif'); } .jcarousel-skin-ie7 .jcarousel-prev-horizontal:hover, .jcarousel-skin-ie7 .jcarousel-prev-horizontal:focus { background-position: -32px 0; } .jcarousel-skin-ie7 .jcarousel-prev-horizontal:active { background-position: -64px 0; } .jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal, .jcarousel-skin-ie7 .jcarousel-prev-disabled-horizontal:hover, .jcarousel-skin-ie7 .jcarouselprev-disabled-horizontal:focus, .jcarousel-skin-ie7 .jcarousel-prev-disabledhorizontal:active { cursor: default; background-position: -96px 0; }

Ge誰ntegreerde Proef

67


Nawoord De stage, die de basis van deze Ge誰ntegreerde Proef is, is zeer goed verlopen. Ik heb er veel bijgeleerd, want ik kreeg veel interessante informaticaopdrachten. Daardoor kreeg ik ook een voorsmaakje over hoe het leven is op de werkvloer. De GP bracht veel werk met zich mee. Er waren veel taken voor verschillende vakken. Voor sommige vakken waren dit een aantal kleinere taken, en voor andere vakken, zoals informatica, waren het grotere taken. Ik vond het persoonlijk ook goed dat er bepaalde taken vakoverschrijdend waren. Dit maakt het realistischer. Tijdens deze GP heb ik enkele positieve en negatieve ervaringen gehad, namelijk dat ik wel op tijd aan de taken begon, maar als het niet onmiddellijk vlot verliep, was ik geneigd om het vlug op te geven. Ik vind dat het maken van een GP een grote rol speelt in de voorbereiding op het verdere leven. Dit zowel op het gebied van werken als van verder studeren.


GP Informaticabeheer 2011-2012