Gip Gilles Knockaert

204
SINT–JOZEFSINSTITUUT HANDEL EN TOERISME BRUGGE SCHOOLJAAR 2010 - 2011 Geïntegreerde proef 6 Informaticabeheer Knockaert Gilles 6IB Nr 5 Zilverstraat 26 8000 Brugge 050 33 19 43

description

Eindversie Gip

Transcript of Gip Gilles Knockaert

Page 1: Gip Gilles Knockaert

SINT–JOZEFSINSTITUUT HANDEL EN TOERISME BRUGGE SCHOOLJAAR 2010 - 2011

Geïntegreerde proef 6 Informaticabeheer Knockaert Gilles 6IB Nr 5

Zilverstraat 26 8000 Brugge 050 33 19 43

Page 2: Gip Gilles Knockaert

2

Page 3: Gip Gilles Knockaert

3

Woord vooraf

Gedurende dit laatste jaar, is het onze taak een GIP te maken die alles omvat wat we gedurende ons secundair onderwijs hebben opgedaan aan kennis. Deze GIP handelt over volgende vakken: Nederlands, Engels, economie, bedrijfsgerichte praktijk, softwareontwikkeling en stage. Zoals reeds vermeld omvat deze GIP ook een onderdeel stage, dit is naar mijn mening een zeer belangrijk aspect omdat je zo ondervindt hoe het er in de bedrijfswereld aan toe gaat. Graag zou ik bij deze dhr. Berens willen bedanken voor het begeleiden van ons softwareprogramma, dhr. Vanden Eynde voor het begeleiden van onze stage. Ook wil ik mevr. De Meulder bedanken voor het verbeteren van alle GIP-taken en voor het begeleiden van alle aspecten betreffende Nederlands en Engels. Mevr. De Smet wil ik graag bedanken voor alle hulp bij het economische luik en Dhr. De Devriendt voor alle hulp bij het maken van een goede website. Tot slot zou ik ook graag Glenn Ruysschaert en Pieter Seynaeve willen bedanken, dit omdat wij samen het programma voor softwareontwikkeling hebben ontwikkeld.

Page 4: Gip Gilles Knockaert

4

Page 5: Gip Gilles Knockaert

5

Inhoudsopgave

Woord vooraf ................................................................................................................................. 3

Inhoudsopgave ............................................................................................................................... 5

Inleiding .......................................................................................................................................... 7

Hoofdstuk 1 Bedrijfseconomische aspecten .................................................................................... 8

1 Indeling van ondernemingen ........................................................................................................ 8 1.1 Eenmanszaak of vennootschap ................................................................................................. 8 1.2 Indeling volgens activiteit, bedrijfsgrootte en juridische vorm ................................................... 9

2 E-business ...................................................................................................................................12 2.1 E-Shipment ..............................................................................................................................12 2.2 Navision ...................................................................................................................................13 2.3 BBS ...................................................................................................................................13 2.4 Topdesk ...................................................................................................................................14 2.5 Captor ...................................................................................................................................15 2.6 Synchrolink ..............................................................................................................................16

3 Contracten ..................................................................................................................................17 3.1 Bestelbon .................................................................................................................................17 3.2 Leveringsbon ............................................................................................................................18 3.3 Factuur en creditnota ...............................................................................................................19 3.4 Ingave gegevens .......................................................................................................................20

Hoofdstuk 2 Stage ..........................................................................................................................21

1 Aanvraag stageplaats + curriculum vitae .....................................................................................21 1.1 Aanvraag stageplaats ...............................................................................................................21 1.2 Curriculum vitae .......................................................................................................................22

2 Verslag ........................................................................................................................................23

3 Voorstelling van het stagebedrijf .................................................................................................24 3.1 Bondige voorstelling met beknopte historiek ...........................................................................24 3.2 Coördinaten .............................................................................................................................24 3.3 Bedrijfsactiviteiten: producten en/of diensten .........................................................................24 3.4 Personeelsbezetting met organogram ......................................................................................25

4 Interview met medewerker ict ....................................................................................................28

5 Sollicitatiebrief ............................................................................................................................29

6 Beschrijving van de werking in het stagebedrijf ...........................................................................30

7 Stageverslagen ............................................................................................................................31

Hoofdstuk 3 Het bouwen van een statische website ......................................................................41

1 Indexpagina ................................................................................................................................41 1.1 Screenshot ...............................................................................................................................41 1.2 HTML-Code ..............................................................................................................................41 1.3 CSS-Code ..................................................................................................................................42

Page 6: Gip Gilles Knockaert

6

2 homepagina ................................................................................................................................44 2.1 Screenshot ...............................................................................................................................44 2.2 HTML/CSS-Code .......................................................................................................................44 2.3 css tabbed panels .....................................................................................................................46 2.4 JavaScript tabbed panels ..........................................................................................................51

Hoofdstuk 4 Informaticaproject .....................................................................................................61

1 Automatiserings- of beheersproject ............................................................................................61 1.1 Probleemstelling ......................................................................................................................61 1.2 Tabelontwerp ...........................................................................................................................62 1.3 Gebeurtenissen en procedures .................................................................................................64 1.4 Programma ..............................................................................................................................67

Hoofdstuk 5 Engels ......................................................................................................................192

5.1 List of 10 software/hardware suppliers in the UK. ..................................................................192

5.2 Comment on 2 websites .........................................................................................................193

5.3 Letter of enquiry to one of these suppliers. ............................................................................194

5.4 Presentation of a British SME (small medium enterprise) .......................................................196

Slot ..............................................................................................................................................204

Page 7: Gip Gilles Knockaert

7

Inleiding

Deze GIP bestaat uit verschillende deelaspecten, deze zijn: softwareontwikkeling, economie, Nederlands, Engels, bedrijfsgerichte praktijk en stage. Tijdens mijn GIP heb ik nooit echt grote problemen gehad maar wel soms enkele kleine vooral bij het aspect softwareontwikkeling maar, deze waren meestal snel op te lossen. Voor het opstellen van alle taken was mijn belangrijkst bron de kennis die ik reeds opgedaan had in de lessen, wanneer mijn kennis me in de steek liep raadpleegde ik meestal het internet om zo een antwoord te vinden voor mijn problemen. Zo heb ik bijvoorbeeld veel opgezocht omtrent VB-script en VBA (visual basic for applications).

Page 8: Gip Gilles Knockaert

8

Hoofdstuk 1 Bedrijfseconomische aspecten

Dit onderdeel handelt over de verschillende ondernemingsvormen, de verschillende sectoren gevolgd door enkele contracten zoals factuur, creditnota,..

1 Indeling van ondernemingen Hier worden de soorten ondernemingen besproken met hun voor- en nadelen. Ook hun verplichtingen worden hier uitgelegd.

1.1 Eenmanszaak of vennootschap

1.1.1 Eenmanszaak Een eenmanszaak is een onderneming die wordt gevoerd door één persoon. In tegenstelling tot de meeste vennootschapsvormen bezit de eenmanszaak geen aparte rechtspersoonlijkheid. Want in een een¬manszaak is er geen duidelijke splitsing tussen het privévermogen van de handelaar en het vermogen van de zaak.

1.1.2 Vennootschap Natuurlijk kan je niet evenveel winst boeken als met een groot bedrijf en de belastingen op de winst zijn ook hoger dan bij vennootschappen. Ook moet er worden rekening gehouden dat wanneer de eigenaar ziek is, overlijdt of gehandicapt wordt dit catastrofale gevolgen kan hebben voor de zaak. De eigenaar is ook aansprakelijk voor alles wat er gebeurt betreffende de zaak.

1.1.3 Voordelen Eenmanszaak Vennootschap Lage oprichtingskosten In bepaalde vennootschapsvormen: een manier

om kapitaal bijeen te krijgen Weinig boekhoudkundige en administratieve verplichtingen

In bepaalde vennootschapsvormen: beperking van de aansprakelijkheid

Vlotte besluitvorming Regeling van de opvolgingsproblematiek Mogelijkheid tot vrijstelling van belasting van de stopzettingsmeerwaarden bij voortzetting van de eenmanszaak door de echtgeno(o)t(e) of de erfgenamen in de rechte lijn of bij inbreng van de algemeenheid van goederen of van een of meer bedrijfsafdelingen in een vennootschap

Lagere tarieven vennootschapsbelasting

De winst komt bij de ondernemer zelf terecht. Eén persoon kan meerdere vennootschappen oprichten

Page 9: Gip Gilles Knockaert

9

1.1.4 Nadelen Eenmanszaak Vennootschap Grotere verbondenheid met persoon van ondernemer

Voor types met volledige rechtspersoonlijkheid: inbreng van minimumkapitaal vereist

De ondernemer is aansprakelijk met heel zijn persoonlijk vermogen

Minder vlotte besluitvorming

Hogere tarieven vennootschapsbelasting Meestal striktere boekhoudkundige en administratieve formaliteiten

Het faillissement van de éénmanszaak is ook het faillissement van de privé-persoon.

1.1.5 Bronnen https://multimediafiles.kbcgroup.eu/ng/published/KBC/PDF/START/starten_eenmanszaak_NL.pdf http://www.eunomia.be/nl/starter/ondernemingsvorm.aspx

1.2 Indeling volgens activiteit, bedrijfsgrootte en juridische vorm Mijn stagebedrijf is Transport Maenhout. Transport Maenhout behoort tot de tertaire sector. Het is onlangs overgenomen door Wim Bosman waardoor het bedrijf in korte tijd sterk gegroeid is. Het is een internationaal bedrijf met ruim 200 werknemers en behoort dus tot de grote bedrijven. Volgens juridische vorm is het een naamloze vennootschap (nv).

1.2.1 Indeling bedrijven volgens activiteit Men kan bedrijven onderverdelen in verschillende sectoren. Hieronder vind je een overzicht van de verschillende sectoren waartoe een bedrijf kan behoren.

1.2.1.1 Primaire sector De eerste groep bedrijven zijn bedrijven uit de primaire sector, ze zorgen voor grondstoffen die nodig zijn om een product te vervaardigen. Die producten komen uit de natuur (Landbouw, visserij) Voorbeelden van beroepen in de primaire sector: Veeteelt, akkerbouw, tuinbouw, bosbouw, visteelt: landbouwer, veeteler, visser, … (Dit zijn de grondstoffen die verder worden verwerkt in de volgende sectoren.)

1.2.1.2 Secondaire sector De tweede groep bedrijven zijn bedrijven uit de secundaire sector, ze zorgen dat de grondstoffen verder verwerkt worden. Voorbeelden van beroepen in de secundaire sector: Metselaar, automecanicien, elektricien, … (bewerken van grondstoffen of gedeeltelijk afgewerkte producten)

1.2.1.3 Tertiaire sector De derde groep bedrijven zijn bedrijven uit de tertiaire sector, ze zorgen ervoor dat het eindproduct verkocht wordt aan de consument. Voorbeelden van beroepen in de tertiaire sector: Vervoer, horeca, schoonmaak: kok, ober, barman, buschauffeur, poetsvrouw, … (goederen kopen/verkopen zonder verwerken)

Page 10: Gip Gilles Knockaert

10

1.2.1.4 Quartaire sector De vierde groep bedrijven zijn bedrijven uit de quartaire sector, deze bedrijven streven geen winst na, wat alle andere bedrijven die we hebben gezien wel doen. Voorbeelden van beroepen in de quartaire sector. Zorg, onderwijs, overheid: verpleegster, dokter, onderwijzer, belastingambtenaar, minister, … (niet-commerciële en niet-verhandelbare diensten)

1.2.2 Indeling bedrijven volgens bedrijfsgrootte

1.2.2.1 Zeer kleine ondernemingen zelfstandigen, vof jaaromzet <= €500000 ex BTW mogen vereenvoudigde boekhouding voeren enkelvoudige of forfaitaire

1.2.2.2 Kleine ondernemingen andere dan kleine ondernemingen niet meer dan één van volgende criteria overschrijden:

50 personeelsleden gemiddeld per jaar €6250000 jaaromzet ex BTW €3125000 balanstotaal

jaarlijks gemiddeld niet meer dan 100 personeelsleden hebben moeten dubbele boekhouding voeren en mogen verkort schema van de jaarrekening

neerleggen

1.2.2.3 Grote ondernemingen alle andere ondernemingen geen kleine onderneming of kleine vennootschap zijn moeten dubbele boekhouding voeren en moeten volledig schema van de jaarrekening

neerleggen.

1.2.3 Indeling bedrijven volgens juridische vorm Volgens juridische vorm bestaan er 7 verschillende indelingen. Eenmanszaak Vennootschap onder firma (VOF) Commanditaire vennootschap (CV) Besloten vennootschap (BV) Naamloze vennootschap (NV) Coöperatieve vereniging of coöperatie Stichting

Page 11: Gip Gilles Knockaert

11

1.2.4 Kenmerken NV Zoals reeds vermeld is mijn stagebedrijf een nv. Bij een naamloze vennootschap moeten er minimum 2 vennoten aanwezig zijn. Indien je dus alleen een bedrijf wil oprichten kan het geen NV zijn. Een nv wordt opgericht via een notariële akte en er moet een minimumkapitaal van €61 500,00 aanwezig zijn bij het oprichten van het bedrijf. De oprichting van de nv duurt ongeveer 2 – 6 weken. De aandelen binnen een nv zijn op naam of aan toonder. Ze zijn dus ook vrij overdraagbaar. In een nv is er ook telkens een bestuur aanwezig die zorgt voor een goede werking in het bedrijf. Dit bestuur bestaat uit de raad van bestuur met minimum 3 bestuurders, tenzij de nv slechts 2 aandeelhouders heeft. Om tot de raad van bestuur te horen hoef je geen aandeelhouder te zijn. Indien er slechts 2 aandeelhouders zijn mag de raad van bestuur nog uit 2 personen bestaan, indien er een derde aandeelhouder bijkomt moet de raad van bestuur uit 3 personen bestaan. Wat ook een belangrijk feit is, is het feit dat een NV beperkte aansprakelijkheid heeft. Dit wil zeggen dat aandeelhouders van de nv slechts aansprakelijk zijn voor schulden tot het ingelegde kapitaal.

1.2.4.1 Bronnen http://www.bsearch.be/nacemain/00/Sector-Overzicht.html http://nl.wikipedia.org/wiki/Organisatie http://nl.wikipedia.org/wiki/Naamloze_vennootschap http://www.vdvaccountants.be/data/documents/seminarie_eenmanszaak_vs_vennootschap_kim.pdf http://www4.gent.be/gsiw/GSIW/bestanden/subsites/Beroepenthuis%20in%20de%20klas/wo%204%20sectoren%20werkbladen.pdf

Page 12: Gip Gilles Knockaert

12

2 E-business Tot het onderdeel E-business behoren allerlei programma’s die het leven van de informatici makkelijker maakt binnen het bedrijf. Hier worden de meest gebruikte programma’s waarvan mijn stagebedrijf gebruik maakt wat verder uit gelegd.

2.1 E-Shipment Dit hulpprogramma gebruikt men om te zorgen dat klanten hun geplaatste bestellingen kunnen opvolgen. Zo kunnen ze constant zien of hun zending reeds verstuurd is en waar het zich bevind. Dit is in samenwerking met een track and trace systeem. De IT dienst maakt deze accounts aan, vervolgens worden de gegevens doorgestuurd naar de boekhouding. De boekhouding stuurt dan op zijn beurt alle gegevens door naar de klant zodat hij in dit systeem kan inloggen en zijn producten op de voet gaan volgen.

Page 13: Gip Gilles Knockaert

13

2.2 Navision Dit programma is als het ware de basis van Transport Maenhout. Zo goed als alles wat men via de computer verricht gebeurt via Navision. Zo heeft men in Navision ook een eigen programmeertaal. De volledige boekhouding gebeurt in dit programma, de planning van de chauffeurs wordt hier ook ingegeven, die wordt dan gelinkt met de PDA’s die in de trucks aanwezig zijn.

2.3 BBS Dit programma is steeds één van de eerste programma’s die men gebruikt iedere dag. Via dit programma kan men zien voor hoeveel liter benzine er getankt is,… De informatica dienst moet dit dagelijks bijhouden en opslaan in een Excel document. Via BBS kan men ook de toegangspoorten regelen en de tanksleutels. Zo kunnen enkel zij die beschikken over een tanksleutel daar tanken. Op die tanksleutel kan dan ook een limiet worden ingesteld,… Dit programma zou men willen vernieuwen omdat het niet altijd even nauwkeurig is.

Page 14: Gip Gilles Knockaert

14

2.4 Topdesk Dit is uitsluitend voor de informatica dienst. Hier kan men bijhouden welk product zich waar bevindt. Het is dus een programma gebaseerd op een database waarin alle producten betreffende informatica worden ingegeven. Zo kan men indien ze ergens een GSM vinden die van transport Maenhout is, hierin terugvinden wie de eigenaar is. Ook kunnen ze zien wat ze nog in voorraad hebben doordat ze een locatie kunnen toewijzen aan ieder product. Zo krijgt bijvoorbeeld ieder product dat zich in de stock bevindt het nummer 99999 toegekend. Men hoeft dan enkel maar 99999 in te geven en ze krijgen een hele lijst met wat ze in stock hebben. Ook kunnen ze hier een “To Do” lijst invoeren. Alle kleine karweitjes worden hierin ingegeven zodat ze niets over het hoofd zien. Indien dit dan is afgehandeld hoeven ze dit slechts te verwijderen. Zo heeft men ook een kijk op wat reeds gebeurd is en op wat nog moet gebeuren.

Page 15: Gip Gilles Knockaert

15

2.5 Captor Captor is een programma dat bijhoudt wanneer personeelsleden aankomen en weer vertrekken. Men werkt er namelijk met een prikklok en via die prikklok worden de uren waarop mensen zich aanmelden doorgestuurd naar dit programma.

Page 16: Gip Gilles Knockaert

16

2.6 Synchrolink Synchrolink is een programma waarmee men velden van een database koppelt met velden uit een andere database. Dit wordt gebruikt bij het overnemen van klantenbestanden van andere bedrijven. Stel Transport Maenhout heeft een database met al hun klanten. Daarin hebben ze in een bepaalde tabel dan een kolom genaamd “klanten”. Indien het bedrijf waarvan ze een klantenbestand toevoegen in hun database ook een bepaalde tabel “klanten” heeft, dan kunnen ze via dit programma een link leggen en worden alle bestanden aan de hand van die info gekopieerd. Op de screenshot hieronder ziet men dan de verbinding tussen 2 verschillende databasen. Dit zorgt ervoor dat ze niet constant alles moeten kopiëren.

Page 17: Gip Gilles Knockaert

17

3 Contracten

3.1 Bestelbon Dit is een voorbeeld van een ingevulde bestelbon

Page 18: Gip Gilles Knockaert

18

3.2 Leveringsbon Dit is een voorbeeld van een ingevulde leveringsbon

Page 19: Gip Gilles Knockaert

19

3.3 Factuur Dit is een voorbeeld van een ingevulde factuur/creditnota

Page 20: Gip Gilles Knockaert

20

3.4 Ingave gegevens Hier moeten alle gegevens van de klant worden ingevoerd en gebeuren ook alle berekeningen

Page 21: Gip Gilles Knockaert

21

Hoofdstuk 2 Stage

1 Aanvraag stageplaats + curriculum vitae

1.1 Aanvraag stageplaats Gilles Knockaert 2011-02-07 Emiel Coolslaan 1 8480 Eernegem 0479 52 54 72 De Heer Pieter-Jan Desimpele Zandvoordestraat 300 8400 Oostende DAIKIN Europe Geachte meneer Desimpele

Ik volg momenteel het laatste jaar Informaticabeheer. In het kader van onze GIP-opdracht moeten we stage lopen gedurende 2 weken. Via deze GIP-opdrachten moeten we aantonen wat we gedurende ons secondair onderwijs allemaal hebben geleerd.

Een stage lopen in uw bedrijf lijkt me zeer interessant omdat u een groot bedrijf bent en verschillende filialen heeft. Het zou dus een unieke ervaring zijn om met zo’n netwerkomgeving in contact te komen.

Op school hebben we qua informatica 4uur netwerken, 2uur bedrijfsgerichte praktijk. Daar nemen we voornamelijk webdesign onder de loep. Verder hebben we ook nog 4uur softwareontwikkeling.

Ikzelf ben als het op werken aankomt wel een doorzetter en ik zal dus niet tevreden zijn zolang het niet af is. Volgens mij zou ik dan ook wel een positieve aanwinst zijn voor het bedrijf gedurende 2 weken.

Indien u meer informatie wenst kan u altijd terecht bij onze stagecoördinator de heer Vanden Eynde (0476 42 68 13)

Ik zal u in de loop van volgende week contacteren om uw beslissing te vernemen. Ik hoop alvast op een aangenaam antwoord.

mvg, Gilles Knockaert

Page 22: Gip Gilles Knockaert

22

1.2 Curriculum vitae

Knockaert Gilles

Persoonlijke gegevens: Naam en voornaam Adres

Knockaert Gilles Emiel Coolslaan 1 8480 Eernegem

Geboorteplaats en datum Torhout 21 augustus 1992 GSM nummer 0479/52 54 72 E-mail adres [email protected] Burgerlijke staat ongehuwd Nationaliteit Belg

Opleiding Eerste en tweede graad ASO studierichting wiskunde wetenschappen aan het Sint-Godelieve college te Gistel. Derde graad TSO Informaticabeheer aan het Sint-Jozefsinstituut Handel & Toerisme te Brugge. Zomerkampen bij Top-Vakantie namelijk Javascipt en Webmaster

Ervaring Als jobstudent tewerkgesteld in AZ Sint-Lucas te Brugge bij de technische dienst. Verschillende zomers als klank-en lichttechnicus bij evenementen (VN-producties en Stageline). Stage gelopen bij Transport Maenhout op de informatica dienst gedurende 2 weken.

Vrije Tijd Sporten: basketbal en snowboarden Muziekacademie: Percussie Jeugdvereniging +13 als leiding (2009-2011)

Talenkennis Nederlands (moedertaal) Engels goed Frans goed Duits (basis)

Page 23: Gip Gilles Knockaert

23

2 Verslag NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 STAGEPERIODE: 2010/01/17 – 2010/01/28 VERSLAG: Ik heb mij stage gelopen bij het transport bedrijf Maenhout te Oostende. Dit bedrijf verzorgt zowel nationale als internationale transporten. Het werd recent overgenomen door Wim Bosman. Gedurende deze 2 weken heb ik meegedraaid met de dienst informatica. Het was een rijke ervaring en ik heb voornamelijk de gekende leerstof aan de praktijk kunnen toetsen. Zo heb ik bepaalde programma’s ontwikkeld die de werking in het bedrijf makkelijker maken. Een voorbeeld hiervan is het programma in VB-Scrip in het kader van het automatisch integreren van handtekeningen. Ook heb ik een een userform aangemaakt in Excel die ervoor zorgt dat men op een makkelijke manier telefoonlijsten kan aanmaken die vervolgens worden geïmporteerd op de GSM-toestellen van de vrachtwagenchauffeurs. Verder draaide ik als werkkracht mee om interne problemen op te lossen. Zo moest ik steeds paraat staan indien er zich technische problemen voordeden. Het ging voornamelijk om hardwareproblemen. Zo heb ik veel toetsenborden, muizen,.. moeten vervangen en herstellen waar mogelijk. Een bezoek aan het serverlokaal heeft indruk op mij gemaakt. Dagelijks gingen we daar dan ook de back-up disks vervangen. Zo bestaan er 7 back-up disks voor iedere werkdag, 4 voor iedere week, 12 voor elke maand en dan wordt er ook nog jaarlijks een back-up bewaard. Het bijhouden van deze disks is verplicht voor een periode van 7jaar maar hier houden ze die al vanaf het begin bij. In het algemeen vond ik mijn stage zeer leerrijk. Maar als stagiair ondervind je wel dat je ook veel minder leuke taken moet uitvoeren zoals stock tellen.

Page 24: Gip Gilles Knockaert

24

3 Voorstelling van het stagebedrijf

3.1 Bondige voorstelling met beknopte historiek Het bedrijf Transport Maenhout is een transportbedrijf opgericht in 1920. Door de jaren heen is dit bedrijf gegroeid tot een internationaal transportbedrijf. Sinds enkele jaren maakt het ook officieel deel uit van de Wim Bosman Groep.

Het bedrijf is gevestigd te Oostende in de Zandvoordestraat. Mijn stagementor daar heette Steven Depuydt.

Het bedrijf zelf is al vele jaren actief op vlak van zowel nationaal als internationale transport en mag wel op dit vlak toch een grote speler genoemd worden. Ze verrichten transport voor eender wie zowel voor kleine particulieren als voor grote multinationals.

Bij Transport Maenhout werken meer dan 200 personen en het is een bedrijf dat nog steeds groeit. Men is nu volop bezig met het construeren van een nieuw kantoorgebouw. Bij dit document vindt u dan ook een volledig organogram met alle functies die er worden uitgeoefend binnen de kantoren. Ook is er een visuele weergave bijgevoegd van hoe de verschillende afdelingen in Oostende fysisch met elkaar verbonden zijn.

De taken die ik toegewezen kreeg waren meestal taken die moesten gebeuren maar die ze liever door een stagiair lieten doen. Zo moest ik de volledige stock tellen en moest ik een lijst maken van alle actieve hardware,… Natuurlijk waren er ook leuke taken, zo heb ik een script mogen ontwikkelen die automatisch handtekeningen genereerde in outlook. Hierbij moest alle nodige informatie die in die handtekening moest komen uit active directory gehaald worden. Ik heb hiervoor veel het internet geraadpleegd maar uiteindelijk ben ik er toch in geslaagd dit goed af te ronden.

Men verwachtte telkens dat ik daar om 8 uur 30 aanwezig was maar meestal was ik daar omstreeks 8 uur. Tussen de middag werd nooit veel pauze genomen want we moesten constant klaar staan om eventuele problemen zo snel mogelijk op te lossen. Na een drukke dag mocht ik dan om 17 uur weer naar huis.

Wat mij voornamelijk is bijgebleven na mijn stage is dat mensen snel uit gemakzucht bellen naar de informaticadienst( indien ze hierover beschikken). Meestal kan men zelf het probleem oplossen maar men doet hier geen moeite voor want het bedrijf beschikt toch over een informaticadienst.

3.2 Coördinaten Het bedrijf is gevestigd te Oostende in de Zandvoordestraat. Mijn stagementor daar heette Steven Depuydt.

3.3 Bedrijfsactiviteiten: producten en/of diensten Zoals reeds vermeld was mijn stagebedrijf een transportbedrijf dat internationaal werkt en dus internationaal diensten verleent.

Page 25: Gip Gilles Knockaert

25

3.4 Personeelsbezetting met organogram

Page 26: Gip Gilles Knockaert

26

Kockaert Gilles

Page 27: Gip Gilles Knockaert

27

Page 28: Gip Gilles Knockaert

28

4 Interview met medewerker ICT De persoon die ik heb geïnterviewd is Jimmy Cooleman. Ik interviewde deze persoon omdat ik tijdens mijn stage veel opdrachten van hem kreeg en omdat hij daar ook binnen de dienst informatica een belangrijke functie uitoefent.

Hij is al ongeveer 3 jaar tewerkgesteld als system engineer maar, zijn oorspronkelijke studies zijn regentaat informatica. Ondanks het feit dat hij leerkracht informatica wilde worden is hij toch daar terecht gekomen.

Hij koos om daar te werken omwille van praktische redenen. Hijzelf woont in Eernegem dus dit is zeker goed haalbaar. Zo verliest hij niet veel tijd met naar zijn werk te gaan.

In het algemeen is hij zeer tevreden met zijn functie binnen het bedrijf. Hij heeft toffe collega’s maar werkt voornamelijk alleen, zo kan hij makkelijk zelfstandig te werk gaan.

Een van de toffe aspecten van zijn werk vindt hij het feit dat hij veel onder de mensen komt ondanks het feit dat men meestal verwacht dat een informaticus de hele dag aan zijn computer gekluisterd zit.

Een van de minder toffe aspecten van zijn werk is het feit dat hij soms in het weekend ook beschikbaar moet zijn indien er zich problemen voordoen. Men werkt daar met een beurtrol, dit wil zeggen dat hij om de 3 weken in het weekend paraat moet staan voor eventuele problemen. Soms zijn er totaal geen problemen maar andere keren wordt hij meerdere malen per dag opgebeld.

Over zijn toekomst kon hij me nog niet veel vertellen, hij is niet van plan weg te gaan in de nabije toekomst maar je weet natuurlijk nooit wat de toekomst allemaal met zich mee brengt.

Page 29: Gip Gilles Knockaert

29

5 Sollicitatiebrief Gilles Knockaert 2011-02-07 Emiel Coolslaan 1 8480 Eernegem 0479 52 54 72 De Heer Steven Depuydt Zandvoordestraat 300 8400 Oostende Transport Maenhout Geachte meneer Depuydt

In Het Nieuwsblad van 4 februari zag ik de advertentie waarin u meldde een vacature vrij te hebben voor de functie software developer. Tijdens mijn opleiding heb ik al bij Transport Maenhout stage gelopen waardoor ik op de hoogte ben van hoe men daar tewerk gaat.

Ik heb momenteel mijn studies New Media and Communication Technology afgerond in Howest te Kortrijk. Hier heb ik op vlak van programmeren veel kennis opgedaan. Ik ben reeds lange tijd actief op vlak van informatica, zo heb ik tijdens mijn secundair onderwijs informaticabeheer gevolgd. Ik kan dus zeker mijn mannetje staan wat programmeren betreft.

Graag had ik u nog verder willen ontmoeten om in een persoonlijk gesprek mijn ideeën te verduidelijken.

Hoogachtend Gilles Knockaert

Bijlage: CV

Page 30: Gip Gilles Knockaert

30

6 Beschrijving van de werking in het stagebedrijf Ik heb gedurende 2 weken stage gelopen in Transport Maenhout te Oostende. Daar heb ik meegedraaid met de helpdesk op de afdeling informatica waar in totaal 7 personen werken.

De eerste dag van mijn stage viel het mij al meteen op dat men slechts met een klein aantal computers werkte. Dit komt doordat men daar met terminals werkt die verbonden zijn met een server. Dit is natuurlijk zeer makkelijk voor de informaticadienst want indien er zich een probleem voordoet kan het zo goed als onmogelijk aan de thin client liggen. Een thin client is een soort van terminal ook wel een domme computer genoemd. Dit doordat het enkel een beeld doorstuurt de rest wordt uitgevoerd op de server. Indien de fout dan niet aan de thin client ligt of de invoer van de gebruiker dan ligt het meestal aan de server. Indien dit het geval is kan het op zich ook nog geen kwaad want er zijn telkens 2 servers, zo kan men bij een crash van de ene server gewoon verder werken op de andere server. Ook zorgt dit voor een centraal beheer van data aangezien alles op de servers wordt opgeslagen. Eventuele updates moeten ook slechts 1 maal worden uitgevoerd en dit is namelijk op de server. Zoals je ziet biedt het voornamelijk voordelen. Natuurlijk is dit enkel nuttig wanneer men met veel computers binnen het bedrijf werkt want door op deze manier te werk te gaan, moet men wel in dure servers investeren.

Om zich te beschermen tegen eventuele stroomuitval beschikt men over verschillende UPS’en die zorgen ervoor dat de servers nog lang genoeg blijven draaien zodat alles op een correcte manier kan worden afgesloten. Om zeker te zijn dat men geen gevens verliest bij eventuele crashes maakt men ook veel gebruik van back-ups. Zo wordt iedere dag een back-up genomen van alle servers. Van ieder jaar wordt een back-up bijgehouden maar ook wordt iedere maandelijkse back-up een jaar bijghouden. De wekelijkse back-ups worden een maand bijgehouden en de dagelijkse back-ups worden gedurende een week bijgehouden.

Als operating system gebruikt men voornamelijk Windows XP. Op de servers gebruikt men windows server 2003 en op de nieuwere servers windows server 2008. Qua software gebruikt men voornamelijk office 2003 maar men is nu geleidelijk aan het overschakelen naar office 2007.

Ondanks vele moderne apparatuur werkt men toch nog steeds met faxen. Hoewel men deze wil buitenwerken worden ze toch nog dagelijks gebruikt.

Zoals ik al vermeld heb werkt men met 7 personen op de dienst informatica. De dienst informatica is nog eens opgedeeld in 3 groepen, zo heb je de ICT assistants, software engineer en system engineer. Indien er problemen zijn bij het personeel op vlak van informatica wordt er contact opgenomen met de ICT assistants. Meestal gaat het om kleine problemen, die kunnen dan ook snel worden opgelost. Indien het om grote problemen gaat op vlak van software wordt meestal de software ingineer erbij betrokken. Dit is meestal niet het geval want al bij het minste probleem wordt gebeld naar de dienst informatica. Die kleine problemen worden dan ook snel opgelost door simpelweg support vanop afstand. Is dit niet mogelijk, dan gaat men een kijkje nemen bij de persoon zelf wat precies het probleem is.

Naast het kantoor waar de informaticadienst zich bevindt, vind je een opslagruimte. In die opslagruimte wordt alle hardware bijgehouden. Indien er zich ergens een defect voordoet zal men eerst deze stock raadplegen en kijken of men over een wisselstuk beschikt. Is dit niet het geval dan zal men dit zo spoedig mogelijk bestellen zodat de gebruiker niet al te veel tijd verliest.

Page 31: Gip Gilles Knockaert

31

7 Stageverslagen VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-17 ACTIVITEITEN: 8.30-9.00 u Algemene kennismaking 9.00-10.00 u Uitleg nodige software 10.00-10.30 u. Opzetten workstation 10.30-12.00 u. Inventaris opmaken 12.00-13.00 u. Middagpauze 13.00-16.00 u. Helpdesk 16.00-16.30 u. Uitleg software 16.30-17.15 u. Namaken van formulier in Excel VERSLAG: Na kennismaking met iedereen van de IT-sector kreeg ik uitleg betreffende de software die men daar gebruikt. Ik heb nog niet veel alleen moeten werken. Ik moest voornamelijk meevolgen om te leren hoe het bedrijf functioneert. Eén van de taken die ik al zelfstandig heb moeten uitvoeren was het inventariseren van de verschillende types netwerkkabels.

Page 32: Gip Gilles Knockaert

32

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-18 ACTIVITEITEN: 8.15-12.00 u. Inventariseren active hardware 12.00-13.00 u. Middagpauze 13.00-14.00 u. Active hardware ingeven in excel 14.00-15.00 u. Totaal aantal workstations tellen 15.00-15.30 u. Bezoek serverlokaal 15.30-16.30 u. Helpdesk 16.30-17.00 u. Overlopen verbetering telefoonlijst VERSLAG: In de loop van de dag moest ik alle hardware die binnen het bedrijf genummerd is gaan tellen en opschrijven waar het zich bevond. Verder ook het totaal aantal workstations tellen. Uiteindelijk hebben we dan een bezoek gebracht aan het serverlokaal. Na nog een aantal kleine klusjes gedaan te hebben, hebben we de telefoonlijst overlopen, die zou moeten worden aangepast zodat deze gebruiksvriendelijker wordt.

Page 33: Gip Gilles Knockaert

33

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-19 ACTIVITEITEN: 8.15-10.30 u. Automatiseren telefoonlijst in VBA 10.30-12.00 u. Archiveren mails 12.00-13.00 u. Middagpauze 13.00-15.30 u. Archiveren mails 15.30-16.30 u. Ingeven van e-shipments 16.30-17.00 u. Automatiseren telefoonlijst in VBA VERSLAG: Vandaag mocht ik beginnen aan een applicatie in VBA waarvan ik gisteren reeds de nodige uitleg kreeg. Gisteravond had ik mijn cursus VBA excel van vorig jaar nog eens geraadpleegd, wat zeker en vast een goed idee was. Ook het internet heb ik meermaals geraadpleegd gezien de complexiteit van de opdracht. Verder heb ik nog mails gearchiveerd, dit houdt niet veel in maar het moest gebeuren. Ook heb ik enkele wijzigingen moeten aanbrengen in het klantenbestand.

Page 34: Gip Gilles Knockaert

34

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-20 ACTIVITEITEN: 8.15-9.00 u. Archiveren mails 9.00-10.30 u. helpdesk 10.30-12.00 u. Controleren telefoonlijst 12.00-13.00 u. Middagpauze 13.00-14.00 u. Wijzigen telefoonlijst 14.00-14.30 u. Herstelling laptop 14.30-16.00 u. Bezoek ander gebouw + tellen werkposten 16.00-17.00 u. Ingeven van e-shipments VERSLAG: De dag begon met het vervolledigen van het archiveren van mails. Vervolgens een update van de telefoonlijst op basis van een reeds verouderde lijst. Nadien moest er een laptop gereed gemaakt worden voor een nieuwe gebruiker en ook de harde schijf moest vervangen worden. Ook hebben we in aanvulling met een vorige opdracht in het ander gebouw de werkposten geteld. Om de dag dan af te sluiten kreeg ik de kans om zelfstandig via e-shipments nieuwe activiteiten in te geven.

Page 35: Gip Gilles Knockaert

35

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-21 ACTIVITEITEN: 08.15-12.00 u. Controleren telefoon / PDA gegevens 12.00-13.00 u. Middagpauze 13.00-14.30 u. Controleren telefoon / PDA gegevens 14.30-16.00 u. Overlopen VB-script voor handtekening in outlook 16.00-17.00 u. Instructies voor maandag en dinsdag VERSLAG: Het grootste deel van de deze dag heb ik besteed aan het controleren van de telefoon / PDA gegevens. Deze staan ingegeven in een programma maar door enkele wijzigingen waren de gegevens in dat programma niet meer volledig up-to-date en moest dit dus volledig gecontroleerd en bijgewerkt worden. Daarna kreeg ik de kans om verder te werken aan een VB-script waar iemand van de informaticadienst reeds mee bezig was. Dit zou voor iedereen een automatische handtekening moeten maken in outlook. Om de dag af te sluiten hebben we de planning voor maandag en dinsdag grondig overlopen aangezien m'n begeleider dan in het filiaal in Nederland werkt.

Page 36: Gip Gilles Knockaert

36

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-24 ACTIVITEITEN: 08.15-12.00 u. Afwerken VB-script + help desk 12.00-13.00 u. Middagpauze 13.00-14.30 u. Reparatie printers 14.30-15.00 u. Vervangen back-up disks server 16.00-16.30 u. Maken van etiketten in excel 16.30-17.00 u. Aanmaken e-shipment accounts VERSLAG: Omdat m’n stagebegeleider afwezig was heb ik deze dag veel zelfstandig moeten werken. ‘s Morgens heb ik het VB-script afgewerkt dat via active directory een handtekening maakt voor outlook. Gedurende de hele dag moest ik ook standby zijn om de helpdesk te doen dus ik moest ook veel kleine probleempjes oplossen. ‘s Middags waren er grote problemen met verschillende printers dus moesten we die eerst herstellen. Verder mocht ik nog eens mee naar het serverlokaal om nieuwe back-up disks in te steken. Vervolgens nog enkele kleine werkjes zoals het maken van etiketten in excel.

Page 37: Gip Gilles Knockaert

37

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-25 ACTIVITEITEN: 08.15-12.00 u. ingaven e-shipment + bijwerken klantenbestand + helpdesk 12.00-13.00 u. Middagpauze 13.00-14.30 u. Configureren + installeren printer 14.30-17.00 u. Controle switches VERSLAG: Ook vandaag was m'n stagebegeleider niet aanwezig en heb ik dus weer veel alleen moet werken. Tijdens alle activiteiten moest ik nog eens helpdesk doen ook dus ik heb veel kleine werkjes verricht. Er kwam een nieuwe printer binnen dus die hebben we geïnstalleerd en de nodige instellingen goed gezet. Ik heb ook een controle gedaan van alle aanwezige switches.

Page 38: Gip Gilles Knockaert

38

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-26 ACTIVITEITEN: 08.05-09.00 u. Overlopen maandag en dinsdag 09.00-11.00 u. Helpdesk + Controleren pc's en laptops dell 11.00-12.00 u. Overlopen programma voor handtekeningen in outlook. 12.00-13.00 u. Middagpauze 13.00-15.30 u. Wijzigingen aanbrengen in programma betreffende

automatische handtekeningen 15.30-16.00 u. Vervangen back-up disks server 16.00-16.30 u. Printen van etiketten 16.30-17.00 u. Aanmaken e-shipment accounts VERSLAG: Vandaag kwam mijn stagebegeleider terug uit Nederland. Vooraleer we aan nieuwe taken begonnen overliepen we alles wat ik gedurende de maandag en dinsdag gedaan had. Daarna moest ik controleren wie over welke pc/laptop beschikte. Dit is normaal ingevoerd in een programma maar dit is helaas niet meer up-to-date. Ik heb vandaag weer verder gewerkt aan het programma voor het automatiseren van handtekeningen in outlook. Zoals elke dag moesten ook de back-up disks voor de servers vervangen worden. Tot slot moesten er nog etiketten worden gedrukt en moest er een nieuw klant ingevoerd worden in e-shipment.

Page 39: Gip Gilles Knockaert

39

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-27 ACTIVITEITEN: 08.05-08.30 u. Ingeven e-shipments 08.30-9.30 u. Afhalen printers + vervangen back-up disks voor server 9.30-12.00 u. Programma voor automatiseren handtekening hervatten 12.00-13.00 u. Middagpauze 13.00-15.30 u. Programma voor automatiseren handtekening hervatten 15.30-16.00 u. Aanpassingen in active directory VERSLAG: Vandaag lag de nadruk vooral op het programma betreffende het automatisch genereren van een handtekening in outlook. Daarna heb ik weer enkele klanten ingegeven in e-shipment en ben ik weer mee geweest om de back-up disks te vervangen voor de servers. In functie van het programma dat ik aan het maken ben moesten enkele aanpassingen gebeuren in active directory. Ook dit heb ik vandaag in orde gebracht. Natuurlijk moest ik tijdens al deze verschillende taken steeds klaar staan voor mensen met problemen betreffende informatica.

Page 40: Gip Gilles Knockaert

40

VOLGNUMMER: 5 NAAM: Gilles Knockaert KLAS - NR.: 6IB - 5 DATUM: 2010-01-28 ACTIVITEITEN: 08.05-08.30 u. Ingeven e-shipments 08.30-09.00 u. Vervangen back-up disks voor server 09.00-10.00 u. Interview + Verzamelen nodige informatie voor school 10.00-12.00 u. Helpdesk + aanmaken gebruikers accounts 12.00-13.00 u. Middagpauze 13.00-15.00 u. Helpdesk + opruimen bureau en het lokaal waar zich de stok

bevindt 15.00-16.30 u. Ingeven e-shipments 16.30-17.00 u. Genieten van een stukje cake om mijn stage in schoonheid af

te ronden. VERSLAG: Om mijn laatste dag stage te vieren had ik vandaag een cake meegedaan met de bedoeling om mijn collega's te bedanken. In de loop van de dag heb ik voornamelijk helpdesk moeten doen dit omdat het niet mogelijk was om nog "grote" dingen te starten aangezien het mijn laatste dag was. Zoals elke dag hebben we ook weer de back-up disks voor de servers vervangen en heb ik nog enkele e-shipment accounts aangemaakt. Om dan de dag af te sluiten en tevens ook mijn stage hebben we nog genoten van een stukje cake.

Page 41: Gip Gilles Knockaert

41

Hoofdstuk 3 Het bouwen van een statische website

1 Indexpagina

1.1 Screenshot

1.2 HTML-Code <!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"><!-- InstanceBegin template="/Templates/basis.dwt" codeOutsideHTMLIsLocked="false" --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- InstanceBeginEditable name="doctitle" --> <title>TOTTS</title> <!-- InstanceEndEditable --> <link href="opmaak.css" rel="stylesheet" type="text/css" /> <!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --> </head> <body> <div id="master"> <div id="balkblauw"></div> <div id="balkGeel"></div> <!-- InstanceBeginEditable name="data" --> <div id="centraal"> <img src="images/logo.jpg" width="656" height="195" /> <br /> <br /> <p><a href="home_Template.html">NL </a>/<a href="index.html"> FR </a>/<a href="index.html"> ENG</a></p> </div> <!-- InstanceEndEditable -->

Page 42: Gip Gilles Knockaert

42

<div id="balkGeel"> <br /> division of stageline <br /> >>> lsc lighting >>> ra'alloy >>> mott stages </div> <div id="balkblauw"></div> </div> </body> <!-- InstanceEnd --></html>

1.3 CSS-Code @charset "utf-8"; #master{ width:90%; margin-left:auto; margin-right:auto; font-family:Arial, Helvetica, sans-serif; padding-top: 20px; } #balkblauw{ background-color:#014171; height: 20px; } #balkGeel{ background-image:url(images/strepen_totts2_bewerkt.jpg); background-repeat:no-repeat; background-color:#e9df01; text-align:center; color:#041171; font-size:16px; height: 80px; clear:both; } #centraal{ text-align:center; color:#041171; font-size:20px; } .menuitems{ text-align:center; border:solid #fff 1px; width: 150px; margin-left: 20px; }

Page 43: Gip Gilles Knockaert

43

#navigatie{ width:100%; text-align:center; padding-left:auto; padding-right:auto; } #navigatie #centreren div{ float:left; } #centreren{ display:inline-block; padding-top: 20px; padding-bottom: 20px; } .menuindex{ <!-- border:solid #000 1px; --> text-align:center; width: 100% } .fotomenu{ <!-- height:120px; --> <!-- width: 100%; --> background-color:#900; } a{ text-decoration:none; } a:hover{ color:#F00; }

Page 44: Gip Gilles Knockaert

44

2 homepagina

2.1 Screenshot

2.2 HTML/CSS-Code <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TOTTS</title> <script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script> <link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" /> <style type="text/css"> .items{ margin-top: 5px; margin-bottom: 5px; padding-top: 5px; padding-bottom: 5px; width: 170px; border-bottom:solid 1px #000; } #links{ padding-top: 10px; overflow:auto; height: 600px; width: 190px;

Page 45: Gip Gilles Knockaert

45

float:left; clear:both; border-right:dashed 1px #000; } #rechts{ padding-top: 20px; text-align:center; } .textRechts{ padding-top: 10px; } #news{ padding-bottom: 20px; text-decoration:underline; font-size: 20px; } </style> </head> <body> <div id="TabbedPanels1" class="TabbedPanels"> <ul class="TabbedPanelsTabGroup"> <li class="TabbedPanelsTab" tabindex="0">Home</li> </ul> <div class="TabbedPanelsContentGroup"> <div class="TabbedPanelsContent"> <div id="links"> <div id="news">News:</div> <div class="items"> Meer info volgt </div> <div class="items"> <img src="images/Depot.jpg" width="150" height="120" /> <p>Vanaf augustus 2011 nemen wij onze intrek in de nieuwe burelen en depots in Fabrieksweg 46 te Eernegem.</p> </div> </div> <div id="rechts"> <div id="fotoRechts"> <img src="images/Depot_groot.jpg" width="718" height="522" /> </div> <div class="textRechts"> Vanaf augustus 2011 nemen wij onze intrek in de nieuwe burelen en depots in Fabrieksweg 46 te Eernegem. </div> </div> </div>

Page 46: Gip Gilles Knockaert

46

</div> </div> <script type="text/javascript"> var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1"); </script> </body> </html>

2.3 css tabbed panels @charset "UTF-8"; /* SpryTabbedPanels.css - version 0.6 - Spry Pre-Release 1.6.1 */ /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */ /* Horizontal Tabbed Panels * * The default style for a TabbedPanels widget places all tab buttons * (left aligned) above the content panel. */ /* This is the selector for the main TabbedPanels container. For our * default style, this container does not contribute anything visually, * but it is floated left to make sure that any floating or clearing done * with any of its child elements are contained completely within the * TabbedPanels container, to minimize any impact or undesireable * interaction with other floated elements on the page that may be used * for layout. * * If you want to constrain the width of the TabbedPanels widget, set a * width on the TabbedPanels container. By default, the TabbedPanels widget * expands horizontally to fill up available space. * * The name of the class ("TabbedPanels") used in this selector is not * necessary to make the widget function. You can use any class name you * want to style the TabbedPanels container. */ .TabbedPanels { overflow: hidden; margin: 0px; padding: 0px; clear: none; width: 100%; /* IE Hack to force proper layout when preceded by a paragraph. (hasLayout Bug)*/ } /* This is the selector for the TabGroup. The TabGroup container houses

Page 47: Gip Gilles Knockaert

47

* all of the tab buttons for each tabbed panel in the widget. This container * does not contribute anything visually to the look of the widget for our * default style. * * The name of the class ("TabbedPanelsTabGroup") used in this selector is not * necessary to make the widget function. You can use any class name you * want to style the TabGroup container. */ .TabbedPanelsTabGroup { margin: 0px; padding: 0px; } /* This is the selector for the TabbedPanelsTab. This container houses * the title for the panel. This is also the tab "button" that the user clicks * on to activate the corresponding content panel so that it appears on top * of the other tabbed panels contained in the widget. * * For our default style, each tab is positioned relatively 1 pixel down from * where it wold normally render. This allows each tab to overlap the content * panel that renders below it. Each tab is rendered with a 1 pixel bottom * border that has a color that matches the top border of the current content * panel. This gives the appearance that the tab is being drawn behind the * content panel. * * The name of the class ("TabbedPanelsTab") used in this selector is not * necessary to make the widget function. You can use any class name you want * to style this tab container. */ .TabbedPanelsTab { position: relative; top: 1px; float: left; padding: 4px 10px; margin: 0px 1px 0px 0px; font: bold 0.7em sans-serif; background-color: #DDD; list-style: none; border-left: solid 1px #CCC; border-bottom: solid 1px #999; border-top: solid 1px #999; border-right: solid 1px #999; -moz-user-select: none; -khtml-user-select: none; cursor: pointer; }

Page 48: Gip Gilles Knockaert

48

/* This selector is an example of how to change the appearnce of a tab button * container as the mouse enters it. The class "TabbedPanelsTabHover" is * programatically added and removed from the tab element as the mouse enters * and exits the container. */ .TabbedPanelsTabHover { background-color: #CCC; } /* This selector is an example of how to change the appearance of a tab button * container after the user has clicked on it to activate a content panel. * The class "TabbedPanelsTabSelected" is programatically added and removed * from the tab element as the user clicks on the tab button containers in * the widget. * * As mentioned above, for our default style, tab buttons are positioned * 1 pixel down from where it would normally render. When the tab button is * selected, we change its bottom border to match the background color of the * content panel so that it looks like the tab is part of the content panel. */ .TabbedPanelsTabSelected { background-color: #EEE; border-bottom: 1px solid #EEE; } /* This selector is an example of how to make a link inside of a tab button * look like normal text. Users may want to use links inside of a tab button * so that when it gets focus, the text *inside* the tab button gets a focus * ring around it, instead of the focus ring around the entire tab. */ .TabbedPanelsTab a { color: black; text-decoration: none; } /* This is the selector for the ContentGroup. The ContentGroup container houses * all of the content panels for each tabbed panel in the widget. For our * default style, this container provides the background color and borders that * surround the content. * * The name of the class ("TabbedPanelsContentGroup") used in this selector is * not necessary to make the widget function. You can use any class name you * want to style the ContentGroup container. */ .TabbedPanelsContentGroup { clear: both; border-left: solid 1px #CCC;

Page 49: Gip Gilles Knockaert

49

border-bottom: solid 1px #CCC; border-top: solid 1px #999; border-right: solid 1px #999; background-color: #EEE; } /* This is the selector for the Content panel. The Content panel holds the * content for a single tabbed panel. For our default style, this container * provides some padding, so that the content is not pushed up against the * widget borders. * * The name of the class ("TabbedPanelsContent") used in this selector is * not necessary to make the widget function. You can use any class name you * want to style the Content container. */ .TabbedPanelsContent { overflow: hidden; padding: 4px; } /* This selector is an example of how to change the appearnce of the currently * active container panel. The class "TabbedPanelsContentVisible" is * programatically added and removed from the content element as the panel * is activated/deactivated. */ .TabbedPanelsContentVisible { } /* Vertical Tabbed Panels * * The following rules override some of the default rules above so that the * TabbedPanels widget renders with its tab buttons along the left side of * the currently active content panel. * * With the rules defined below, the only change that will have to be made * to switch a horizontal tabbed panels widget to a vertical tabbed panels * widget, is to use the "VTabbedPanels" class on the top-level widget * container element, instead of "TabbedPanels". */ .VTabbedPanels { overflow: hidden; zoom: 1; } /* This selector floats the TabGroup so that the tab buttons it contains * render to the left of the active content panel. A border is drawn around

Page 50: Gip Gilles Knockaert

50

* the group container to make it look like a list container. */ .VTabbedPanels .TabbedPanelsTabGroup { float: left; width: 10em; height: 20em; background-color: #EEE; position: relative; border-top: solid 1px #999; border-right: solid 1px #999; border-left: solid 1px #CCC; border-bottom: solid 1px #CCC; } /* This selector disables the float property that is placed on each tab button * by the default TabbedPanelsTab selector rule above. It also draws a bottom * border for the tab. The tab button will get its left and right border from * the TabGroup, and its top border from the TabGroup or tab button above it. */ .VTabbedPanels .TabbedPanelsTab { float: none; margin: 0px; border-top: none; border-left: none; border-right: none; } /* This selector disables the float property that is placed on each tab button * by the default TabbedPanelsTab selector rule above. It also draws a bottom * border for the tab. The tab button will get its left and right border from * the TabGroup, and its top border from the TabGroup or tab button above it. */ .VTabbedPanels .TabbedPanelsTabSelected { background-color: #EEE; border-bottom: solid 1px #999; } /* This selector floats the content panels for the widget so that they * render to the right of the tabbed buttons. */ .VTabbedPanels .TabbedPanelsContentGroup { clear: none; float: left; padding: 0px; width: 30em; height: 20em; }

Page 51: Gip Gilles Knockaert

51

/* Styles for Printing */ @media print { .TabbedPanels { overflow: visible !important; } .TabbedPanelsContentGroup { display: block !important; overflow: visible !important; height: auto !important; } .TabbedPanelsContent { overflow: visible !important; display: block !important; clear:both !important; } .TabbedPanelsTab { overflow: visible !important; display: block !important; clear:both !important; } }

2.4 JavaScript tabbed panels // SpryTabbedPanels.js - version 0.7 - Spry Pre-Release 1.6.1 // // Copyright (c) 2006. Adobe Systems Incorporated. // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // * Neither the name of Adobe Systems Incorporated nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF

Page 52: Gip Gilles Knockaert

52

// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. (function() { // BeginSpryComponent if (typeof Spry == "undefined") window.Spry = {}; if (!Spry.Widget) Spry.Widget = {}; Spry.Widget.TabbedPanels = function(element, opts) { this.element = this.getElement(element); this.defaultTab = 0; // Show the first panel by default. this.tabSelectedClass = "TabbedPanelsTabSelected"; this.tabHoverClass = "TabbedPanelsTabHover"; this.tabFocusedClass = "TabbedPanelsTabFocused"; this.panelVisibleClass = "TabbedPanelsContentVisible"; this.focusElement = null; this.hasFocus = false; this.currentTabIndex = 0; this.enableKeyboardNavigation = true; this.nextPanelKeyCode = Spry.Widget.TabbedPanels.KEY_RIGHT; this.previousPanelKeyCode = Spry.Widget.TabbedPanels.KEY_LEFT; Spry.Widget.TabbedPanels.setOptions(this, opts); // If the defaultTab is expressed as a number/index, convert // it to an element. if (typeof (this.defaultTab) == "number") { if (this.defaultTab < 0) this.defaultTab = 0; else { var count = this.getTabbedPanelCount(); if (this.defaultTab >= count) this.defaultTab = (count > 1) ? (count - 1) : 0; } this.defaultTab = this.getTabs()[this.defaultTab]; } // The defaultTab property is supposed to be the tab element for the tab content // to show by default. The caller is allowed to pass in the element itself or the // element's id, so we need to convert the current value to an element if necessary.

Page 53: Gip Gilles Knockaert

53

if (this.defaultTab) this.defaultTab = this.getElement(this.defaultTab); this.attachBehaviors(); }; Spry.Widget.TabbedPanels.prototype.getElement = function(ele) { if (ele && typeof ele == "string") return document.getElementById(ele); return ele; }; Spry.Widget.TabbedPanels.prototype.getElementChildren = function(element) { var children = []; var child = element.firstChild; while (child) { if (child.nodeType == 1 /* Node.ELEMENT_NODE */) children.push(child); child = child.nextSibling; } return children; }; Spry.Widget.TabbedPanels.prototype.addClassName = function(ele, className) { if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1)) return; ele.className += (ele.className ? " " : "") + className; }; Spry.Widget.TabbedPanels.prototype.removeClassName = function(ele, className) { if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1)) return; ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), ""); }; Spry.Widget.TabbedPanels.setOptions = function(obj, optionsObj, ignoreUndefinedProps) { if (!optionsObj)

Page 54: Gip Gilles Knockaert

54

return; for (var optionName in optionsObj) { if (ignoreUndefinedProps && optionsObj[optionName] == undefined) continue; obj[optionName] = optionsObj[optionName]; } }; Spry.Widget.TabbedPanels.prototype.getTabGroup = function() { if (this.element) { var children = this.getElementChildren(this.element); if (children.length) return children[0]; } return null; }; Spry.Widget.TabbedPanels.prototype.getTabs = function() { var tabs = []; var tg = this.getTabGroup(); if (tg) tabs = this.getElementChildren(tg); return tabs; }; Spry.Widget.TabbedPanels.prototype.getContentPanelGroup = function() { if (this.element) { var children = this.getElementChildren(this.element); if (children.length > 1) return children[1]; } return null; }; Spry.Widget.TabbedPanels.prototype.getContentPanels = function() { var panels = []; var pg = this.getContentPanelGroup(); if (pg) panels = this.getElementChildren(pg); return panels;

Page 55: Gip Gilles Knockaert

55

}; Spry.Widget.TabbedPanels.prototype.getIndex = function(ele, arr) { ele = this.getElement(ele); if (ele && arr && arr.length) { for (var i = 0; i < arr.length; i++) { if (ele == arr[i]) return i; } } return -1; }; Spry.Widget.TabbedPanels.prototype.getTabIndex = function(ele) { var i = this.getIndex(ele, this.getTabs()); if (i < 0) i = this.getIndex(ele, this.getContentPanels()); return i; }; Spry.Widget.TabbedPanels.prototype.getCurrentTabIndex = function() { return this.currentTabIndex; }; Spry.Widget.TabbedPanels.prototype.getTabbedPanelCount = function(ele) { return Math.min(this.getTabs().length, this.getContentPanels().length); }; Spry.Widget.TabbedPanels.addEventListener = function(element, eventType, handler, capture) { try { if (element.addEventListener) element.addEventListener(eventType, handler, capture); else if (element.attachEvent) element.attachEvent("on" + eventType, handler); } catch (e) {} }; Spry.Widget.TabbedPanels.prototype.cancelEvent = function(e)

Page 56: Gip Gilles Knockaert

56

{ if (e.preventDefault) e.preventDefault(); else e.returnValue = false; if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; return false; }; Spry.Widget.TabbedPanels.prototype.onTabClick = function(e, tab) { this.showPanel(tab); return this.cancelEvent(e); }; Spry.Widget.TabbedPanels.prototype.onTabMouseOver = function(e, tab) { this.addClassName(tab, this.tabHoverClass); return false; }; Spry.Widget.TabbedPanels.prototype.onTabMouseOut = function(e, tab) { this.removeClassName(tab, this.tabHoverClass); return false; }; Spry.Widget.TabbedPanels.prototype.onTabFocus = function(e, tab) { this.hasFocus = true; this.addClassName(tab, this.tabFocusedClass); return false; }; Spry.Widget.TabbedPanels.prototype.onTabBlur = function(e, tab) { this.hasFocus = false; this.removeClassName(tab, this.tabFocusedClass); return false; }; Spry.Widget.TabbedPanels.KEY_UP = 38; Spry.Widget.TabbedPanels.KEY_DOWN = 40; Spry.Widget.TabbedPanels.KEY_LEFT = 37; Spry.Widget.TabbedPanels.KEY_RIGHT = 39;

Page 57: Gip Gilles Knockaert

57

Spry.Widget.TabbedPanels.prototype.onTabKeyDown = function(e, tab) { var key = e.keyCode; if (!this.hasFocus || (key != this.previousPanelKeyCode && key != this.nextPanelKeyCode)) return true; var tabs = this.getTabs(); for (var i =0; i < tabs.length; i++) if (tabs[i] == tab) { var el = false; if (key == this.previousPanelKeyCode && i > 0) el = tabs[i-1]; else if (key == this.nextPanelKeyCode && i < tabs.length-1) el = tabs[i+1]; if (el) { this.showPanel(el); el.focus(); break; } } return this.cancelEvent(e); }; Spry.Widget.TabbedPanels.prototype.preorderTraversal = function(root, func) { var stopTraversal = false; if (root) { stopTraversal = func(root); if (root.hasChildNodes()) { var child = root.firstChild; while (!stopTraversal && child) { stopTraversal = this.preorderTraversal(child, func); try { child = child.nextSibling; } catch (e) { child = null; } } } } return stopTraversal; };

Page 58: Gip Gilles Knockaert

58

Spry.Widget.TabbedPanels.prototype.addPanelEventListeners = function(tab, panel) { var self = this; Spry.Widget.TabbedPanels.addEventListener(tab, "click", function(e) { return self.onTabClick(e, tab); }, false); Spry.Widget.TabbedPanels.addEventListener(tab, "mouseover", function(e) { return self.onTabMouseOver(e, tab); }, false); Spry.Widget.TabbedPanels.addEventListener(tab, "mouseout", function(e) { return self.onTabMouseOut(e, tab); }, false); if (this.enableKeyboardNavigation) { // XXX: IE doesn't allow the setting of tabindex dynamically. This means we can't // rely on adding the tabindex attribute if it is missing to enable keyboard navigation // by default. // Find the first element within the tab container that has a tabindex or the first // anchor tag. var tabIndexEle = null; var tabAnchorEle = null; this.preorderTraversal(tab, function(node) { if (node.nodeType == 1 /* NODE.ELEMENT_NODE */) { var tabIndexAttr = tab.attributes.getNamedItem("tabindex"); if (tabIndexAttr) { tabIndexEle = node; return true; } if (!tabAnchorEle && node.nodeName.toLowerCase() == "a") tabAnchorEle = node; } return false; }); if (tabIndexEle) this.focusElement = tabIndexEle; else if (tabAnchorEle) this.focusElement = tabAnchorEle; if (this.focusElement) { Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "focus", function(e) { return self.onTabFocus(e, tab); }, false);

Page 59: Gip Gilles Knockaert

59

Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "blur", function(e) { return self.onTabBlur(e, tab); }, false); Spry.Widget.TabbedPanels.addEventListener(this.focusElement, "keydown", function(e) { return self.onTabKeyDown(e, tab); }, false); } } }; Spry.Widget.TabbedPanels.prototype.showPanel = function(elementOrIndex) { var tpIndex = -1; if (typeof elementOrIndex == "number") tpIndex = elementOrIndex; else // Must be the element for the tab or content panel. tpIndex = this.getTabIndex(elementOrIndex); if (!tpIndex < 0 || tpIndex >= this.getTabbedPanelCount()) return; var tabs = this.getTabs(); var panels = this.getContentPanels(); var numTabbedPanels = Math.max(tabs.length, panels.length); for (var i = 0; i < numTabbedPanels; i++) { if (i != tpIndex) { if (tabs[i]) this.removeClassName(tabs[i], this.tabSelectedClass); if (panels[i]) { this.removeClassName(panels[i], this.panelVisibleClass); panels[i].style.display = "none"; } } } this.addClassName(tabs[tpIndex], this.tabSelectedClass); this.addClassName(panels[tpIndex], this.panelVisibleClass); panels[tpIndex].style.display = "block"; this.currentTabIndex = tpIndex; }; Spry.Widget.TabbedPanels.prototype.attachBehaviors = function(element)

Page 60: Gip Gilles Knockaert

60

{ var tabs = this.getTabs(); var panels = this.getContentPanels(); var panelCount = this.getTabbedPanelCount(); for (var i = 0; i < panelCount; i++) this.addPanelEventListeners(tabs[i], panels[i]); this.showPanel(this.defaultTab); }; })(); // EndSpryComponent

Page 61: Gip Gilles Knockaert

61

Hoofdstuk 4 Informaticaproject

1 Automatiserings- of beheersproject

1.1 Probleemstelling Wat? Een programma voor leerkrachten waarmee ze gemakkelijk hun lessen, taken, sb’s en andere gegevens kunnen ingeven. Dit wordt opgeslagen in een database en moet op eender welke plaats toegankelijk zijn. Specifieke vereisten:

- Bij het opstarten van het programma kan de gebruiker kiezen tussen leerkracht, student en administrator als type gebruiker. Dit in combinatie met het ingeven van een gebruikersnaam en wachtwoord.

- De leerkracht moet in staat zijn op een eenvoudige manier lessen, sb’s en taken in te voeren en deze hierna simpel weer te geven.

- Alle activiteiten moeten overzichtelijk worden weergegeven op een formulier - De leerkracht moet in staat zijn de gegevens te wijzigen op een latere datum om

verstrooidheidsfouten te voorkomen. - Wanneer nodig moet het mogelijk zijn om de ingevoerde gegevens van een bepaalde

periode af te drukken/exporteren naar een tekstbestand. Het programma is modulair opgebouwd en eenvoudig aanpasbaar met een moderne GUI die gemakkelijk te bedienen is Functies?

Ingeven van lessen, sb’s, taken,… Raadplegen van agenda (sorteerbaar op leerkracht, datum, les) Helpfunctie met slim zoeken (zoekmachine voorspelt mogelijke trefwoorden) Eventueel online raadplegen Opties om connecties te leggen met de server Inloggen voor leerkrachten (met Gast account voor leerlingen)

Extra’s? Tijdfuncties (zoals berekenen welke datum het is na x-aantal dagen) Mooie kalender Schoolactiviteiten weergeven Uploaden en downloaden van bestanden betreffende een ingegeven opdracht Downloaden van kalender naar word/txt/… bestand Helpfunctie (Contact met netwerkbeheerder via e-mail of andere personen die je kunt

toevoegen) Administrator console (bestuurt het gebruik en de rechten van de clients. Misschien ook

hulp op afstand via chat?)

Page 62: Gip Gilles Knockaert

62

1.2 Tabelontwerp Lijst Entiteiten

Klas Leerkracht Leerling Lesuur Vak Datum DatumSB DatumTaak Einddatum datum BeschrijvingSB beschrijvingLes beschrijvingTaak Taken straf lokaal

TblLeerling KlasID* nummer Voornaam Leerling Achternaam Leerling

*Klas en Nummer zouden samen de primaire sleutel vormen. Zo heb je dan bijvoorbeeld 6IB05 voor de leerling uit 6IB met als klasnummer 5 TblLeerkrachten

Leerkracht ID (nr. van vakje op school)

Voornaam leerkracht Achternaam leerkracht

TblVakken

LeerkrachtID Vak

Page 63: Gip Gilles Knockaert

63

TblLessen LesID* LeerkrachtID vak lesuur beschrijvingLes datum

*Klas en lesuur vormen dan samen de primaire sleutel “LesID” ** hierin komt een korte lesbeschrijving TblKlassen

LeerlingID

tblStraffen

leerlingID LeerkrachtID datum Einddatum Straf

*Dit houdt in wanneer de straf af moet zijn. **Dit houdt in wat je moet doen als straf. TblSB’s

LesID LeerkrachtID DatumSB* BeschrijvingSB**

*Dit is de datum waarop de SB afgelegd wordt **Dit houdt in waarover de SB zal gaan tblTaken

leerlingID LeerkrachtID DatumTaak* beschrijvingTaak**

*Dit is de datum waarop de taak ingediend moet worden ** Dit geeft weer wat de taak precies inhoudt

Page 64: Gip Gilles Knockaert

64

1.3 Gebeurtenissen en procedures Admin.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnToevoegen Click Gebruiker toevoegen aan lijst btnVerwijder Click Gebruiker verwijderen van lijst btnNaarDatabase Click Gebruikers opslaan in database btnKlasToeveogen Click Klas opslaan in database btnVakToevoegen Click Vak opslaan in database btnLokaalToevoegen Click Lokaal opslaan in database BewerkLes.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker en laden

van alle items btnKies Click Keuze opslaan en herladen van

items btnKiesHoofd Click Hoofdonderdeel kiezen btnKiesSub Click Subonderdeel kiezen btnKiesItem Click Item in keuzelijst plaatsen btnVerwijderItem Click Item verwijderen uit keuzelijst btnOpslaan Click Opslaan bewerkte les btnAnnuleren Click Annuleren van bewerking DoelstellingenBekijken.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnKies Click Enkele klas laden btnKiesVak Click Klas/Vak combinatie laden DoelstellingenToevoegen.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker HoofdOnd Click Toevoegen hoofdonderdeel SubOnd Click Toevoegen subonderdeel Item Click Toevoegen item btnOmhoog Click Item naar boven verplaatsen btnOmlaag Click Item naar onder verplaatsen btnVerwijder Click Item verwijderen btnPlaatsen Click Doelstellingen opslaan in database ddlKlas DataBound Klas opslaan in sessie ddlKlas SelectedindexChanged Klas opslaan in sessie Handleiding.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker

Page 65: Gip Gilles Knockaert

65

HerbekijkenPerDag.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnPrint Click Printpagina openen btnBekijk Click Laden les en tonen btnToevoegen Click Les opslaan in sessie ddlKlassen DataBound Klas opslaan in sessie ddlKlassen SelectedIndexChanged Klas opslaan in sessie btnAnnuleren Click Annuleren opslaan van lessen Home.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker Treeview1 SelectedNodeChanged Leegmaken bepaalde sessies IngaveFormulier.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnKiesH Click Hoofdonderdeel kiezen btnKiesS Click Subonderdeel kiezen btnKiesItem Click Item in keuzelijst plaatsen btnVerwijderItem Click Item verwijderen uit keuzelijst btnOpslaan Click Opslaan bewerkte les btnAnnuleren Click Annuleren van bewerking Inlog.aspx Object Gebeurtenis Doel pnlLogin Authenticate Gebruiker inloggen en verifiëren Kalender.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker clrKalender DayRender Kleuren van dagen waar al een les

is ingevuld clrKalender SelectionChanged Afhankelijk van keuze bepaalde

pagina openen of actie uitvoeren ddlKlassen Databound Opslaan klas in sessie en dagen

laden ddlKlassen SelectionChanged Opslaan klas in sessie en dagen

laden clrKalender VisibleMonthChanged Herladen dagen DropDownList1 SelectedIndexChanged Herladen kalender bij keuze nieuw

jaar PrintBekijkPerLes.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker, laden van

tabellen om te printen en print uitvoeren

ToevoegenKlasKeuze.aspx Object Gebeurtenis Doel

Page 66: Gip Gilles Knockaert

66

Page Load Controle van gebruiker en klassen laden

Button1 Click Opslaan keuze in sessie en naar ingaveformulier gaan

Uitloggen.aspx Object Gebeurtenis Doel btnJa Click Sessie legen en naar inlogpagina

gaan btnNee Click Terug naar home.aspx gaan Adminpaginas/Samenvatting/Gebruikers.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnPrint Click Koptekst opslaan en printpagina

openen Adminpaginas/Samenvatting/Klassen.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnPrint Click Koptekst opslaan en printpagina

openen Adminpaginas/Samenvatting/Lessen.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnPrint Click Koptekst opslaan en printpagina

openen Adminpaginas/Samenvatting/Lokalen.aspx Object Gebeurtenis Doel Page Load Controle van gebruiker btnPrint Click Koptekst opslaan en printpagina

openen Adminpaginas/Samenvatting/Print/ Gebruikers.aspx Object Gebeurtenis Doel Page Load Laden tekst en print uitvoeren Adminpaginas/Samenvatting/Print/ Klassen.aspx Object Gebeurtenis Doel Page Load Laden tekst en print uitvoeren Adminpaginas/Samenvatting/Print/ Lessen.aspx Object Gebeurtenis Doel Page Load Laden tekst en print uitvoeren Adminpaginas/Samenvatting/Print/ Lokalen.aspx Object Gebeurtenis Doel Page Load Laden tekst en print uitvoeren

Page 67: Gip Gilles Knockaert

67

1.4 Programma

1.4.1 Adminpaneel

Page 68: Gip Gilles Knockaert

68

Naam GridView1 DataSourceID SqlDataSource1 Naam TextBox1 Naam btnToevoegen Text Toevoegen Naam ListBox1 Naam btnVerwijder Text Verwijder items Naam btnNaarDatabase Text In database plaatsen Naam GridView2 DataSourceID SqlDataSource3 Naam txtKlas Naam txtVakToevoegen Naam txtAfkortingToevoegen Naam txtLeerkrachtVak Naam ddlKlas DataSourceID SqlDataSource5 Naam btnVakToevoegen Text Vak toevoegen Naam GridView3 DataSourceID SqlDataSource4 Naam GridView4 DataSourceID SqlDataSource6 Naam txtLokaal Naam txtLkrThuisklas Naam btnLokaalToevoegen Text Lokaal toevoegen HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="admin.aspx.vb" Inherits="admin" %> <!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></title> <style type="text/css"> body { background-color: #7C819F; } .style1 {} .style2 {}

Page 69: Gip Gilles Knockaert

69

.style4 {} .style5 { height: 26px; } .style6 { height: 1375px; } </style> </head> <body> <form id="form1" runat="server"> <div class="style6"> <asp:Panel ID="Panel1" runat="server" BackColor="#DADCE4"> <strong>1. Alle gebruikers</strong><br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass="style4" DataKeyNames="ID" DataSourceID="SqlDataSource1" Height="16px" Width="766px" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Paswoord" HeaderText="Paswoord" SortExpression="Paswoord" /> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> </asp:Panel> <br /> <asp:Panel ID="Panel2" runat="server" BackColor="#DADCE4"> <strong>2. Gebruikers toevoegen (1 per lijn)</strong><br /> Syntax: Naam-Paswoord<br /> <asp:TextBox ID="TextBox1" runat="server" CssClass="style1" Height="22px"

Page 70: Gip Gilles Knockaert

70

Width="468px"></asp:TextBox> <br /> <asp:Button ID="btnToevoegen" runat="server" Text="Toevoegen" /> <br /> <br /> <asp:ListBox ID="ListBox1" runat="server" CssClass="style2" Height="141px" Width="473px"></asp:ListBox> <br /> <asp:Button ID="btnVerwijder" runat="server" Text="Verwijder item" /> <br /> <br /> <asp:Button ID="btnNaarDatabase" runat="server" Text="In database plaatsen" CssClass="style5" /> </asp:Panel> <br /> <asp:Panel ID="Panel3" runat="server" BackColor="#DADCE4"> <strong>3. Klassen toevoegen<br /> </strong> <asp:GridView ID="GridView2" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" CssClass="style4" DataKeyNames="ID" DataSourceID="SqlDataSource3" ForeColor="#333333" GridLines="None" Height="16px" Width="766px"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" DeleteCommand="DELETE FROM [PGGtblKlassen] WHERE [ID] = @ID" InsertCommand="INSERT INTO [PGGtblKlassen] ([ID], [Klas]) VALUES (@ID, @Klas)" SelectCommand="SELECT * FROM [PGGtblKlassen]" UpdateCommand="UPDATE [PGGtblKlassen] SET [Klas] = @Klas WHERE [ID] = @ID">

Page 71: Gip Gilles Knockaert

71

<DeleteParameters> <asp:Parameter Name="ID" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="ID" Type="String" /> <asp:Parameter Name="Klas" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Klas" Type="String" /> <asp:Parameter Name="ID" Type="String" /> </UpdateParameters> </asp:SqlDataSource> <br /> <br /> <asp:TextBox ID="txtKlas" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br /> <asp:Button ID="btnKlasToeveogen" runat="server" Text="Klas toevoegen" /> </asp:Panel> <br /> <asp:Panel ID="Panel4" runat="server" BackColor="#DADCE4"> <strong>4. Vakken toevoegen</strong><br /> Vaknaam<br /> <asp:TextBox ID="txtVakToevoegen" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br /> Afkorting<br /> <asp:TextBox ID="txtAfkortingToevoegen" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br /> Leerkracht<br /> <asp:TextBox ID="txtLeerkrachtVak" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br /> <br /> <asp:DropDownList ID="ddlKlas" runat="server" DataSourceID="SqlDataSource5" DataTextField="Klas" DataValueField="ID"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"></asp:SqlDataSource> <br /> <asp:Button ID="btnVakToevoegen" runat="server" Text="Vak toevoegen" /> <br /> <br /> <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" CssClass="style4" DataKeyNames="ID" DataSourceID="SqlDataSource4" Height="16px"

Page 72: Gip Gilles Knockaert

72

Width="766px" AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" ReadOnly="True" /> <asp:BoundField DataField="Vaknaam" HeaderText="Vaknaam" SortExpression="Vaknaam" /> <asp:BoundField DataField="Leerkracht" HeaderText="Leerkracht" SortExpression="Leerkracht" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> <asp:BoundField DataField="Afkorting" HeaderText="Afkorting" SortExpression="Afkorting" /> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblVakken]" DeleteCommand="DELETE FROM [PGGtblVakken] WHERE [ID] = @ID" InsertCommand="INSERT INTO [PGGtblVakken] ([ID], [Vaknaam], [Leerkracht], [Klas], [Afkorting]) VALUES (@ID, @Vaknaam, @Leerkracht, @Klas, @Afkorting)" UpdateCommand="UPDATE [PGGtblVakken] SET [Vaknaam] = @Vaknaam, [Leerkracht] = @Leerkracht, [Klas] = @Klas, [Afkorting] = @Afkorting WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="ID" Type="String" /> <asp:Parameter Name="Vaknaam" Type="String" /> <asp:Parameter Name="Leerkracht" Type="String" /> <asp:Parameter Name="Klas" Type="String" />

Page 73: Gip Gilles Knockaert

73

<asp:Parameter Name="Afkorting" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Vaknaam" Type="String" /> <asp:Parameter Name="Leerkracht" Type="String" /> <asp:Parameter Name="Klas" Type="String" /> <asp:Parameter Name="Afkorting" Type="String" /> <asp:Parameter Name="ID" Type="String" /> </UpdateParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" DeleteCommand="DELETE FROM [PGGtblGebruikers] WHERE [ID] = @original_ID" InsertCommand="INSERT INTO [PGGtblGebruikers] ([Naam], [Paswoord], [ID]) VALUES (@Naam, @Paswoord, @ID)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [PGGtblGebruikers]" UpdateCommand="UPDATE [PGGtblGebruikers] SET [Naam] = @Naam, [Paswoord] = @Paswoord WHERE [ID] = @original_ID"> <DeleteParameters> <asp:Parameter Name="original_ID" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Naam" Type="String" /> <asp:Parameter Name="Paswoord" Type="String" /> <asp:Parameter Name="ID" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Naam" Type="String" /> <asp:Parameter Name="Paswoord" Type="String" /> <asp:Parameter Name="original_ID" Type="String" /> </UpdateParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblGebruikers]"></asp:SqlDataSource> </asp:Panel> &nbsp;<br /> <asp:Panel ID="Panel5" runat="server" BackColor="#DADCE4"> 5<strong>. Lokalen toevoegen<br /> </strong> <asp:GridView ID="GridView4" runat="server" AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" CssClass="style4" DataKeyNames="ID" DataSourceID="SqlDataSource6" ForeColor="#333333" GridLines="None" Height="16px" Width="766px"> <AlternatingRowStyle BackColor="White" ForeColor="#284775" />

Page 74: Gip Gilles Knockaert

74

<Columns> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Lokaal" HeaderText="Lokaal" SortExpression="Lokaal" /> <asp:BoundField DataField="Thuisklas" HeaderText="Thuisklas" SortExpression="Thuisklas" /> </Columns> <EditRowStyle BackColor="#999999" /> <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <SortedAscendingCellStyle BackColor="#E9E7E2" /> <SortedAscendingHeaderStyle BackColor="#506C8C" /> <SortedDescendingCellStyle BackColor="#FFFDF8" /> <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLokalen]" DeleteCommand="DELETE FROM [PGGtblLokalen] WHERE [ID] = @ID" InsertCommand="INSERT INTO [PGGtblLokalen] ([ID], [Lokaal], [Thuisklas]) VALUES (@ID, @Lokaal, @Thuisklas)" UpdateCommand="UPDATE [PGGtblLokalen] SET [Lokaal] = @Lokaal, [Thuisklas] = @Thuisklas WHERE [ID] = @ID"> <DeleteParameters> <asp:Parameter Name="ID" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="ID" Type="String" /> <asp:Parameter Name="Lokaal" Type="String" /> <asp:Parameter Name="Thuisklas" Type="String" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Lokaal" Type="String" /> <asp:Parameter Name="Thuisklas" Type="String" /> <asp:Parameter Name="ID" Type="String" /> </UpdateParameters> </asp:SqlDataSource> <br /> Lokaalnaam (vb. A001)<br /> <asp:TextBox ID="txtLokaal" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br />

Page 75: Gip Gilles Knockaert

75

Leerkracht thuisklas<br /> <asp:TextBox ID="txtLkrThuisklas" runat="server" CssClass="style1" Height="22px" Width="468px"></asp:TextBox> <br /> <asp:Button ID="btnLokaalToevoegen" runat="server" Text="Lokaal toevoegen" /> </asp:Panel> </div> </form> </body> </html> ASP Imports System.Data Partial Class admin Inherits System.Web.UI.Page Protected Sub btnToevoegen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'Gebruiker toevoegen Try ListBox1.Items.Add(TextBox1.Text) Session("LastFocus") = TextBox1 Catch ex As Exception MsgBox("Kan item niet toevoegen") End Try End Sub Protected Sub btnVerwijder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerwijder.Click 'Gebruiker verwijderen Try ListBox1.SelectedItem.Text = "" Catch ex As Exception MsgBox("U heeft geen item geselecteerd") End Try End Sub Protected Sub btnNaarDatabase_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNaarDatabase.Click 'Declareren variabelen Dim intAantalGebruikers As String Dim objCommando As New SqlClient.SqlCommand

Page 76: Gip Gilles Knockaert

76

Dim objConnectie As New SqlClient.SqlConnection Dim strSQL As String Dim strSplits() As String Dim user, pw As String intAantalGebruikers = GridView1.Rows.Count 'Door alle items gaan in de listbox For Each item In ListBox1.Items 'Controleren of het leeg is If Not item.text = "" Then 'Controle of de syntax correct is If item.text.contains("-") Then 'Gebruik +1, als ID intAantalGebruikers += 1 'Splitsen van de string strSplits = item.text.split("-") 'User en pw opslaan user = strSplits(0) pw = strSplits(1) 'Connectie maken objConnectie.ConnectionString = SqlDataSource2.ConnectionString 'SQL commando strSQL = "INSERT INTO PGGtblGebruikers (ID, Paswoord, Naam) VALUES ('" + intAantalGebruikers + "','" + pw + "','" + user + " ')" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() 'Refreshen van de gridview GridView1.DataBind() End If End If Next End Sub Protected Sub btnKlasToeveogen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKlasToeveogen.Click Try 'Declareren variabelen Dim intAantalklassen As String Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strSQL As String

Page 77: Gip Gilles Knockaert

77

'Aantal klassen tellen intAantalklassen = GridView2.Rows.Count 'Controle als textbox niet leeg is If Not txtKlas.Text = "" Then 'Klas +1 als ID intAantalklassen += 1 'Conenectie maken objConnectie.ConnectionString = SqlDataSource2.ConnectionString 'SQL Commando strSQL = "INSERT INTO PGGtblKlassen (ID, Klas) VALUES ('" + intAantalklassen + "','" + txtKlas.Text + " ')" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() End If 'Gridview refreshen GridView2.DataBind() Session("LastFocus") = txtKlas Catch ex As Exception MsgBox("Kan klas niet toevoegen") End Try End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If If Session("AdminState") = 0 Then Response.Redirect("Verboden.aspx") End If Session("VorigeKlas") = "" Session("GevondenLessen") = 0 Session("LaatsteTabel") = "" Session("GekozenKlassen") = "" Try Dim ctl As Control ctl = Session("LastFocus") ctl.Focus() Catch ex As Exception End Try End Sub

Page 78: Gip Gilles Knockaert

78

Protected Sub btnVakToevoegen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVakToevoegen.Click Try 'Declareren variabelen Dim intAantalklassen As String Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strSQL As String 'Aantal klassen tellen intAantalklassen = GridView2.Rows.Count 'Controle of textbox niet leeg is If Not txtAfkortingToevoegen.Text = "" Then Dim strID, strVaknaam, strLkr, strKlas, strAfk As String strVaknaam = txtVakToevoegen.Text strLkr = txtLeerkrachtVak.Text strKlas = ddlKlas.SelectedItem.Text.Replace(" ", "") strAfk = txtAfkortingToevoegen.Text strID = txtAfkortingToevoegen.Text & "-" & strKlas 'Conenectie maken objConnectie.ConnectionString = SqlDataSource4.ConnectionString 'SQL Commando strSQL = "INSERT INTO PGGtblVakken (ID, Vaknaam, Leerkracht, Klas, Afkorting) VALUES ('" + strID + "','" + strVaknaam + "','" + strLkr + "','" + strKlas + "','" + strAfk + " ')" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() End If 'Gridview refreshen GridView3.DataBind() Session("LastFocus") = txtVakToevoegen Catch ex As Exception MsgBox("Kan vak niet toevoegen") End Try End Sub Protected Sub btnLokaalToevoegen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLokaalToevoegen.Click Dim strTellen, strLokaal, strLkr As String Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection

Page 79: Gip Gilles Knockaert

79

Dim strSQL As String strTellen = GridView4.Rows.Count strTellen += 1 strLokaal = txtLokaal.Text strLkr = txtLkrThuisklas.Text objConnectie.ConnectionString = SqlDataSource4.ConnectionString 'SQL Commando strSQL = "INSERT INTO PGGtblLokalen (ID, Lokaal, Thuisklas) VALUES ('" + strTellen + "','" + strLokaal + "','" + strLkr + " ')" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() GridView4.DataBind() Session("LastFocus") = txtLokaal End Sub End Class

Page 80: Gip Gilles Knockaert

80

1.4.2 Bewerk les

Naam DropDownList1 Naam DropDownList2 Naam btnKiesKlas² Text Kies Naam ddlLokaal DataSourceID SqlDataSource4 Naam TextBox1 Naam TextBox4 Naam ddlHoofd Naam btnKiesH Text Kies Naam ddlSub Naam btnKiesS Text Kies Naam lstItemAlle Naam lstItemGekozen Naam btnKiesItem Text --> Naam btnVerwijderItem Text <-- HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="BewerkLes.aspx.vb" Inherits="BewerkLes" %>

Page 81: Gip Gilles Knockaert

81

<!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></title> <style type="text/css"> body { background-color: #7C819F; } #Tabel1 { position: relative; top: 81px; left: 0px; background-color: #7C819F; margin-left: 50px; color: #A02125; } .style1 { width: 53%; border-style: solid; border-width: 1px; } #Titel_Tabel { color: #A02125; text-decoration: underline; font-size: XX-Large; text-align: center; } .style5 { height: 112px; } .style3 { height: 181px; } .style6 {

Page 82: Gip Gilles Knockaert

82

width: 30px; } .style7 { height: 23px; } </style> </head> <body> <form id="form1" runat="server"> <div> <table align="center" class="style1" id="Tabel1"> <tr> <td id="Titel_Tabel" class="style5"> Bewerken: Les<br /> <asp:Label ID="lblDatum" runat="server"></asp:Label> <br /> <asp:Label ID="lblKlassen" runat="server"></asp:Label> </td> </tr> <tr> <td> Lesuur</td> </tr> <tr> <td> <asp:DropDownList ID="DropDownList1" runat="server" Height="16px" Width="180px"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> <asp:ListItem>6</asp:ListItem> <asp:ListItem>7</asp:ListItem> <asp:ListItem>8</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td class="style7"> Klas</td> </tr>

Page 83: Gip Gilles Knockaert

83

<tr> <td> <asp:DropDownList ID="DropDownList2" runat="server" Height="16px" Width="180px"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> <asp:ListItem>6</asp:ListItem> <asp:ListItem>7</asp:ListItem> <asp:ListItem>8</asp:ListItem> </asp:DropDownList> <asp:Button ID="btnKiesKlas" runat="server" Text="Kies" /> </td> </tr> <tr> <td class="style7"> Lokaal</td> </tr> <tr> <td class="style7"> <asp:DropDownList ID="ddlLokaal" runat="server" DataSourceID="SqlDataSource4" DataTextField="Lokaal" DataValueField="ID"> </asp:DropDownList> </td> </tr> <tr> <td align="center"> <table> <tr> <td width= "300px"> Onderwerp: </td> <td width= "300px"> Commentaar: </td> </tr> </table> </td> </tr> <tr>

Page 84: Gip Gilles Knockaert

84

<td align="center"> <table> <tr> <td> <asp:TextBox ID="TextBox1" runat="server" Height="150px" Width="300px" TextMode="MultiLine"></asp:TextBox> </td> <td> <asp:TextBox ID="TextBox4" runat="server" Height="150px" Width="300px" TextMode="MultiLine"></asp:TextBox> </td> </tr> </table> </td> </tr> <tr> <td> Behaalde doestelling</td> </tr> <tr> <td class="style3"> <asp:DropDownList ID="ddlHoofd" runat="server"> </asp:DropDownList> <asp:Button ID="btnKiesH" runat="server" Text="Kies" /> <br /> <asp:DropDownList ID="ddlSub" runat="server"> </asp:DropDownList> <asp:Button ID="btnKiesS" runat="server" Text="Kies" /> <br /> <asp:ListBox ID="lstItemAlle" runat="server" Height="140px" Width="106px" SelectionMode="Multiple"></asp:ListBox> <asp:Button ID="btnKiesItem" runat="server" Text="--&gt;" CssClass="style6" /> <asp:Button ID="btnVerwijderItem" runat="server" Text="&lt;--" /> <asp:ListBox ID="lstItemGekozen" runat="server" Height="140px" Width="106px" SelectionMode="Multiple"> </asp:ListBox> <asp:CheckBoxList ID="cblDoelstellingen" runat="server" style="text-align: left"> </asp:CheckBoxList> <br />

Page 85: Gip Gilles Knockaert

85

<br /> <asp:Button ID="btnOpslaan" runat="server" Text="Opslaan" style="font-style: italic" UseSubmitBehavior="False" /> <asp:Button ID="btnAnnuleren" runat="server" Text="Annuleren" style="font-style: italic" UseSubmitBehavior="False" /> </td> </tr> </table> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblLessen]"></asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLessen]"> </asp:SqlDataSource> <br /> <br /> <asp:ListBox ID="lstSub" runat="server" AutoPostBack="True" Visible="False"></asp:ListBox> <asp:ListBox ID="lstItems" runat="server" AutoPostBack="True" Visible="False"></asp:ListBox> <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLokalen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Imports System.Data Partial Class BewerkLes Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' Try ddlHoofd.Items.Clear() lstSub.Items.Clear() lstItems.Items.Clear()

Page 86: Gip Gilles Knockaert

86

If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection DropDownList2.Items.Clear() 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblKlassen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Lijst klassen vullen aan de hand van database. While objDataReader.Read() Dim strKlas As String strKlas = objDataReader.Item("Klas") strKlas = strKlas.Replace(" ", "") Dim blnBestaat As Boolean = False If blnBestaat = False Then DropDownList2.Items.Add(strKlas) End If End While 'Datareader sluiten objDataReader.Close() 'Catch ex As Exception ' MsgBox("Kan klassen niet laden") 'End Try 'ddlHoofd.SelectedIndex = Session("GeselecteerdHoofdBewerken") InlezenLessen() End Sub

Page 87: Gip Gilles Knockaert

87

Private Sub InlezenLessen() ' ' Try 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblLessen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Lijst klassen vullen aan de hand van database. Dim strID, strSplits(), strDatum, strKlas, strLesuur, strLesuurUitDatabase, strKlasUitDatabase As String Dim intTeller As Integer = 0 Session("DoelstellingenIDs") = "" While objDataReader.Read() strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum = strSplits(0) 'witruimte weghalen strKlas = Session("Bewerkklas") strLesuur = Session("BewerkUur") strLesuurUitDatabase = objDataReader.Item("Lesuur").ToString.Replace(" ", "") strKlasUitDatabase = objDataReader.Item("Klas").ToString.Replace(" ", "") 'Als het lesuur overeenkomt.. If strLesuurUitDatabase = strLesuur Then 'Als de klas overeenkomt.. If strKlasUitDatabase = strKlas Then ''Als de datum overeenkomt.. If Session("GeselecteerdeDatum") = strDatum Then 'Dan worden de variabelen uit de database opgeslaan of weergegeven TextBox1.Text = objDataReader.Item("Onderwerp") TextBox4.Text = objDataReader.Item("Commentaar")

Page 88: Gip Gilles Knockaert

88

Dim strLokSplit(1) As String strLokSplit = objDataReader.Item("Lokaal").ToString.Split("-") ddlLokaal.SelectedIndex = (strLokSplit(1).Replace(" ", "") - 1) Session("DoelstellingenIDs") &= objDataReader.Item("Doelstelling") & "," Session("LesID") = objDataReader.Item("ID").ToString.Replace(" ", "") 'Oorspronkelijke waarden opslaan uit de database Session("strLesuurOorspronkelijk") = objDataReader.Item("Lesuur") Session("strOnderwerpOorspronkelijk") = objDataReader.Item("Onderwerp") Session("strKlasOorspronkelijk") = objDataReader.Item("Klas") Session("strCommentaarOorspronkelijk") = objDataReader.Item("Commentaar") Session("strDoelstellingOorspronkelijk") = objDataReader.Item("Doelstelling") 'Doelen splitsen Dim strSplitDoel() As String strSplitDoel = Session("strDoelstellingOorspronkelijk").split(",") End If End If End If End While 'Datareader sluiten objDataReader.Close() 'Catch ex As Exception ' MsgBox("Kan lessen niet laden") 'End Try ‘Doelstellingen ophalen 'ddlHoofd.SelectedIndex = Session("GeselecteerdHoofdBewerken") InlezenDoelstellingen() End Sub Private Sub InlezenDoelstellingen() 'Lijst wissen cblDoelstellingen.Items.Clear() 'Doelstellingen splitsen Dim strSplits() As String If Not Session("DoelstellingenIDs") = "" Then strSplits = Session("DoelstellingenIDs").ToString.Split(",") Dim objDataReader2 As SqlClient.SqlDataReader Dim objCommando2 As New SqlClient.SqlCommand Dim objConnectie2 As New SqlClient.SqlConnection

Page 89: Gip Gilles Knockaert

89

'Connectiestring instellen objConnectie2.ConnectionString = SqlDataSource2.ConnectionString 'Connectie openen objConnectie2.Open() 'Commando instellen objCommando2.Connection = objConnectie2 objCommando2.CommandText = "SELECT * FROM PGGtblDoelstellingen" 'Datareader uitvoeren objDataReader2 = objCommando2.ExecuteReader lstItemGekozen.Items.Clear() 'Lijst klassen vullen aan de hand van database. While objDataReader2.Read() Dim strNaam As String 'Syntax: Doelstelling naam | ID van de doelstelling strNaam = objDataReader2.Item("Doelstelling").ToString.Replace(" ", "") & " |" & objDataReader2.Item("ID").ToString.Replace(" ", "") For intTeller = 0 To strSplits.GetUpperBound(0) - 1 If objDataReader2.Item("ID").ToString.Replace(" ", "") = strSplits(intTeller) Then cblDoelstellingen.Items.Add(strNaam) lstItemGekozen.Items.Add(strNaam) End If Next End While 'Datareader sluiten objDataReader2.Close() 'Catch ex As Exception ' MsgBox("Kan doelstellingen niet laden") 'End Try 'ddlHoofd.SelectedIndex = Session("GeselecteerdHoofdBewerken") NieuweDoelstellingen() End If End Sub Public Sub NieuweDoelstellingen() Dim klassengesplitst(99) As String If Session("FirstName") = "" Then

Page 90: Gip Gilles Knockaert

90

Response.Redirect("Inlog.aspx") End If lblDatum.Text = Session("GeselecteerdeDatum") lblKlassen.Text = Session("Bewerkklas") klassengesplitst = Session("Bewerkklas").Split(",") 'cblDoelstellingen.Items.Clear() '-------------------------DOELSTELLINGEN Dim objDataReader2 As SqlClient.SqlDataReader Dim objCommando2 As New SqlClient.SqlCommand Dim objConnectie2 As New SqlClient.SqlConnection 'Connectiestring instellen objConnectie2.ConnectionString = SqlDataSource2.ConnectionString 'Connectie openen objConnectie2.Open() 'Commando instellen objCommando2.Connection = objConnectie2 objCommando2.CommandText = "SELECT * FROM PGGtblDoelstellingen" 'Datareader uitvoeren objDataReader2 = objCommando2.ExecuteReader 'Lijst doelstelling vullen aan de hand van database. While objDataReader2.Read() 'Controle klas & leerkracht => doelstelling toevoegen If objDataReader2.Item("Klas").ToString.Replace(" ", "") = Session("Bewerkklas") Then If objDataReader2.Item("Leerkracht").ToString.Replace(" ", "") = Session("FirstName").ToString.Replace(" ", "") Then Dim strSplit(4) As String strSplit = objDataReader2.Item("ID").ToString.Split("*") Dim aantalstreepjes As Integer aantalstreepjes = strSplit.GetUpperBound(0) Dim strID, strTekst, strKlas, strLkr, strVak As String Select Case aantalstreepjes Case 0 'hoofd ddlHoofd.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) ' strID = strSplit(0) & "-" & strVak & "-" & strKlas 'strTekst = strSplit(1) Case 1 'sub

Page 91: Gip Gilles Knockaert

91

lstSub.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) ' strID = strSplit(0) & "*" & strSplit(1) & "-" & strVak & "-" & strKlas ' strTekst = strSplit(2) Case 2 'item ' strID = strSplit(0) & "*" & strSplit(1) & "*" & strSplit(2) & "-" & strVak & "-" & strKlas ' strTekst = strSplit(3) lstItems.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) End Select 'cblDoelstellingen.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) End If End If End While 'Datareader sluiten objDataReader2.Close() ddlHoofd.SelectedIndex = Session("GeselecteerdHoofdBewerken") End Sub Protected Sub btnOpslaan_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOpslaan.Click Try MsgBox(ddlLokaal.SelectedItem.Text) 'Declareren variabelen Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strSQL, strID, strLesuur, strOnderwerp, strKlas, strCommentaar, strDoelstelling As String strDoelstelling = Session("AlleGekozenDoelstellingen") 'Connectie maken objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Variabelen opslaan (ingegeven waarden) strLesuur = DropDownList1.Text strOnderwerp = TextBox1.Text strCommentaar = TextBox4.Text strKlas = DropDownList2.SelectedItem.Text.Replace(" ", "") 'Tellen doelstellingen MsgBox(strDoelstelling) 'ID opslaan

Page 92: Gip Gilles Knockaert

92

strID = Session("LesID") 'SQL Commando strSQL = "UPDATE PGGtblLessen SET Lesuur='" & strLesuur & "', Onderwerp='" & strOnderwerp & "' ,Klas='" & strKlas & "' ,Commentaar='" & strCommentaar & "' ,Doelstelling='" & strDoelstelling & "' WHERE Lesuur='" & Session("strLesuurOorspronkelijk") & "' AND Onderwerp='" & Session("strOnderwerpOorspronkelijk") & "' AND Klas='" & Session("strKlasOorspronkelijk") & "' AND Commentaar='" & Session("strCommentaarOorspronkelijk") & "' AND Doelstelling='" & Session("strDoelstellingOorspronkelijk") & "'" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() 'Terug naar de kalender gaan Response.Redirect("Kalender.aspx") Catch ex As Exception MsgBox(ex.Message) End Try End Sub Protected Sub btnAnnuleren_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAnnuleren.Click Try Response.Redirect("Kalender.aspx") Catch ex As Exception End Try End Sub Protected Sub btnKiesH_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesH.Click Try Session("GeselecteerdHoofd") = ddlHoofd.SelectedIndex.ToString ddlSub.Items.Clear() MsgBox(Session("GeselecteerdHoofd")) Dim strSplit(4) As String strSplit = ddlHoofd.SelectedItem.Text.Split("|") Dim strh(4) As String strh = strSplit(1).Split("-") For Each item In lstSub.Items Dim strSplits(4) As String strSplits = item.text.ToString.Split("|") Dim strs(4) As String strs = strSplits(1).Split("*")

Page 93: Gip Gilles Knockaert

93

If strh(0) = strs(0) Then ddlSub.Items.Add(item.text) End If Next Catch ex As Exception End Try End Sub Protected Sub btnKiesS_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesS.Click Try lstItemAlle.Items.Clear() Dim strSplit(4) As String strSplit = ddlSub.SelectedItem.Text.Split("|") Dim strh(4) As String strh = strSplit(1).Split("-") Dim strsub(4) As String strsub = strh(0).Split("*") For Each item In lstItems.Items Dim strSplits(4) As String strSplits = item.text.ToString.Split("|") Dim strs(4) As String strs = strSplits(1).Split("*") If strsub(0) = strs(0) Then If strsub(1) = strs(1) Then 'cblDoelstellingen.Items.Add(item.text) lstItemAlle.Items.Add(item.text) End If End If Next Catch ex As Exception End Try End Sub Protected Sub btnKiesKlas_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesKlas.Click Session("BewerkUur") = DropDownList1.SelectedItem.Text.Replace(" ", "") Session("Bewerkklas") = DropDownList2.SelectedItem.Text.Replace(" ", "") Session("BewerkModus") = "Klas" End Sub Protected Sub btnKiesItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesItem.Click Try

Page 94: Gip Gilles Knockaert

94

lstItemGekozen.Items.Add(lstItemAlle.SelectedItem) Session("AlleGekozenDoelstellingen") = "" For Each item In lstItemGekozen.Items 'Splitsen doelstellingen & opslaan (ID ervan) Dim strSplitsID() As String strSplitsID = item.text.Split("|") Session("AlleGekozenDoelstellingen") &= strSplitsID(1).Replace(" ", "") & "," Next Catch ex As Exception End Try ' MsgBox(Session("AlleGekozenDoelstellingen")) End Sub Protected Sub btnVerwijderItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerwijderItem.Click Try Dim strGeselecteerd As String = lstItemGekozen.SelectedItem.Text Session("GekozenTeVerwijderen") = strGeselecteerd For Each item In lstItemGekozen.Items If item.text = strGeselecteerd Then item.text = "" End If Next lstItemGekozen.SelectedItem.Text = "" Catch ex As Exception End Try End Sub Protected Sub SqlDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles SqlDataSource1.Selecting End Sub End Class

Page 95: Gip Gilles Knockaert

95

1.4.3 Doelstelling bekijken

Naam DropDownList1 DataSourceID DropDownList1 Naam btnKies Text Kies Naam ddlVak DataSourceID SqlDataSource2 Naam ddlKlas DataSourceID SqlDataSource4 Naam btnKiesVak Text Kies HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="DoelstellingenBekijken.aspx.vb" Inherits="DoelstellingenBekijken" %> <!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></title> <style type="text/css"> .style1 {} body { background-color: #7C819F; } </style> </head> <body> <form id="form1" runat="server">

Page 96: Gip Gilles Knockaert

96

<div> <strong>Ingegeven doelstellingen bekijken per klas</strong><br /> <br /> <asp:DropDownList ID="DropDownList1" runat="server" CssClass="style1" DataSourceID="SqlDataSource1" DataTextField="Klas" DataValueField="Klas" Height="22px" Width="161px"> </asp:DropDownList> <asp:Button ID="btnKies" runat="server" Text="Kies" /> <br /> <asp:Panel ID="pnlKlas" runat="server"> </asp:Panel> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> <br /> <br /> <strong>Ingegeven doelstellingen bekijken per vak</strong><br /> Kies een vak<br /> <asp:DropDownList ID="ddlVak" runat="server" CssClass="style1" DataSourceID="SqlDataSource2" DataTextField="Vaknaam" DataValueField="ID" Height="20px" Width="161px"> </asp:DropDownList> <br /> Kies een klas<br /> <asp:DropDownList ID="ddlKlas" runat="server" CssClass="style1" DataSourceID="SqlDataSource4" DataTextField="Klas" DataValueField="Klas" Height="22px" Width="161px"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT [Klas] FROM [PGGtblKlassen]"></asp:SqlDataSource> <asp:Button ID="btnKiesVak" runat="server" Text="Kies" /> <br /> <asp:Panel ID="pnlVak" runat="server"> </asp:Panel> <br /> <asp:Label ID="Label2" runat="server"></asp:Label> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT DISTINCT Klas FROM PGGtblDoelstellingen ORDER BY Klas"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblVakken]"></asp:SqlDataSource>

Page 97: Gip Gilles Knockaert

97

</div> </form> </body> </html> ASP Imports System.Data Partial Class DoelstellingenBekijken Inherits System.Web.UI.Page Dim tbl As New Table Protected Sub btnKies_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKies.Click LadenEnkeleKlas() End Sub Public Sub LadenEnkeleKlas() 'Panel1.Controls.Clear() Session("GevondenLessen") = 0 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strID, strSplits(), strDatum1, strVak, strLesuur As String Dim intTeller As Integer = 0 Dim blnLes As Boolean = False 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblDoelstellingen ORDER BY ID ASC" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Leegmaken label Label1.Text = Nothing 'Tabel opstellen 'Hoofd instellen van tabel1 Dim rh As New TableRow()

Page 98: Gip Gilles Knockaert

98

Dim c1h As New TableCell() Dim c3h As New TableCell() Dim c4h As New TableCell() c1h.Controls.Add(New LiteralControl("Nummer")) c3h.Controls.Add(New LiteralControl("Doelstelling")) c4h.Controls.Add(New LiteralControl("Leerkacht")) c1h.Font.Bold = True c1h.Font.Underline = True c1h.HorizontalAlign = HorizontalAlign.Center c3h.Font.Bold = True c3h.Font.Underline = True c3h.HorizontalAlign = HorizontalAlign.Center c4h.Font.Bold = True c4h.Font.Underline = True c4h.HorizontalAlign = HorizontalAlign.Center c1h.BorderColor = Drawing.Color.Black c1h.BorderStyle = BorderStyle.Solid c1h.BorderWidth = 1 c3h.BorderColor = Drawing.Color.Black c3h.BorderStyle = BorderStyle.Solid c3h.BorderWidth = 1 c4h.BorderColor = Drawing.Color.Black c4h.BorderStyle = BorderStyle.Solid c4h.BorderWidth = 1 rh.Cells.Add(c1h) rh.Cells.Add(c3h) rh.Cells.Add(c4h) tbl.Rows.Add(rh) tbl.BorderStyle = BorderStyle.Solid tbl.BorderWidth = 1 tbl.BorderColor = Drawing.Color.Black tbl.GridLines = GridLines.Both Dim strDoelnummer As String

Page 99: Gip Gilles Knockaert

99

'Datareader uitvoeren While objDataReader.Read() 'Variabelen opslaan strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum1 = strSplits(0).Replace(" ", "") strVak = strSplits(1).Replace(" ", "") strLesuur = strSplits(2) strDoelnummer = strSplits(0) 'MsgBox(objDataReader.Item("Klas").ToString.Replace(" ", "") & "-" 'Als de klas overeenkomt If objDataReader.Item("Klas").ToString.Replace(" ", "") = DropDownList1.SelectedItem.Text.Replace(" ", "") Then 'Er is een les gevonden blnLes = True Dim r As New TableRow() Dim c1 As New TableCell() Dim c3 As New TableCell() Dim c4 As New TableCell() c1.Width = 100 c3.Width = 200 c4.Width = 200 c1.BorderColor = Drawing.Color.Black c1.BorderStyle = BorderStyle.Solid c1.BorderWidth = 1 c3.BorderColor = Drawing.Color.Black c3.BorderStyle = BorderStyle.Solid c3.BorderWidth = 1 c4.BorderColor = Drawing.Color.Black c4.BorderStyle = BorderStyle.Solid c4.BorderWidth = 1 c1.Controls.Add(New LiteralControl(strDoelnummer)) c3.Controls.Add(New LiteralControl(objDataReader.Item("Doelstelling"))) c4.Controls.Add(New LiteralControl(objDataReader.Item("Leerkracht").ToString.Replace(" ", "")))

Page 100: Gip Gilles Knockaert

100

r.Cells.Add(c1) r.Cells.Add(c3) r.Cells.Add(c4) tbl.Rows.Add(r) End If End While 'Als er geen lessen gevonden zijn, text weergeven If blnLes = False Then Label1.Text = "Er zijn nog geen lessen ingevoerd" Else End If 'Datareader sluiten objDataReader.Close() pnlKlas.Controls.Add(tbl) '----------------------------------------------------------- End Sub Protected Sub btnKiesVak_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesVak.Click 'MsgBox(DropDownList2.SelectedItem.Text & DropDownList3.SelectedItem.Text) Session("BekijkDoelKlas") = ddlKlas.SelectedItem.Text.Replace(" ", "") Dim strSplit() As String strSplit = ddlVak.SelectedItem.Value.Replace(" ", "").Split("-") Session("BekijkDoelVak") = strSplit(0) LadenEnkeleVak() End Sub Public Sub LadenEnkeleVak() 'Panel1.Controls.Clear() Session("GevondenLessen") = 0 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strID, strSplits(), strDatum1, strVak, strLesuur As String Dim intTeller As Integer = 0 Dim blnLes As Boolean = False 'Connectiestring instellen

Page 101: Gip Gilles Knockaert

101

objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblDoelstellingen ORDER BY ID ASC" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Leegmaken label Label1.Text = Nothing 'Tabel opstellen 'Hoofd instellen van tabel1 Dim rh As New TableRow() Dim c1h As New TableCell() Dim c3h As New TableCell() Dim c4h As New TableCell() c1h.Controls.Add(New LiteralControl("Nummer")) c3h.Controls.Add(New LiteralControl("Doelstelling")) c4h.Controls.Add(New LiteralControl("Leerkacht")) c1h.Font.Bold = True c1h.Font.Underline = True c1h.HorizontalAlign = HorizontalAlign.Center c3h.Font.Bold = True c3h.Font.Underline = True c3h.HorizontalAlign = HorizontalAlign.Center c4h.Font.Bold = True c4h.Font.Underline = True c4h.HorizontalAlign = HorizontalAlign.Center c1h.BorderColor = Drawing.Color.Black c1h.BorderStyle = BorderStyle.Solid c1h.BorderWidth = 1 c3h.BorderColor = Drawing.Color.Black c3h.BorderStyle = BorderStyle.Solid

Page 102: Gip Gilles Knockaert

102

c3h.BorderWidth = 1 c4h.BorderColor = Drawing.Color.Black c4h.BorderStyle = BorderStyle.Solid c4h.BorderWidth = 1 rh.Cells.Add(c1h) rh.Cells.Add(c3h) rh.Cells.Add(c4h) tbl.Rows.Add(rh) tbl.BorderStyle = BorderStyle.Solid tbl.BorderWidth = 1 tbl.BorderColor = Drawing.Color.Black tbl.GridLines = GridLines.Both Dim strDoelnummer As String 'Datareader uitvoeren While objDataReader.Read() 'Variabelen opslaan strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum1 = strSplits(0).Replace(" ", "") strVak = strSplits(1).Replace(" ", "") strDoelnummer = strSplits(0) strLesuur = strSplits(2) 'MsgBox(objDataReader.Item("Klas").ToString.Replace(" ", "") & "-" 'Als de klas overeenkomt 'Session("LeerkrachtVak") 'MsgBox(objDataReader.Item("Klas").ToString.Replace(" ", "") & "--" & Session("BekijkDoelKlas")) If objDataReader.Item("Klas").ToString.Replace(" ", "") = Session("BekijkDoelKlas") Then If Session("BekijkDoelVak") = strVak Then 'MsgBox(Session("BekijkDoelVak") & "--" & strVak) 'Er is een les gevonden blnLes = True Dim r As New TableRow() Dim c1 As New TableCell() Dim c3 As New TableCell() Dim c4 As New TableCell()

Page 103: Gip Gilles Knockaert

103

c1.Width = 100 c3.Width = 200 c4.Width = 200 c1.BorderColor = Drawing.Color.Black c1.BorderStyle = BorderStyle.Solid c1.BorderWidth = 1 c3.BorderColor = Drawing.Color.Black c3.BorderStyle = BorderStyle.Solid c3.BorderWidth = 1 c4.BorderColor = Drawing.Color.Black c4.BorderStyle = BorderStyle.Solid c4.BorderWidth = 1 c1.Controls.Add(New LiteralControl(strDoelnummer)) c3.Controls.Add(New LiteralControl(objDataReader.Item("Doelstelling"))) c4.Controls.Add(New LiteralControl(objDataReader.Item("Leerkracht").ToString.Replace(" ", ""))) r.Cells.Add(c1) r.Cells.Add(c3) r.Cells.Add(c4) tbl.Rows.Add(r) End If End If End While 'Als er geen lessen gevonden zijn, text weergeven If blnLes = False Then Label1.Text = "Er zijn nog geen lessen ingevoerd" Else End If 'Datareader sluiten objDataReader.Close() pnlVak.Controls.Add(tbl) '----------------------------------------------------------- End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Page 104: Gip Gilles Knockaert

104

End Sub End Class

Page 105: Gip Gilles Knockaert

105

1.4.4 Doelstelling Toevoegen

Naam Hnum Naam Htekst Naam HoofdOnd Text Toevoegen Naam hnum1 Naam snum Naam stekst Naam SubOnd Text Toevoegen Naam hnum2 Naam snum1 Naam inum Naam itekst

Page 106: Gip Gilles Knockaert

106

Naam Item Text Toevoegen Naam ListBox1 Naam btnOmhoog Text Omhoog Naam btnOmlaag Text Omlaag Naam btnVerwijder Text Verwijder Naam ddlKlas DataSourceID SqlDataSource1 Naam ddlKlas0 DataSourceID SqlDataSource3 Naam btnPlaatsen Text In database plaatsen Naam GridView1 DataSourceID SqlDataSource2 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="DoelstellingenToevoegen.aspx.vb" Inherits="Doelstellingen" %> <!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></title> <style type="text/css"> body { background-color: #7C819F; } .style2 {} .style3 { height: 22px; } .style4 {} .style5 { text-decoration: underline; } </style> </head> <body> <form id="form1" runat="server">

Page 107: Gip Gilles Knockaert

107

<div> Op deze pagina kan u doelstellingen toevoegen<br /> vb.<br /> 1-Dit is het hoofdonderdeel<br /> 1-1-Subonderdeel 1<br /> 1-1-1-Dit is Item 1<br /> 1-1-2-Dit is Item 2<br /> 1-2-Subonderdeel 2<br /> 1-2-1-Dit is Item 1<br /> 1-2-2-Dit is Item 2<br /> <br /> <em>Hoofdonderdeel</em><br /> <asp:TextBox ID="hnum" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="htekst" runat="server" CssClass="style2" Width="266px"></asp:TextBox> <asp:Button ID="HoofdOnd" runat="server" Text="Toevoegen" /> <br /> <br /> <em>Subonderdeel</em><br /> <asp:TextBox ID="hnum1" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="snum" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="stekst" runat="server" CssClass="style2" Width="266px"></asp:TextBox> <asp:Button ID="SubOnd" runat="server" Text="Toevoegen" /> <br /> <br /> <em>Item</em><br /> <asp:TextBox ID="hnum2" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="snum1" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="inum" runat="server" CssClass="style3" Width="46px"></asp:TextBox> <asp:TextBox ID="itekst" runat="server" CssClass="style2" Width="266px"></asp:TextBox> <asp:Button ID="Item" runat="server" Text="Toevoegen" /> <br /> <br /> <br /> <asp:ListBox ID="ListBox1" runat="server" CssClass="style4" Height="125px" Width="442px"></asp:ListBox> <br /> <span class="style5">Pas een item aan</span><br /> <asp:Button ID="btnOmhoog" runat="server" Text="Omhoog" /> <asp:Button ID="btnOmlaag" runat="server" Text="Omlaag" /> <asp:Button ID="btnVerwijder" runat="server" Text="Verwijder" /> <br /> <br /> <strong>Deze doelstellingen zijn bedoeld voor de volgende klas:</strong><br /> <asp:DropDownList ID="ddlKlas" runat="server" DataSourceID="SqlDataSource1" DataTextField="Klas" DataValueField="ID"> </asp:DropDownList>

Page 108: Gip Gilles Knockaert

108

<br /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"></asp:SqlDataSource> <br /> <strong>Kies een vak</strong><br /> <asp:DropDownList ID="ddlKlas0" runat="server" DataSourceID="SqlDataSource3" DataTextField="Vaknaam" DataValueField="ID"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblVakken]"></asp:SqlDataSource> <br /> <asp:Button ID="btnPlaatsen" runat="server" Text="In database plaatsen" /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource2" Visible="False"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Doelstelling" HeaderText="Doelstelling" SortExpression="Doelstelling" /> <asp:CheckBoxField DataField="Behaald" HeaderText="Behaald" SortExpression="Behaald" /> <asp:BoundField DataField="Leerkracht" HeaderText="Leerkracht" SortExpression="Leerkracht" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblDoelstellingen]"></asp:SqlDataSource> <br /> </div> </form> </body> </html> ASP Imports System.Data Partial Class Doelstellingen Inherits System.Web.UI.Page Protected Sub HoofdOnd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles HoofdOnd.Click

Page 109: Gip Gilles Knockaert

109

ListBox1.Items.Add(hnum.Text & "*" & htekst.Text) End Sub Protected Sub SubOnd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles SubOnd.Click ListBox1.Items.Add(hnum1.Text & "*" & snum.Text & "*" & stekst.Text) End Sub Protected Sub Item_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Item.Click ListBox1.Items.Add(hnum2.Text & "*" & snum1.Text & "*" & inum.Text & "*" & itekst.Text) End Sub Protected Sub btnOmhoog_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOmhoog.Click Dim intIndex As Integer = ListBox1.SelectedIndex Dim item As Object = ListBox1.SelectedItem If (intIndex <> 0) Then If Not (item Is Nothing) Then ListBox1.Items.RemoveAt(intIndex) ListBox1.Items.Insert(intIndex - 1, item) End If End If End Sub Protected Sub btnOmlaag_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOmlaag.Click Dim intIndex As Integer = ListBox1.SelectedIndex Dim item As Object = ListBox1.SelectedItem If (intIndex <> -1) AndAlso (intIndex + 1 < ListBox1.Items.Count) Then If Not (item Is Nothing) Then ListBox1.Items.RemoveAt(intIndex) ListBox1.Items.Insert(intIndex + 1, item) End If End If End Sub Protected Sub btnVerwijder_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerwijder.Click ListBox1.SelectedItem.Text = "" End Sub Protected Sub btnPlaatsen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPlaatsen.Click 'Declareren variabelen Dim intAantalGebruikers As String Dim objCommando As New SqlClient.SqlCommand

Page 110: Gip Gilles Knockaert

110

Dim objConnectie As New SqlClient.SqlConnection Dim strSQL As String Dim strSplits() As String Dim user, pw As String If ddlKlas0.SelectedItem.Value = "" Then MsgBox("U heeft nog geen vak ingevuld") Else intAantalGebruikers = GridView1.Rows.Count 'Door alle items gaan in de listbox For Each Item1 In ListBox1.Items 'Controleren of het leeg is If Not Item1.Text = "" Then Dim blnVerdergaan As Boolean = True Dim strSplit(4) As String strSplit = Item1.text.split("*") Dim aantalstreepjes As Integer aantalstreepjes = strSplit.GetUpperBound(0) 'Controle of de syntax correct is If Item1.Text.Contains("*") Then 'Gebruik +1, als ID intAantalGebruikers += 1 Dim strID, strTekst, strKlas, strLkr, strVak As String strKlas = Session("DoelstellingKlas").ToString.Replace(" ", "") strLkr = Session("FirstName").ToString.Replace(" ", "") strVak = ddlKlas0.SelectedItem.Value.Replace(" ", "") Select Case aantalstreepjes Case 0 'Leeg blnVerdergaan = False Case 1 'hoofd strID = strSplit(0) & "-" & strVak & "-" & strKlas strTekst = strSplit(1) Case 2 'sub strID = strSplit(0) & "*" & strSplit(1) & "-" & strVak & "-" & strKlas strTekst = strSplit(2) Case 3 'item strID = strSplit(0) & "*" & strSplit(1) & "*" & strSplit(2) & "-" & strVak & "-" & strKlas strTekst = strSplit(3) End Select If blnVerdergaan = True Then 'Connectie maken objConnectie.ConnectionString = SqlDataSource2.ConnectionString

Page 111: Gip Gilles Knockaert

111

'SQL commando strSQL = "INSERT INTO PGGtblDoelstellingen (ID, Doelstelling, Leerkracht, Klas) VALUES ('" + strID + "','" + strTekst + "','" + strLkr + "','" + strKlas + " ')" 'Connectie openen en uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() 'Refreshen van de gridview GridView1.DataBind() End If End If End If Next End If End Sub Protected Sub ddlKlas_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlas.DataBound Session("DoelstellingKlas") = ddlKlas.SelectedItem.Text.Replace(" ", "") End Sub Protected Sub ddlKlas_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlas.SelectedIndexChanged Session("DoelstellingKlas") = ddlKlas.SelectedItem.Text.Replace(" ", "") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If End Sub End Class

Page 112: Gip Gilles Knockaert

112

1.4.5 Les Toevoegen

Naam DropDownList1 DataSourceID SqlDataSource4 Naam cblKeuze0 Naam TextBox1 Naam TextBox4 Naam ddlHoofd DataSourceID Wordt in code geladen Naam btnKiesH Text Kies Naam ddlSub DataSourceID Wordt in code geladen Naam lstItemAlle Naam lstItemGekozen Naam btnKiesItem Text --> Naam btnVerwijderItem Text <-- Naam btnOpslaan Text Opslaan Naam btnAnnuleren Text Annuleren HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="IngaveFormulier.aspx.vb" Inherits="Gilles_Test" %>

Page 113: Gip Gilles Knockaert

113

<!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></title> <style type="text/css"> body { background-color: #7C819F; } .style1 { width: 53%; border-style: solid; border-width: 1px; } #Tabel1 { position: relative; top: 3px; left: 0px; background-color: #7C819F; margin-left: 50px; color: #A02125; } #Titel_Tabel { color: #A02125; text-decoration: underline; font-size: XX-Large; text-align: center; } .style5 { height: 64px; } #form1 { height: 816px;

Page 114: Gip Gilles Knockaert

114

} .style6 { width: 246px; } .style10 { height: 73px; } .style11 { height: 16px; } .style12 { height: 24px; } .style13 { height: 11px; } .style14 { height: 34px; } .style15 {} .style16 {} .style17 { height: 27px; } </style> </head> <body> <form id="form1" runat="server"> <div style="height: 897px; width: 956px;"> <table align="center" class="style1" id="Tabel1"> <tr> <td id="Titel_Tabel" class="style5" style="font-size: large">

Page 115: Gip Gilles Knockaert

115

Ingave: Les<br /> <asp:Label ID="lblDatum" runat="server" Font-Size="Large"></asp:Label> <br /> <asp:Label ID="lblKlassen" runat="server" Font-Size="Large"></asp:Label> <br /> </td> </tr> <tr> <td align="center"> Kies lokaal</td> </tr> <tr> <td class="style11"> <table align="center"> <tr> <td> &nbsp;</td> <td> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource4" DataTextField="Lokaal" DataValueField="ID"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLokalen]"></asp:SqlDataSource> <br /> </td> <td> &nbsp;</td> </tr> </table> </td> </tr> <tr> <td class="style11"> Lesuur</td> </tr> <tr> <td class="style12"> <asp:CheckBoxList ID="cblKeuze0" runat="server" style="height: 27px;" RepeatDirection="Horizontal"> <asp:ListItem>1</asp:ListItem>

Page 116: Gip Gilles Knockaert

116

<asp:ListItem>2</asp:ListItem> <asp:ListItem>3</asp:ListItem> <asp:ListItem>4</asp:ListItem> <asp:ListItem>5</asp:ListItem> <asp:ListItem>6</asp:ListItem> <asp:ListItem>7</asp:ListItem> <asp:ListItem>8</asp:ListItem> </asp:CheckBoxList> </td> </tr> <tr> <td class="style13" align="center"> <table> <tr> <td width= "300px"> Onderwerp: </td> <td width= "300px"> Commentaar: </td> </tr> </table> </td> </tr> <tr> <td class="style14" align="center"> <table> <tr> <td> <asp:TextBox ID="TextBox1" runat="server" Height="150px" Width="300px" TextMode="MultiLine"></asp:TextBox> </td> <td class="style6"> <asp:TextBox ID="TextBox4" runat="server" Height="150px" Width="300px" TextMode="MultiLine"></asp:TextBox> </td> </tr> </table> </td> </tr>

Page 117: Gip Gilles Knockaert

117

<tr> <td class="style17"> Behaalde doelstelling</td> </tr> <tr> <td class="style10" align="center"> <asp:DropDownList ID="ddlHoofd" runat="server"> </asp:DropDownList> <asp:Button ID="btnKiesH" runat="server" Text="Kies" /> <br /> <asp:DropDownList ID="ddlSub" runat="server"> </asp:DropDownList> <asp:Button ID="btnKiesS" runat="server" Text="Kies" /> <br /> <asp:ListBox ID="lstItemAlle" runat="server" Height="140px" Width="106px" SelectionMode="Multiple"></asp:ListBox> <asp:Button ID="btnKiesItem" runat="server" Text="--&gt;" /> <asp:Button ID="btnVerwijderItem" runat="server" Text="&lt;--" /> <asp:ListBox ID="lstItemGekozen" runat="server" Height="140px" Width="106px" SelectionMode="Multiple"> </asp:ListBox> <br /> <br /> <asp:Button ID="btnOpslaan" runat="server" Text="Opslaan" style="font-style: italic" UseSubmitBehavior="False" /> <asp:Button ID="btnAnnuleren" runat="server" Text="Annuleren" style="font-style: italic" UseSubmitBehavior="False" /> </td> </tr> </table> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblLessen]"></asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"> </asp:SqlDataSource> <asp:ListBox ID="lstSub" runat="server" AutoPostBack="True" CssClass="style15" Width="251px" Visible="False"></asp:ListBox> <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblDoelstellingen]"></asp:SqlDataSource>

Page 118: Gip Gilles Knockaert

118

<asp:ListBox ID="lstItems" runat="server" AutoPostBack="True" CssClass="style16" Width="241px" Visible="False"></asp:ListBox> </div> <br /> </form> </body> </html> ASP Imports System.Data Partial Class Gilles_Test Inherits System.Web.UI.Page Public GeselecteerdeKlassen As String Public Klassengesplitst() As String Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If lblDatum.Text = Session("GeselecteerdeDatum") lblKlassen.Text = Session("GeselecteerdeKlassen") Klassengesplitst = Session("GeselecteerdeKlassen").Split(",") If Not Page.IsPostBack Then ddlHoofd.Items.Clear() lstSub.Items.Clear() lstItems.Items.Clear() If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If '-------------------------DOELSTELLINGEN Dim objDataReader2 As SqlClient.SqlDataReader Dim objCommando2 As New SqlClient.SqlCommand Dim objConnectie2 As New SqlClient.SqlConnection 'Connectiestring instellen objConnectie2.ConnectionString = SqlDataSource2.ConnectionString 'Connectie openen objConnectie2.Open()

Page 119: Gip Gilles Knockaert

119

'Commando instellen objCommando2.Connection = objConnectie2 objCommando2.CommandText = "SELECT * FROM PGGtblDoelstellingen" 'Datareader uitvoeren objDataReader2 = objCommando2.ExecuteReader 'Lijst doelstelling vullen aan de hand van database. While objDataReader2.Read() 'Controle klas & leerkracht => doelstelling toevoegen For intteller = 0 To Klassengesplitst.GetUpperBound(0) - 1 If objDataReader2.Item("Klas").ToString.Replace(" ", "") = Klassengesplitst(intteller) Then If objDataReader2.Item("Leerkracht").ToString.Replace(" ", "") = Session("FirstName").ToString.Replace(" ", "") Then Dim strSplit(4) As String strSplit = objDataReader2.Item("ID").ToString.Split("*") Dim aantalstreepjes As Integer aantalstreepjes = strSplit.GetUpperBound(0) Dim strID, strTekst, strKlas, strLkr, strVak As String Select Case aantalstreepjes Case 0 'hoofd ddlHoofd.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) ' strID = strSplit(0) & "-" & strVak & "-" & strKlas 'strTekst = strSplit(1) Case 1 'sub lstSub.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) ' strID = strSplit(0) & "*" & strSplit(1) & "-" & strVak & "-" & strKlas ' strTekst = strSplit(2) Case 2 'item ' strID = strSplit(0) & "*" & strSplit(1) & "*" & strSplit(2) & "-" & strVak & "-" & strKlas ' strTekst = strSplit(3) lstItems.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID")) End Select 'cblDoelstellingen.Items.Add(objDataReader2.Item("Doelstelling") & " |" & objDataReader2.Item("ID"))

Page 120: Gip Gilles Knockaert

120

End If End If Next End While Try ddlHoofd.SelectedIndex = Session("GeselecteerdHoofd") Catch ex As Exception 'MsgBox(ex.Message) End Try 'Session("GeselecteerdHoofd") = ddlHoofd.Items(0) 'Datareader sluiten objDataReader2.Close() For Each item In lstSub.Items Dim strsplit(4) As String strsplit = item.text.split("*") If Session("GekozenHoofdOnderwerpNummer") = strsplit(0) Then ' MsgBox(item.text) End If Next End If End Sub Protected Sub btnOpslaan_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOpslaan.Click 'Controle of een les is geselecteerd Dim blnGeselecteerd As Boolean = False For Each item In Klassengesplitst If Not item = "" Then blnGeselecteerd = True End If Next 'Als er een les geselecteerd is If blnGeselecteerd = True Then 'Er is een les geselecteerd '--------------------------------------Les controle 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando1 As New SqlClient.SqlCommand Dim objConnectie1 As New SqlClient.SqlConnection Dim blnToevoegen As Boolean = True Dim strSQL, strID, strLesuur, strOnderwerp, strKlas, strCommentaar, strDoelstelling As String

Page 121: Gip Gilles Knockaert

121

Dim strSplits(), strDatum As String 'Connectiestring instellen objConnectie1.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie1.Open() 'Commando instellen objCommando1.Connection = objConnectie1 objCommando1.CommandText = "SELECT * FROM PGGtblLessen" 'Datareader uitvoeren objDataReader = objCommando1.ExecuteReader 'Controleren als de les al in gebruik is While objDataReader.Read() strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum = strSplits(0) strKlas = strSplits(1) strLesuur = strSplits(2) strLesuur = strLesuur.Replace(" ", "") 'Als de klas niet leeg is.. If Not strKlas = "" Then 'Als de datum overeenkomt If strDatum = Session("GeselecteerdeDatum") Then 'Als het lesuur overeenkomt.. 'Variabelen declareren Dim intChkCount3 As Integer 'Tellen items intChkCount3 = cblKeuze0.Items.Count - 1 'Door alle items gaan For intteller = 0 To intChkCount3 'Als hij geselecteerd is, item opslaan in variabele If cblKeuze0.Items(intteller).Selected = True And strLesuur = cblKeuze0.Items(intteller).Value Then For Each item In Klassengesplitst If Not item = "" And strKlas = item Then 'Er is al een les toegevoegd blnToevoegen = False MsgBox("Er is al een les ingevuld voor deze klas op lesuur: " & cblKeuze0.Items(intteller).Value) End If

Page 122: Gip Gilles Knockaert

122

Next End If Next End If End If End While 'Datareader sluiten objDataReader.Close() '----------------------------------------------------------- 'Als blnToevoegen true is dan is er nog geen les toegevoegd If blnToevoegen = True Then 'Declareren variabelen Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection 'Connectiestring objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Opslaan variabelen 'strLesuur = DropDownList1.Text strOnderwerp = TextBox1.Text strCommentaar = TextBox4.Text For Each item In lstItemGekozen.Items If Not item.text = "" Then Dim strSplitsID() As String strSplitsID = item.text.Split("|") strDoelstelling &= strSplitsID(1).Replace(" ", "") & "," End If Next 'Variabelen declareren Dim strGeselecteerd As String Dim intChkCount2 As Integer 'Tellen items intChkCount2 = cblKeuze0.Items.Count - 1 'Door alle items gaan For intteller = 0 To intChkCount2 'Als hij geselecteerd is, item opslaan in variabele If cblKeuze0.Items(intteller).Selected = True Then strGeselecteerd &= cblKeuze0.Items(intteller).Text & "," End If Next

Page 123: Gip Gilles Knockaert

123

'Variabele opslaan in Session 'Session("GeselecteerdeKlassen") = strGeselecteerd Dim strLesuren(8) As String strLesuren = strGeselecteerd.Split(",") For intTeller = 0 To strLesuren.GetUpperBound(0) - 1 Dim strLokaal As String strLokaal = DropDownList1.SelectedItem.Text.Replace(" ", "") & "-" & DropDownList1.SelectedItem.Value.Replace(" ", "") MsgBox(strLokaal) 'Door alle items gaan For Each item In Klassengesplitst 'Als item niet leeg is If Not item = "" Then 'Variabelen opslaan strKlas = item strID = Session("GeselecteerdeDatum") & "-" & strKlas & "-" & strLesuren(intTeller) 'SQL commando strSQL = "INSERT INTO PGGtblLessen (Lesuur, Onderwerp, Klas, Commentaar, Doelstelling, ID, Lokaal) VALUES ('" + strLesuren(intTeller) + "','" + strOnderwerp + "','" + strKlas + "','" + strCommentaar + "','" + strDoelstelling + "','" + strID + "','" + strLokaal + " ')" 'SQL uitvoeren Dim cmd As New System.Data.SqlClient.SqlCommand(strSQL, objConnectie) objConnectie.Open() cmd.ExecuteNonQuery() objConnectie.Close() End If Next Next 'Terug naar kalender Response.Redirect("Kalender.aspx") End If Else 'Er is geen les geselecteerd MsgBox("Er is nog geen les geselecteerd") End If End Sub Protected Sub btnKiesH_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesH.Click Try ddlSub.Items.Clear() Dim strSplit(4) As String

Page 124: Gip Gilles Knockaert

124

strSplit = ddlHoofd.SelectedItem.Text.Split("|") Dim strh(4) As String strh = strSplit(1).Split("-") For Each item In lstSub.Items Dim strSplits(4) As String strSplits = item.text.ToString.Split("|") Dim strs(4) As String strs = strSplits(1).Split("*") If strh(0) = strs(0) Then ddlSub.Items.Add(item.text) End If Next Session("GeselecteerdHoofd") = ddlHoofd.SelectedIndex Catch ex As Exception End Try End Sub Protected Sub btnKiesS_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesS.Click Try lstItemAlle.Items.Clear() Dim strSplit(4) As String strSplit = ddlSub.SelectedItem.Text.Split("|") Dim strh(4) As String strh = strSplit(1).Split("-") Dim strsub(4) As String strsub = strh(0).Split("*") For Each item In lstItems.Items Dim strSplits(4) As String strSplits = item.text.ToString.Split("|") Dim strs(4) As String strs = strSplits(1).Split("*") If strsub(0) = strs(0) Then If strsub(1) = strs(1) Then 'cblDoelstellingen.Items.Add(item.text) lstItemAlle.Items.Add(item.text) End If End If Next Catch ex As Exception End Try

Page 125: Gip Gilles Knockaert

125

End Sub Protected Sub btnAnnuleren_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAnnuleren.Click Response.Redirect("Kalender.aspx") End Sub Protected Sub btnKiesItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnKiesItem.Click Try lstItemGekozen.Items.Add(lstItemAlle.SelectedItem) Catch ex As Exception End Try End Sub Protected Sub btnVerwijderItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerwijderItem.Click Try lstItemGekozen.SelectedItem.Text = "" Catch ex As Exception End Try End Sub End Class

Page 126: Gip Gilles Knockaert

126

1.4.6 Inlogpagina

Naam pctKlasagenda ImageUrl ~/Inlog Afb/top.png Naam pnlLogin HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Inlog.aspx.vb" Inherits="_Default" %> <!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></title> <style type="text/css"> body { background-color: #7C819F; } .CenterLogin { vertical-align: middle; } .style8

Page 127: Gip Gilles Knockaert

127

{ width: 100%; height: 100px; } .style4 { text-align: center; font-family: "Segoe UI"; font-size: x-large; } .style1 { margin-left: 40px; } .style10 { margin-bottom: 52px; } .style11 { height: 17px; width: 542px; } .style12 {} .style13 { width: 542px; height: 200px; } .style14 { position: relative; top: 22px; left: -151px; height: 114px; margin-left: 0px; } </style> </head> <body> <table class="style8"> <tr> <td> <form id="form1" runat="server"> <div class="style4">

Page 128: Gip Gilles Knockaert

128

<asp:Image ID="pctKlasagenda" runat="server" CssClass="style12" Height="116px" ImageUrl="~/Inlog Afb/top.png" Width="276px" /> </div> <div class="style1"> </div> <table align="center" height="100px" style="border: medium solid #666666; background-position: center; background-repeat: no-repeat; background-attachment: fixed; height: 10px; background-color: #FFFFFF;"> <tr> <td align="center" class="style13"> <asp:Image ID="pctBanner" runat="server" CssClass="style10" Height="197px" ImageUrl="~/Inlog Afb/logo.bmp" Width="500px" /> <asp:Login ID="pnlLogin" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" Height="141px" LoginButtonText="Inloggen" PasswordLabelText="Paswoord" RememberMeText="Onthouden" TitleText="Inloggen" UserNameLabelText="Gebruikersnaam" Width="262px" CssClass="CenterLogin" FailureText="er kan niet ingelogd worden, probeer opnieuw."> <InstructionTextStyle Font-Italic="True" ForeColor="Black" /> <LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" /> <TextBoxStyle Font-Size="0.8em" /> <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" /> </asp:Login> <asp:Image ID="pctLinksonder" runat="server" CssClass="style14" ImageUrl="~/Inlog Afb/Onder.png" Width="246px" /> </td> </tr> <tr> <td class="style11"> </td> </tr> </table> </form> </td> </tr> </table> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblGebruikers]"> </asp:SqlDataSource>

Page 129: Gip Gilles Knockaert

129

</body> </html> ASP Imports System.Data Partial Class _Default Inherits System.Web.UI.Page Protected Sub pnlLogin_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles pnlLogin.Authenticate 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT Naam, Paswoord, Admin, Vak FROM PGGtblGebruikers" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Zoeken naar de naam en paswoord 'Als deze overeenkomen wordt er ingelogd While objDataReader.Read() Dim strNaam, strPaswoord As String strNaam = objDataReader.Item("Naam").ToString strNaam = strNaam.Replace(" ", "") strPaswoord = objDataReader.Item("Paswoord").ToString strPaswoord = strPaswoord.Replace(" ", "") Session("FirstName") = objDataReader.Item("Naam").ToString.Replace(" ", "") Session("LeerkrachtVak") = objDataReader.Item("Vak").ToString.Replace(" ", "") If objDataReader.Item("Admin") = 1 Then Session("AdminState") = 1 Else Session("AdminState") = 0

Page 130: Gip Gilles Knockaert

130

End If 'Als gebruiker en paswoord overeenkomen wordt er ingelogd If pnlLogin.UserName = strNaam And pnlLogin.Password = strPaswoord Then Response.Redirect("Home.aspx") End If End While 'Datareader sluiten objDataReader.Close() End Sub End Class

Page 131: Gip Gilles Knockaert

131

1.4.7 Kalender

Naam rdbToevoegen Tekst Les toevoegen GroupName Opties Naam rdbBewerk Tekst Lessen bewerken GroupName Opties Naam rdbBekijk Tekst Bekijk enkele les GroupName Opties Naam clrKalender Naam ddlJaar Naam ddlKlassen DataSourceID SqlDataSource2 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Kalender.aspx.vb" Inherits="Kalender" %> <!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></title> <style type="text/css"> body { ;

Page 132: Gip Gilles Knockaert

132

text-align: center; } #Calendar1 { top: 41px; left: 79px; position: relative; text-align: center; margin-top: 77px; } #Titel { background-color: #F7FAD2; color: #A02125; padding-top: 15px; } .style1 { z-index: 1; left: 10px; top: 34px; position: absolute; } .style4 { z-index: 1; left: 10px; top: 55px; position: absolute; } .style5 { z-index: 1; left: 631px; top: 75px; position: absolute; height: 16px; width: 170px; } .style6 { text-align: left; } .style7

Page 133: Gip Gilles Knockaert

133

{ z-index: 1; left: 630px; top: 18px; position: absolute; width: 173px; } .style8 { position: relative; top: 9px; left: 368px; } </style> </head> <body bgcolor="#7C819F"> <form id="form1" runat="server"> <div class="style6"> Kies een optie, klik daarna op een datum<br /> <asp:RadioButton ID="rdbToevoegen" runat="server" Checked="True" CssClass="style1" GroupName="Opties" Text="Les toevoegen" /> <br /> <asp:RadioButton ID="rdbBewerk" runat="server" CssClass="style4" Text="Lessen bewerken" GroupName="Opties" /> <asp:DropDownList ID="ddlKlassen" runat="server" AutoPostBack="True" CssClass="style5" DataSourceID="SqlDataSource2" DataTextField="Klas" DataValueField="Klas"> </asp:DropDownList> <br /> <asp:RadioButton ID="rdbBekijk" runat="server" GroupName="Opties" CssClass="style4" Text="Bekijk enkele les" style="z-index: 1; left: 10px; top: 76px; position: absolute" /> <br />

Page 134: Gip Gilles Knockaert

134

<asp:DropDownList ID="ddlJaar" runat="server" CssClass="style8" AutoPostBack="True"> <asp:ListItem>2000</asp:ListItem> <asp:ListItem>2001</asp:ListItem> <asp:ListItem>2002</asp:ListItem> <asp:ListItem>2003</asp:ListItem> <asp:ListItem>2004</asp:ListItem> <asp:ListItem>2005</asp:ListItem> <asp:ListItem>2006</asp:ListItem> <asp:ListItem>2007</asp:ListItem> <asp:ListItem>2008</asp:ListItem> <asp:ListItem>2009</asp:ListItem> <asp:ListItem>2010</asp:ListItem> <asp:ListItem>2011</asp:ListItem> </asp:DropDownList> <asp:Calendar ID="clrKalender" runat="server" BackColor="White" BorderColor="White" DayNameFormat="Full" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" ShowGridLines="True" style="margin-top: 0px; height: 436px; width: 808px; z-index: 1; left: -2px; top: 12px; position: relative;" BorderStyle="None" CellSpacing="1" Height="250px" NextPrevFormat="FullMonth" Width="330px"> <DayHeaderStyle Font-Bold="True" Height="8pt" Font-Size="8pt" ForeColor="#333333" /> <DayStyle BackColor="#DADCE4" /> <NextPrevStyle Font-Size="8pt" ForeColor="#333333" Font-Bold="True" /> <OtherMonthDayStyle ForeColor="#666666" /> <SelectedDayStyle BackColor="#333399" ForeColor="White" /> <TitleStyle BackColor="#B7BBCA" Font-Bold="True" Font-Size="12pt" ForeColor="#333333" BorderStyle="Solid" Height="12pt" /> <TodayDayStyle BackColor="#999999" ForeColor="White" /> </asp:Calendar> <br /> <asp:Panel ID="Panel1" runat="server"> </asp:Panel>

Page 135: Gip Gilles Knockaert

135

<br /> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLessen]"> </asp:SqlDataSource> <asp:Label ID="Label1" runat="server" CssClass="style7" Text="Kies een datum om de ingevulde datums te zien"></asp:Label> </div> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT [Klas] FROM [PGGtblKlassen]"></asp:SqlDataSource> <br /> </form> </body> </html> ASP Imports System.Drawing Imports System.Data Partial Class Kalender Inherits System.Web.UI.Page Private SpecialDates As New List(Of DateTime)() Dim tbl As New Table Protected Sub clrKalender_DayRender(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DayRenderEventArgs) Handles clrKalender.DayRender 'Inkleuren van kalender Try 'Als Specialdates een datum bevat If (SpecialDates.Contains(e.Day.[Date]) = True) Then 'Inkleuren en vet zetten e.Cell.Font.Bold = True e.Cell.BackColor = Color.Gray End If Catch ex As Exception MsgBox("Kan kalender niet kleuren") End Try End Sub Protected Sub clrKalender_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles clrKalender.SelectionChanged If rdbToevoegen.Checked = True Then

Page 136: Gip Gilles Knockaert

136

'Ingeven 'Datum opslaan Session("GeselecteerdeDatum") = clrKalender.SelectedDate 'Ingaveformulier openen Response.Redirect("ToevoegenKlasKeuze.aspx") ElseIf rdbBekijk.Checked = True Then 'Bekijken 'Datum opslaan Session("GeselecteerdeDatum") = clrKalender.SelectedDate 'Ingaveformulier openen LadenDagen() LadenEnkeleDag() Else 'Bewerken Session("GeselecteerdeDatum") = clrKalender.SelectedDate Response.Redirect("BewerkLes.aspx") End If End Sub Public Sub LadenEnkeleDag() 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strID, strSplits(), strDatum1, strKlas1, strLesuur As String Dim intTeller As Integer = 0 Dim blnLes As Boolean = False 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblLessen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Leegmaken label Label1.Text = Nothing 'Tabel opstellen 'Hoofd instellen van tabel1

Page 137: Gip Gilles Knockaert

137

'Beginnen met een rij te maken die de hoofding vormt Dim rh As New TableRow() '3 cellen nodig => lesuur, onderwerp & commentaar Dim c1h As New TableCell() Dim c2h As New TableCell() Dim c3h As New TableCell() Dim c4h As New TableCell() 'Vullen van de cellen c1h.Controls.Add(New LiteralControl("Lesuur")) c2h.Controls.Add(New LiteralControl("Lokaal")) c3h.Controls.Add(New LiteralControl("Onderwerp")) c4h.Controls.Add(New LiteralControl("Commentaar")) 'Uiterlijk aanpassen van elke cel c1h.Font.Bold = True c1h.Font.Underline = True c1h.HorizontalAlign = HorizontalAlign.Center c2h.Font.Bold = True c2h.Font.Underline = True c2h.HorizontalAlign = HorizontalAlign.Center c3h.Font.Bold = True c3h.Font.Underline = True c3h.HorizontalAlign = HorizontalAlign.Center c4h.Font.Bold = True c4h.Font.Underline = True c4h.HorizontalAlign = HorizontalAlign.Center c1h.BorderColor = Drawing.Color.Black c1h.BorderStyle = BorderStyle.Solid c1h.BorderWidth = 1 c3h.BorderColor = Drawing.Color.Black c3h.BorderStyle = BorderStyle.Solid c3h.BorderWidth = 1 c4h.BorderColor = Drawing.Color.Black c4h.BorderStyle = BorderStyle.Solid c4h.BorderWidth = 1 'De rij vullen met de aangemaakte cellen rh.Cells.Add(c1h)

Page 138: Gip Gilles Knockaert

138

rh.Cells.Add(c2h) rh.Cells.Add(c3h) rh.Cells.Add(c4h) 'Rij toevoegen aan de tabel tbl.Rows.Add(rh) 'Tabel eigenschappen geven tbl.BorderStyle = BorderStyle.Solid tbl.BorderWidth = 1 tbl.BorderColor = Drawing.Color.Black tbl.GridLines = GridLines.Both 'Datareader uitvoeren While objDataReader.Read() 'Variabelen opslaan strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum1 = strSplits(0).Replace(" ", "") strKlas1 = strSplits(1).Replace(" ", "") strLesuur = strSplits(2) Dim dteDatum As Date dteDatum = strDatum1 'Als de datum overeenkomt If dteDatum = Session("GeselecteerdeDatum") Then 'Als de klas overeenkomt If objDataReader.Item("Klas").ToString.Replace(" ", "") = Session("GeselecteerdeKlasKalender").Replace(" ", "") Then 'Er is een les gevonden blnLes = True 'Een nieuwe rij Dim r As New TableRow() '3 Nieuwe cellen Dim c1 As New TableCell() Dim c2 As New TableCell() Dim c3 As New TableCell() Dim c4 As New TableCell() 'Eigenschappen van de cellen c1.Width = 100 c2.Width = 100 c3.Width = 200

Page 139: Gip Gilles Knockaert

139

c4.Width = 200 c1.BorderColor = Drawing.Color.Black c1.BorderStyle = BorderStyle.Solid c1.BorderWidth = 1 c2.BorderColor = Drawing.Color.Black c2.BorderStyle = BorderStyle.Solid c2.BorderWidth = 1 c3.BorderColor = Drawing.Color.Black c3.BorderStyle = BorderStyle.Solid c3.BorderWidth = 1 c4.BorderColor = Drawing.Color.Black c4.BorderStyle = BorderStyle.Solid c4.BorderWidth = 1 'Lokaal en nummer splitsen '0: Lokaal '1: Lokaal ID Dim strLokaal(1) As String strLokaal = objDataReader.Item("Lokaal").ToString.Replace(" ", "").Split("-") 'Vullen cellen c1.Controls.Add(New LiteralControl(strLesuur)) c2.Controls.Add(New LiteralControl(strLokaal(0))) c3.Controls.Add(New LiteralControl(objDataReader.Item("Onderwerp"))) c4.Controls.Add(New LiteralControl(objDataReader.Item("Commentaar"))) 'Cellen aan de rij toevoegen r.Cells.Add(c1) r.Cells.Add(c2) r.Cells.Add(c3) r.Cells.Add(c4) 'Rij aan de tabel toevoegen tbl.Rows.Add(r) End If End If End While 'Als er geen lessen gevonden zijn, text weergeven If blnLes = False Then Label1.Text = "Er zijn nog geen lessen ingevoerd" Else

Page 140: Gip Gilles Knockaert

140

End If 'Datareader sluiten objDataReader.Close() 'Tabel invoegen in Panel1 Panel1.Controls.Add(tbl) '----------------------------------------------------------- End Sub Protected Sub ddlKlassen_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlassen.DataBound 'Als de lijst gevuld is, dagen laden Session("GeselecteerdeKlasKalender") = ddlKlassen.SelectedItem.Text LadenDagen() End Sub Protected Sub ddlKlassen_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlassen.SelectedIndexChanged 'Als de klas veranderd, dagen laden Session("GeselecteerdeKlasKalender") = ddlKlassen.SelectedItem.Text LadenDagen() If rdbBekijk.Checked = True Then LadenEnkeleDag() End If End Sub Private Sub LadenDagen() Try 'Speciale datums legen SpecialDates.Clear() 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strID, strSplits(), strDatum, strKlas, strLesuur As String Dim intTeller As Integer = 0 Dim blnLes As Boolean = False 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open()

Page 141: Gip Gilles Knockaert

141

'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblLessen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader While objDataReader.Read() 'Variabelen opslaan strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum = strSplits(0).Replace(" ", "") strKlas = strSplits(1).Replace(" ", "") strLesuur = strSplits(2) 'Als de klas overeenkomt If strKlas = ddlKlassen.SelectedItem.Text.Replace(" ", "") Then 'Speciale datum toevoegen SpecialDates.Add(strDatum) End If End While 'Datareader sluiten objDataReader.Close() Catch ex As Exception MsgBox("Kan de ingevulde dagen niet laden") End Try End Sub Protected Sub clrKalender_VisibleMonthChanged(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MonthChangedEventArgs) Handles clrKalender.VisibleMonthChanged 'Als de maand verandert, herladen van de dagen LadenDagen() End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Controle of er ingelogd is If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If 'Gegevens wissen van de vorige sessie Session("VorigeKlas") = "" Session("GevondenLessen") = 0

Page 142: Gip Gilles Knockaert

142

Session("LaatsteTabel") = "" Session("GekozenKlassen") = "" End Sub Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlJaar.SelectedIndexChanged 'Declareren variabelen Dim dteNieuw As Date 'Nieuwe datum opstellen, gebaseerd op de dag & maand van vandaag dteNieuw = Date.Now.Day & "/" & Date.Now.Month & "/" & ddlJaar.SelectedItem.Text 'Geselecteerde datum veranderen clrKalender.TodaysDate = dteNieuw End Sub End Class

Page 143: Gip Gilles Knockaert

143

1.4.8 Print: bekijk per les Deze wordt gegenereerd door code. Partial Class PrintBekijkPerLes Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Tekst uit Session halen en weergeven 'Label1.Text = Session("BekijkenOpgeslaan") 'Printen van de pagina Response.Write("<script language = 'javascript'>javascript:window.print()</script>") If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If Try Dim strKlas(99) As String strKlas = Session("GekozenKlassen").ToString.Split("|") For intteller = 0 To Session("GekozenKlassenAantal") - 1 Dim lbl As New Label lbl.Text = "<br>" & strKlas(intteller) Me.Controls.Add(lbl) Me.Controls.Add(Session("tabel" & intteller)) Next Catch ex As Exception End Try End Sub End Class

1.4.9 Print bekijk per les voorbeeld Deze wordt gegenereerd door code. Partial Class PrintBekijkPerLesPreview Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Tekst uit Session halen en weergeven 'Label1.Text = Session("BekijkenOpgeslaan") 'Printen van de pagina If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If Try Dim strKlas(99) As String strKlas = Session("GekozenKlassen").ToString.Split("|")

Page 144: Gip Gilles Knockaert

144

For intteller = 0 To Session("GekozenKlassenAantal") - 1 Dim lbl As New Label lbl.Text = "<br>" & strKlas(intteller) Me.Controls.Add(lbl) Me.Controls.Add(Session("tabel" & intteller)) Next Catch ex As Exception End Try End Sub End Class

Page 145: Gip Gilles Knockaert

145

1.4.10 Toevoegen klaskeuze Screenshot

Naam cblKeuze (wordt gevuld in code) Naam btnVerder Text Verdergaan HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="ToevoegenKlasKeuze.aspx.vb" Inherits="ToevoegenKlasKeuzeµ" %> <!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"> <style type="text/css"> body { background-color: #7C819F; text-align: center; } .style1 { width: 53%; border-style: solid; border-width: 1px; } #Tabel1 { text-align: center; background-color: #F7FAD2; color: #A02125; } #Titel_Tabel {

Page 146: Gip Gilles Knockaert

146

background-color: transparent; color: #A02125; text-decoration: underline; font-size: XX-Large; text-align: center; } </style> <title></title> </head> <body> <form id="form1" runat="server"> <div> <table align="center" class="style5"> <tr> <td> &nbsp;</td> </tr> </table> </div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"> </asp:SqlDataSource> <table align="center" class="style1" border="0"> <tr> <td> <br /> <asp:Label runat="server" Font-Bold="True" Font-Size="XX-Large" Font-Underline="True" style="text-align: justify; height: 56px; width: 1108px" Text="Voor welke klassen wenst u gegevens in te vullen?" id="Titel_Tabel"></asp:Label> <br /> <br /> <br /> <asp:CheckBoxList ID="cblKeuze" runat="server" style="text-align: left; height: 27px;"> </asp:CheckBoxList> <br />

Page 147: Gip Gilles Knockaert

147

<asp:Button ID="btnVerder" runat="server" Text="Verdergaan" style="text-align: justify" /> <br /> </td> </tr> </table> <br /> </form> </body> </html> ASP Imports System.Data Partial Class ToevoegenKlasKeuzeµ Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If '--------------------------------------KLASSEN 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblKlassen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Lijst klassen vullen aan de hand van database. While objDataReader.Read() 'Klas opslaan Dim strKlas As String strKlas = objDataReader.Item("Klas")

Page 148: Gip Gilles Knockaert

148

strKlas = strKlas.Replace(" ", "") 'Toevoegen klas cblKeuze.Items.Add(strKlas) End While 'Datareader sluiten objDataReader.Close() End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVerder.Click 'Variabelen declareren Dim strGeselecteerd As String Dim intChkCount As Integer 'Tellen items intChkCount = cblKeuze.Items.Count - 1 'Door alle items gaan For intteller = 0 To intChkCount 'Als hij geselecteerd is, item opslaan in variabele If cblKeuze.Items(intteller).Selected = True Then strGeselecteerd &= cblKeuze.Items(intteller).Value & "," End If Next 'Variabele opslaan in Session Session("GeselecteerdeKlassen") = strGeselecteerd 'Doorgaan naar ingaveformulier Response.Redirect("IngaveFormulier.aspx") End Sub End Class

Page 149: Gip Gilles Knockaert

149

1.4.11 Uitloggen Screenshot

Naam btnJa Text Ja Naam btnNee Text Nee HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Uitloggen.aspx.vb" Inherits="Uitloggen" %> <!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></title> <style type="text/css"> body { background-color: #7C819F; text-align: center; margin-left: auto; margin-right: auto; } </style> </head> <body> <form id="form1" runat="server"> <div> Bent u zeker dat u wilt uitloggen?<br /> <br /> <asp:Button ID="btnJa" runat="server" Text="Ja" Width="100px" /> <asp:Button ID="btnNee" runat="server" Text="Nee" Width="100px" /> </div> </form> </body> </html> ASP Partial Class Uitloggen Inherits System.Web.UI.Page

Page 150: Gip Gilles Knockaert

150

Protected Sub btnJa_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnJa.Click Session.Clear() Response.Redirect("Inlog.aspx") End Sub Protected Sub btnNee_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNee.Click Response.Redirect("Home.aspx") End Sub End Class

Page 151: Gip Gilles Knockaert

151

1.4.12 Lokalen printen (instelling) Screenshot

Naam txtTekst Naam btnPrint Text Print Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Lokalen.aspx.vb" Inherits="AdminPaginas_Samenvatting_Lokalen" %> <!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></title> </head> <body bgcolor=7C819F> <form id="form1" runat="server"> <div> Lijst van alle lokalen<br /> Tekst bovenaan pagina<br /> <asp:TextBox ID="txtTekst" runat="server" Height="46px" TextMode="MultiLine" Width="398px"></asp:TextBox> <br /> <asp:Button ID="btnPrint" runat="server" Text="Print" /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Lokaal" HeaderText="Lokaal"

Page 152: Gip Gilles Knockaert

152

SortExpression="Lokaal" /> <asp:BoundField DataField="Thuisklas" HeaderText="Thuisklas" SortExpression="Thuisklas" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLokalen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Samenvatting_Lokalen Inherits System.Web.UI.Page Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click If Session("FirstName") = "" Then Response.Redirect("Verboden.aspx") End If Session("TekstLokalen") = txtTekst.Text Response.Write("<script language = 'javascript'>javascript:window.open('Print/Lokalen.aspx')</script>") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Verboden.aspx") End If End Sub End Class

Page 153: Gip Gilles Knockaert

153

1.4.13 Lokalen printen Screenshot

Naam Label1 Text *ingevoerd in vorige pagina* Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Lokalen.aspx.vb" Inherits="AdminPaginas_Print_Lokalen" %> <!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></title> </head> <body bgcolor=White> <form id="form1" runat="server"> <p> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large"></asp:Label> </p> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Lokaal" HeaderText="Lokaal" SortExpression="Lokaal" /> <asp:BoundField DataField="Thuisklas" HeaderText="Thuisklas" SortExpression="Thuisklas" />

Page 154: Gip Gilles Knockaert

154

</Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLokalen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Print_Lokalen Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = Session("TekstLokalen") Response.Write("<script language = 'javascript'>javascript:window.print()</script>") End Sub End Class

Page 155: Gip Gilles Knockaert

155

1.4.14 Klassen printen (instelling) Screenshot

Naam txtTekst Naam btnPrint Text Print Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Klassen.aspx.vb" Inherits="AdminPaginas_Samenvatting_Klassen" %> <!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></title> </head> <body bgcolor=7C819F> <form id="form1" runat="server"> <div> Lijst van alle klassen<br /> Tekst bovenaan pagina<br /> <asp:TextBox ID="txtTekst" runat="server" Height="46px" TextMode="MultiLine" Width="398px"></asp:TextBox> <br /> <asp:Button ID="btnPrint" runat="server" Text="Print" /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server"

Page 156: Gip Gilles Knockaert

156

ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Samenvatting_Klassen Inherits System.Web.UI.Page Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click Session("TekstKlassen") = txtTekst.Text Response.Write("<script language = 'javascript'>javascript:window.open('Print/Klassen.aspx')</script>") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("~/Login.aspx") End If End Sub End Class

Page 157: Gip Gilles Knockaert

157

1.4.15 Klassen printen Screenshot

Naam Label1 Text *ingevoerd in vorige pagina* Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Klassen.aspx.vb" Inherits="AdminPaginas_Print_Klassen" %> <!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></title> </head> <body bgcolor="White"> <form id="form1" runat="server"> <p> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large"></asp:Label> </p> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblKlassen]"></asp:SqlDataSource>

Page 158: Gip Gilles Knockaert

158

</div> </form> </body> </html> ASP Partial Class AdminPaginas_Print_Klassen Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = Session("TekstKlassen") Response.Write("<script language = 'javascript'>javascript:window.print()</script>") End Sub End Class

Page 159: Gip Gilles Knockaert

159

1.4.16 Gebruikers printen (instelling) Screenshot

Naam txtTekst Naam btnPrint Text Print Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Gebruikers.aspx.vb" Inherits="AdminPaginas_Samenvatting_Gebruikers" %> <!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></title> </head> <body bgcolor=7C819F> <form id="form1" runat="server"> <div> Lijst van alle gebruikers<br /> Tekst bovenaan pagina<br /> <asp:TextBox ID="txtTekst" runat="server" Height="46px" TextMode="MultiLine" Width="398px"></asp:TextBox> <br /> <asp:Button ID="btnPrint" runat="server" Text="Print" /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Paswoord" HeaderText="Paswoord" SortExpression="Paswoord" />

Page 160: Gip Gilles Knockaert

160

<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Admin" HeaderText="Admin" SortExpression="Admin" /> <asp:BoundField DataField="Vak" HeaderText="Vak" SortExpression="Vak" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblGebruikers]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Samenvatting_Gebruikers Inherits System.Web.UI.Page Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click Session("TekstGebruikers") = txtTekst.Text Response.Write("<script language = 'javascript'>javascript:window.open('Print/Gebruikers.aspx')</script>") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("~/Login.aspx") End If End Sub End Class

Page 161: Gip Gilles Knockaert

161

1.4.17 Gebruikers printen Screenshot

Naam Label1 Text *ingevoerd in vorige pagina* Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Gebruikers.aspx.vb" Inherits="AdminPaginas_Print_Gebruikers" %> <!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></title> </head> <body bgcolor="White"> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large"></asp:Label> <br /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="Naam" HeaderText="Naam" SortExpression="Naam" /> <asp:BoundField DataField="Paswoord" HeaderText="Paswoord" SortExpression="Paswoord" /> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Admin" HeaderText="Admin" SortExpression="Admin" />

Page 162: Gip Gilles Knockaert

162

<asp:BoundField DataField="Vak" HeaderText="Vak" SortExpression="Vak" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblGebruikers]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Print_Gebruikers Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = Session("TekstGebruikers") Response.Write("<script language = 'javascript'>javascript:window.print()</script>") End Sub End Class

Page 163: Gip Gilles Knockaert

163

1.4.18 Lessen printen (instelling) Screenshot

Naam txtTekst Naam btnPrint Text Print Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Lessen.aspx.vb" Inherits="AdminPaginas_Samenvatting_Lessen" %> <!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></title> </head> <body bgcolor=7C819F> <form id="form1" runat="server"> <div> Lijst van alle lessen<br /> Tekst bovenaan pagina<br /> <asp:TextBox ID="txtTekst" runat="server" Height="46px" TextMode="MultiLine" Width="398px"></asp:TextBox> <br /> <asp:Button ID="btnPrint" runat="server" Text="Print" /> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Lesuur" HeaderText="Lesuur" SortExpression="Lesuur" /> <asp:BoundField DataField="Onderwerp" HeaderText="Onderwerp" SortExpression="Onderwerp" />

Page 164: Gip Gilles Knockaert

164

<asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> <asp:BoundField DataField="Commentaar" HeaderText="Commentaar" SortExpression="Commentaar" /> <asp:BoundField DataField="Doelstelling" HeaderText="Doelstelling" SortExpression="Doelstelling" /> <asp:BoundField DataField="Lokaal" HeaderText="Lokaal" SortExpression="Lokaal" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT * FROM [PGGtblLessen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Samenvatting_Lessen Inherits System.Web.UI.Page Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click If Session("FirstName") = "" Then Response.Redirect("Verboden.aspx") End If Session("TekstLessen") = txtTekst.Text Response.Write("<script language = 'javascript'>javascript:window.open('Print/Lessen.aspx')</script>") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Verboden.aspx") End If End Sub End Class

Page 165: Gip Gilles Knockaert

165

1.4.19 Lessen printen Screenshot

Naam Label1 Text *ingevoerd in vorige pagina* Naam Gridview1 DataSourceID SqlDataSource1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Lessen.aspx.vb" Inherits="AdminPaginas_Print_Lessen" %> <!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></title> </head> <body bgcolor="White"> <form id="form1" runat="server"> <p> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="X-Large"></asp:Label> </p> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="Lesuur" HeaderText="Lesuur" SortExpression="Lesuur" /> <asp:BoundField DataField="Onderwerp" HeaderText="Onderwerp" SortExpression="Onderwerp" /> <asp:BoundField DataField="Klas" HeaderText="Klas" SortExpression="Klas" /> <asp:BoundField DataField="Commentaar" HeaderText="Commentaar" SortExpression="Commentaar" /> <asp:BoundField DataField="Doelstelling" HeaderText="Doelstelling" SortExpression="Doelstelling" /> <asp:BoundField DataField="Lokaal" HeaderText="Lokaal"

Page 166: Gip Gilles Knockaert

166

SortExpression="Lokaal" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLessen]"></asp:SqlDataSource> </div> </form> </body> </html> ASP Partial Class AdminPaginas_Print_Lessen Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label1.Text = Session("TekstLessen") Response.Write("<script language = 'javascript'>javascript:window.print()</script>") End Sub End Class

Page 167: Gip Gilles Knockaert

167

1.4.20 Handleiding Screenshot

HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Handleiding.aspx.vb" Inherits="Handleiding" %> <!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> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Handleiding</title> <style type="text/css"> body { background-color: #7C819F; color: White; font-size: 12pt; } .text { margin-left: 80px; margin-right: 80px;

Page 168: Gip Gilles Knockaert

168

} #Inhoudstafel{ border-color:#900; } #tabel_uitleg{ border-color:#900; } a:link { color: #00C; } a:visited { color: #00C; } </style> </head> <body> <table width="25%" border="1" id="Inhoudstafel"> <tr> <td colspan="2"><a name="top" id="top"></a>Inhoudsopgave: Help</td> </tr> <tr> <td width="11%">1.</td> <td width="89%"><a href="#inlogscherm">Inlogpagina</a></td> </tr> <tr> <td>2.</td> <td><a href="#startscherm">Startscherm</a></td> </tr> <tr> <td>3.</td> <td><a href="#ingaveformulier">Lessen toevoegen</a></td> </tr> <tr> <td>4.</td> <td><a href="#lessenbewerken">Lessen bewerken</a></td> </tr> <tr> <td>5.</td> <td><a href="#overzichtlessen">Overzicht lessen afdrukken</a></td> </tr> <tr> <td>6.</td> <td><a href="#adminpnl">Doelstellingen bekijken</a><a href="#adminpnl"></a></td>

Page 169: Gip Gilles Knockaert

169

</tr> <tr> <td>7.</td> <td><a href="#doelstellingen">Doelstellingen toevoegen</a></td> </tr> <tr> <td>8.</td> <td><a href="#adminpnl">Configuratiepaneel voor administrators</a></td> </tr> <tr> <td>9.</td> <td><a href="#samenvattingen">Samenvattingen</a><a href="#adminpnl"> (afdrukken)</a></td> </tr> </table> <p><strong><u>Opm: Let op! Gelieve elke keer na gebruik van het programma effectief uit te loggen.</u></strong><br /> Dit verkleint het risico dat niet-bevoegden aan uw ingevoerde gegevens geraken. </p> <table width="912" border="1" id="tabel_uitleg"> <tr id="Cel_Boven"> <td>Het <a name="inlogscherm" id="inlogscherm"></a>inlogscherm geeft uw de mogelijkheid om met een bepaalde gebruiker in te loggen. (Al dan niet als administrator). U gaat als volgt te werk:</td> <td width="303" rowspan="2"><img src="Handleiding%20Afb/Inlogscherm_Edit.JPG" width="565" height="560" /></td> </tr> <tr> <td width="303" height="81"><p>&nbsp;</p> <table width="100%" border="0"> <tr> <td height="30">1) Vul hier uw gebruikersnaam in.</td> </tr> <tr> <td height="29">2) Vul hier uw paswoord in.</td> </tr> <tr> <td height="51">3) Deze box aanvinken als u wilt dat uw paswoord opgeslagen wordt.</td> </tr> <tr> <td>4) Tenslotte kunt u hier inloggen.</td> </tr> </table> <p>&nbsp;</p></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p>

Page 170: Gip Gilles Knockaert

170

<table width="900" border="1" id="tabel_uitleg"> <tr> <td><a name="startscherm" id="startscherm"></a>Startscherm: Van hieruit kunt u beginnen met het invoeren, bewerken en bekijken van lessen.</td> </tr> <tr id="Cel_Boven2"> <td><img src="Handleiding Afb/kalendar_nieuw.png" width="902" height="487" /></td> </tr> <tr> <td width="917" height="81"><table width="100%" border="0"> <tr> <td height="30">1) Klik dit keuzerondje aan om te beginnen met een les toe te voegen. Eenmaal dit geselecteerd is hoeft u enkel nog een datum naar keuze aan te klikken in de kalender onderaan. Zie &quot;<a href="#ingaveformulier">Lessen toevoegen</a>&quot; voor verdere instructies.</td> </tr> <tr> <td height="53">2) Klik dit keuzerondje aan om te beginnen met een les te bewerken. Eenmaal dit geselecteerd is hoeft u enkel nog een datum naar keuze aan te klikken in de kalender onderaan. Zie &quot;<a href="#lessenbewerken">Lessen bewerken</a>&quot; voor verdere instructies.</td> </tr> <tr> <td>3) "bekijk": Klik dit keuzerondje aan om een enkele les te bekijken. Eenmaal dit geselecteerd is hoeft u enkel nog een datum naar keuze aan te klikken in de kalender onderaan. Hierna wordt de gevraagde informatie weergegeven in een tabel die zich onder de kalender bevindt. </td> </tr> <tr> <td height="20"><p>4) Hier kunt u uw gewenste datum selecteren die nodig is om de gewenste bewerkingen (hierboven) uit te voeren.</p></td> </tr> <tr> <td>5) Uit deze lijst kunt u een keuze maken tussen alle klassen waarvoor u lessen hebt ingevoerd.<br /> Data waar lessen reeds zijn ingevoerd worden in de kalender grijs gearceerd.</td> </tr> <tr> <td><p>6) Algemene navigatie in het programma. (Klik op de naam om te springen naar de uitleg.)</p> <p>-&gt; <a href="#startscherm">Kalender</a><br /> -&gt; <a href="#overzichtlessen">Afdrukken</a><br /> --&gt; Extra: &quot;<a href="#top">Handleiding</a>&quot;<br /> --&gt; Doelstellingen: &quot;<a href="#doelstellingen">Toevoegen</a>&quot; en &quot;<a href="#doelstellingenbekijken">Bekijken</a>&quot;<br />

Page 171: Gip Gilles Knockaert

171

-&gt;<a href="#samenvattingen">Samenvattingen</a><br /> </p></td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td colspan="2"><a name="ingaveformulier" id="ingaveformulier"></a>Lessen toevoegen: Via deze procedure kan u lessen toevoegen op een bepaalde datum.<br /> <strong><u>Opm: Deze stappen worden weergegeven na het selecteren van een bepaalde datum waar reeds lessen zijn ingevuld, op de kalender te vinden in het startscherm. (Zie &quot;<a href="#startscherm">Startscherm</a>&quot;)</u></strong></td> </tr> <tr> <td><div align="center"><strong>Stap 1</strong></div></td> <td><div align="center"><strong>Stap 2</strong></div></td> </tr> <tr id="Cel_Boven3"> <td width="389"><img src="Handleiding%20Afb/Keuze_Klassen_Edit.JPG" width="389" height="259" /></td> <td width="506"><img src="Handleiding Afb/ingave.JPG" width="516" height="501" /></td> </tr> <tr> <td height="81" colspan="2"><table width="100%" border="0"> <tr> <td width="43%">1) Selecteer de klassen waarvoor u een les wilt invullen.</td> <td width="57%" height="30">1) Hier kunt u kiezen in welk lokaal de les doorgaat.</td> </tr> <tr> <td>2) Klik op deze knop om verder te gaan en over te gaan naar &quot;Stap 2&quot;.</td> <td height="53">2) Hier kunt u kiezen of u een les wilt toevoegen voor 1 of meerdere lesuren.</td> </tr> <tr> <td>&nbsp;</td> <td height="20"><p>3) Hier kunt u het onderwerp van de les invullen.</p></td> </tr> <tr> <td>&nbsp;</td> <td>4) Hier kan u bijkomende commentaar over de les invullen.</td> </tr> <tr> <td>&nbsp;</td>

Page 172: Gip Gilles Knockaert

172

<td>5) <a name="doelstellingen_toevoegen" id="doelstellingen_toevoegen"></a>Hier kan u een hoofddoelstelling selecteren die wordt aangehaald in de les. Klik daarna op &quot;Kies&quot;.</td> </tr> <tr> <td>&nbsp;</td> <td>6) Hier kan u een subdoelstelling van de hoofddoelstelling selecteren die wordt behandeld. Klik ook hierna op &quot;Kies&quot;.</td> </tr> <tr> <td>&nbsp;</td> <td>7) Wanneer u zowel hoofd- als subdoelstelling gekozen heeft, zal deze in de linker onderstaande lijst gebracht worden.<br /> U kan meerdere doelstellingen toevoegen aan de lijst door stap 5 en 6 te herhalen. </td> </tr> <tr> <td>&nbsp;</td> <td>8) Door op de overeenkomstige pijl te klikken kan u nu naar wens de gepaste doelstelling(en) overbrengen van lijst.<br /> Doelstellingen in de rechterlijst zullen worden opgeslagen in de database. </td> </tr> <tr> <td>&nbsp;</td> <td><p>9) Klik hier om de gegevens op te slaan.</p></td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td width="895"><a name="lessenbewerken" id="lessenbewerken"></a>Lessen bewerken: Via deze procedure kan u lessen bewerken die reeds op een bepaalde datum zijn ingevoerd.<br /> <strong><u>Opm: Deze stappen worden weergegeven na het selecteren van een bepaalde datum waar reeds lessen zijn ingegeven, op de kalender te vinden in het startscherm. (Zie &quot;<a href="#startscherm">Startscherm</a>&quot;)</u></strong></td> </tr> <tr align="center" id="Cel_Boven4"> <td><img src="Handleiding Afb/bewerken.JPG" width="580" height="656" /></td> </tr> <tr> <td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1) Selecteer het lesuur waarvan u het onderwerp wilt aanpassen.</td> </tr> <tr>

Page 173: Gip Gilles Knockaert

173

<td height="53">2) Selecteer de klas waarvan u op de desbetreffende datum een les wilt aanpassen.</td> </tr> <tr> <td height="20">3) Hier kan u het lokaal aanpassen waar de les doorging.</td> </tr> <tr> <td>4) Het opgeslagen onderwerp wordt weergegeven en kan nu aangepast worden.</td> </tr> <tr> <td>5) De opgeslagen commentaar wordt weergegeven en kan nu aangepast worden.</td> </tr> <tr> <td>6) U kan hier de behaalde/besproken doelstellingen aanpassan zoals besproken &quot;<a href="#doelstellingen_toevoegen">hier</a>&quot; (stap 5).</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td width="903"><a name="overzichtlessen" id="overzichtlessen"></a>Overzicht lessen afdrukken tussen 2 bepaalbare data.</td> </tr> <tr align="center" id="Cel_Boven5"> <td><img src="Handleiding%20Afb/Overzicht_Edit.JPG" width="884" height="314" /></td> </tr> <tr> <td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1) Selecteer de klas waarvan u de ingevoerde lessen witl zien tussen 2 bepaalde data.</td> </tr> <tr> <td height="53">2) Selecteer een begindatum (alle lessen worden weergeven die ingevoerd zijn vanaf deze datum).</td> </tr> <tr> <td height="20">3) Selecteer een einddatum (alle lessen worden weergegeven die ingevoerd zijn tot en met deze datum).</td> </tr> <tr> <td>4) De gevraagde lessen tussen de 2 bepaalde data worden weergegeven.</td> </tr> <tr>

Page 174: Gip Gilles Knockaert

174

<td>5) De opgvraagde lessen toevoegen aan een lijst (die onderaan de pagina wordt weergegeven ) om dan af te printen. (Meerdere klassen kunnen onder elkaar toegevoegd worden door &quot;stap 1&quot; te herhalen voor een andere klas.)</td> </tr> <tr> <td>6) De lijst met de klassen die eerder werden toegevoegd (stap 5) kunnen hiermee worden afgedrukt.</td> </tr> <tr> <td>7) Annuleer de huidige bewerkingen en keer terug naar het startscherm.</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td width="903"><a name="doelstellingen" id="doelstellingen"></a>Doelstellingen toevoegen: Hiermee kunt u doelstellingen voor specifieke klassen toevoegen.</td> </tr> <tr align="center" id="Cel_Boven6"> <td><img src="Handleiding%20Afb/Doelstellingen_Edit.JPG" width="584" height="582" /></td> </tr> <tr> <td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1 t.e.m. 2; 4 t.e.m. 6; 8 t.e.m. 11) Zie &quot;Syntax&quot; bovenaan de getoonde pagina. Hier kunt u de gewenste doelstellingen ingeven. Ingaven worden gesplitst volgens &quot;Hoofdonderdeel&quot;, &quot;Subonderdeel&quot; en een specifiek item, naarmate hun prioriteit in het lesgeven.</td> </tr> <tr> <td height="53">3, 7, 12) Druk op deze knop om het ingegeven onderdeel toe te voegen.</td> </tr> <tr> <td height="20">14) Ingevoerde onderdelen van volgorde veranderen. (Onderdeel 1 plaats naar boven plaatsen)</td> </tr> <tr> <td>15) Ingevoerde onderdelen van volgorde veranderen. (Onderdeel 1 plaats naar onder plaatsen)</td> </tr> <tr> <td>16) Het geselecteerde onderdeel verwijderen.</td> </tr> <tr> <td>17) Doelstelling toekennen aan bepaalde klas, te kiezen uit de lijst.</td>

Page 175: Gip Gilles Knockaert

175

</tr> <tr> <td>18) Doelstelling toekennen aan specifiek vak, te kiezen uit de lijst.</td> </tr> <tr> <td>19) Ingevoerde gegevens opslaan.</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td><a name="adminpnl" id="adminpnl"></a>Admin paneel: Hier heeft u de mogelijkheid om zowel gebruikers als klassen toe te voegen. (Enkel toegankelijk voor administrators)</td> </tr> <tr align="left" id="Cel_Boven7"> <td width="674"><img src="Handleiding%20Afb/Admin_Panel_Part1_Edit.JPG" width="674" height="604" /></td> </tr> <tr> <td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1, 10) Gebruiker of klas verwijderen uit database.</td> </tr> <tr> <td height="53">2, 3, 4, 11, 12) Kolommen (tegenovergesteld) alfabetisch rangschikken, </td> </tr> <tr> <td height="20">5) Naam van gebruiker invoeren volgens gegeven syntax.</td> </tr> <tr> <td>6) Gebruiker toevoegen aan onderstaande lijst &quot;Toe te voegen gebruikers&quot;. Deze gebruikers zijn nog niet onderdeel van de database, maar zo kan u meerdere gebruikers in 1 klik toevoegen door ze eerst elk in deze lijst te zetten.</td> </tr> <tr> <td>7) Lijst met gebruikers die reeds ingegeven zijn maar nog niet onderdeel zijn van de database.</td> </tr> <tr> <td>8) Geselecteerde gebruiker uit de lijst &quot;Toe te voegen gebruikers&quot; verwijderen.</td> </tr> <tr> <td>9) Ingevoerde gebruikers toevoegen aan database.</td> </tr>

Page 176: Gip Gilles Knockaert

176

<tr> <td>Onderaan het formulier heeft u nog de mogelijkheid om een klas in te voeren en deze dan op te slaan in de database.</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td><a name="doelstellingenbekijken" id="doelstellingenbekijken"></a>Doelstellingen bekijken: Bekijk hier de doelstellingen per klas.</td> </tr> <tr align="left" id="Cel_Boven8"> <td width="674"><img src="Handleiding%20Afb/doelstelling_bekijken.JPG" width="574" height="326" /></td> </tr> <tr> <td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1) Maak hier uw keuze voor welke klas u de doelstellingen wilt bekijken. U krijgt een lijst met alle doelstellingen voor alle vakken van die specifieke klas.</td> </tr> <tr> <td height="53">2) Maak hier uw keuze voor welk vak u de doelstellingen wilt bekijken.</td> </tr> <tr> <td height="53">3) Deze stap gaat samen met stap &quot;2&quot;.<br /> Nadat u een vak gekozen heeft, kunt u hier het resultaat verder filteren door te bepalen welke doelstellingen mogen weergegeven worden volgens welke klas. Het resultaat is een lijst met doelstellingen specifiek voor een vak in een bepaalde klas.</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <table width="912" border="1" id="tabel_uitleg"> <tr> <td><a name="samenvattingen" id="samenvattingen"></a>Samenvattingen: Hier kan u een overzicht van gebruikers, klassen, lessen en lokalen afdrukken. <u>Deze stappen komen ook in aanmerking voor alle andere overzichten.</u></td> </tr> <tr align="left" id="Cel_Boven9"> <td width="674"><img src="Handleiding Afb/samenvattingen.JPG" width="549" height="333" /></td> </tr> <tr>

Page 177: Gip Gilles Knockaert

177

<td height="81"><table width="100%" border="0"> <tr> <td width="43%" height="30">1)Hier heeft u de mogelijkheid om een tekst te typen die later zal verschijnen boven de tabel bij het afdrukken.</td> </tr> <tr> <td height="53">2) Druk op deze knop om de overzichtstabel samen met de toegevoegde tekst af te drukken.</td> </tr> </table></td> </tr> </table> <p><a href="#top">Keer terug naar top.</a></p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <div align="justify"></div> </body> </html> ASP Partial Class Handleiding Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx") End If Session("VorigeKlas") = "" Session("GevondenLessen") = 0 Session("LaatsteTabel") = "" Session("GekozenKlassen") = "" End Sub End Class

Page 178: Gip Gilles Knockaert

178

1.4.21 Lessen printen Screenshot

Naam ddlKlassen DataSourceID SqlDataSource2 Naam clnBegin Naam clnEind Naam btnBekijk Text Weergeven Naam btnToevoegen Text Klas Toevoegen Naam btnPrint Text Print Naam btnAnnuleren Text Annuleren Naam Frame2 Src PrintBekijkPerLesPreview.aspx HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="HerbekijkenPerDag.aspx.vb" Inherits="HerbekijkenPerDag" %> <!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></title> <style type="text/css"> .style1 { width: 100%; }

Page 179: Gip Gilles Knockaert

179

#frame2 { height: 327px; width: 799px; } .style2 { width: 445px; } .style3 { height: 26px; } </style> </head> <body bgcolor= #7C819F> <form id="form1" runat="server" src="ToevoegenKlasKeuze.aspx"> <div> <asp:DropDownList ID="ddlKlassen" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="Klas" DataValueField="Klas"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString2 %>" SelectCommand="SELECT [Klas] FROM [PGGtblKlassen]"></asp:SqlDataSource> <table class="style1"> <tr> <td align=center class="style2"> <strong>Begindatum</strong></td> <td> <td align=center><strong>Einddatum</strong></td> &nbsp;</td> </tr> <tr> <td class="style2"> <asp:Calendar ID="ClnBegin" runat="server" BackColor="White" BorderColor="White" DayNameFormat="Full" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" ShowGridLines="True"

Page 180: Gip Gilles Knockaert

180

style="margin-top: 0px; height: 200px; width: 100%;" BorderStyle="None" CellSpacing="1" Height="147px" NextPrevFormat="FullMonth" Width="100%"> <DayHeaderStyle Font-Bold="True" Height="8pt" Font-Size="8pt" ForeColor="#333333" /> <DayStyle BackColor="#DADCE4" /> <NextPrevStyle Font-Size="8pt" ForeColor="#333333" Font-Bold="True" /> <OtherMonthDayStyle ForeColor="#666666" /> <SelectedDayStyle BackColor="#333399" ForeColor="White" /> <TitleStyle BackColor="#B7BBCA" Font-Bold="True" Font-Size="12pt" ForeColor="#333333" BorderStyle="Solid" Height="12pt" /> <TodayDayStyle BackColor="#999999" ForeColor="White" /> </asp:Calendar> </td> <td></td> <td> <asp:Calendar ID="clnEind" runat="server" BackColor="White" BorderColor="White" DayNameFormat="Full" Font-Names="Verdana" Font-Size="9pt" ForeColor="Black" ShowGridLines="True" style="margin-top: 0px; height: 200px; width: 100%; " BorderStyle="None" CellSpacing="1" Height="200px" NextPrevFormat="FullMonth" Width="100%"> <DayHeaderStyle Font-Bold="True" Height="8pt" Font-Size="8pt" ForeColor="#333333" /> <DayStyle BackColor="#DADCE4" /> <NextPrevStyle Font-Size="8pt" ForeColor="#333333" Font-Bold="True" /> <OtherMonthDayStyle ForeColor="#666666" /> <SelectedDayStyle BackColor="#333399" ForeColor="White" /> <TitleStyle BackColor="#B7BBCA" Font-Bold="True" Font-Size="12pt" ForeColor="#333333" BorderStyle="Solid" Height="12pt" /> <TodayDayStyle BackColor="#999999" ForeColor="White" /> </asp:Calendar> </td>

Page 181: Gip Gilles Knockaert

181

</tr> </table> <asp:Button ID="btnBekijk" runat="server" Text="Weergeven" /> <asp:Button ID="btnToevoegen" runat="server" Text="Klas toevoegen" Enabled="False" /> <asp:Button ID="btnPrint" runat="server" Text="Print" CssClass="style3" /> <asp:Button ID="btnAnnuleren" runat="server" Text="Annuleren" /> <br /> <asp:Label ID="Label1" runat="server"></asp:Label> <br /> <br /> </div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jozefappConnectionString %>" SelectCommand="SELECT * FROM [PGGtblLessen]"> </asp:SqlDataSource> <IFRAME id="frame2" scrolling="auto" runat="server" src="PrintBekijkPerLesPreview.aspx"> </IFRAME> <br /> </form> </body> </html> ASP Imports System.Data Partial Class HerbekijkenPerDag Inherits System.Web.UI.Page Dim tbl As New Table Dim tblLaatst As Table Protected WithEvents frame3 As System.Web.UI.HtmlControls.HtmlGenericControl Private Sub Inladen() Session("GevondenLessen") = 0 'Declareren variabelen Dim objDataReader As SqlClient.SqlDataReader Dim objCommando As New SqlClient.SqlCommand Dim objConnectie As New SqlClient.SqlConnection Dim strID, strSplits(), strDatum1, strKlas1, strLesuur As String

Page 182: Gip Gilles Knockaert

182

Dim intTeller As Integer = 0 Dim blnLes As Boolean = False 'Connectiestring instellen objConnectie.ConnectionString = SqlDataSource1.ConnectionString 'Connectie openen objConnectie.Open() 'Commando instellen objCommando.Connection = objConnectie objCommando.CommandText = "SELECT * FROM PGGtblLessen" 'Datareader uitvoeren objDataReader = objCommando.ExecuteReader 'Leegmaken label Label1.Text = Nothing 'Tabel opstellen 'Hoofd instellen van tabel1 Dim rh As New TableRow() Dim c1h As New TableCell() Dim c2h As New TableCell() Dim c3h As New TableCell() Dim c4h As New TableCell() Dim c5h As New TableCell() c1h.Controls.Add(New LiteralControl("Datum")) c2h.Controls.Add(New LiteralControl("Lokaal")) c3h.Controls.Add(New LiteralControl("Onderwerp")) c4h.Controls.Add(New LiteralControl("Commentaar")) c5h.Controls.Add(New LiteralControl("Doelstelling")) c1h.Font.Bold = True c1h.Font.Underline = True c1h.HorizontalAlign = HorizontalAlign.Center c2h.Font.Bold = True c2h.Font.Underline = True c2h.HorizontalAlign = HorizontalAlign.Center c3h.Font.Bold = True c3h.Font.Underline = True c3h.HorizontalAlign = HorizontalAlign.Center

Page 183: Gip Gilles Knockaert

183

c4h.Font.Bold = True c4h.Font.Underline = True c4h.HorizontalAlign = HorizontalAlign.Center c5h.Font.Bold = True c5h.Font.Underline = True c5h.HorizontalAlign = HorizontalAlign.Center c1h.BorderColor = Drawing.Color.Black c1h.BorderStyle = BorderStyle.Solid c1h.BorderWidth = 1 c3h.BorderColor = Drawing.Color.Black c3h.BorderStyle = BorderStyle.Solid c3h.BorderWidth = 1 c4h.BorderColor = Drawing.Color.Black c4h.BorderStyle = BorderStyle.Solid c4h.BorderWidth = 1 c5h.BorderColor = Drawing.Color.Black c5h.BorderStyle = BorderStyle.Solid c5h.BorderWidth = 1 rh.Cells.Add(c1h) rh.Cells.Add(c2h) rh.Cells.Add(c3h) rh.Cells.Add(c4h) rh.Cells.Add(c5h) tbl.Rows.Add(rh) tbl.BorderStyle = BorderStyle.Solid tbl.BorderWidth = 1 tbl.BorderColor = Drawing.Color.Black tbl.GridLines = GridLines.Both 'Datareader uitvoeren While objDataReader.Read() 'Variabelen opslaan strID = objDataReader.Item("ID") strSplits = strID.Split("-") strDatum1 = strSplits(0).Replace(" ", "") strKlas1 = strSplits(1).Replace(" ", "")

Page 184: Gip Gilles Knockaert

184

strLesuur = strSplits(2) Dim dteDatum As Date dteDatum = strDatum1 If dteDatum >= clnBegin.SelectedDate Then If dteDatum <= clnEind.SelectedDate Then ''Als de datum overeenkomt 'If Session("GeselecteerdeDatum") = strDatum Then 'Als de klas overeenkomt ' MsgBox(ddlKlassen.SelectedItem.Text) If strKlas1 = Session("HerbekijkGeselecteerdeKlas").Replace(" ", "") Then Session("VorigeKlas") = strKlas1 'Les tonen ' Label1.Text &= "Datum: " & strDatum1 & "<br>" & _ '"Klas: " & strKlas1 & "<br>" & _ '"Lesuur: " & strLesuur & "<br>" & _ '"Onderwerp: " & objDataReader.Item("Onderwerp").ToString.Replace(" ", "") & "<br>" & _ '"Commentaar: " & objDataReader.Item("Commentaar").ToString.Replace(" ", "") & "<br>" & _ '"Doelstelling: " & objDataReader.Item("Doelstelling").ToString.Replace(" ", "") & "<br>" & "<br>" Session("GevondenLessen") += 1 'Er is een les gevonden blnLes = True Dim r As New TableRow() Dim c1 As New TableCell() Dim c2 As New TableCell() Dim c3 As New TableCell() Dim c4 As New TableCell() Dim c5 As New TableCell() c1.Width = 100 c2.Width = 100 c3.Width = 200 c4.Width = 200 c5.Width = 200 c1.BorderColor = Drawing.Color.Black c1.BorderStyle = BorderStyle.Solid

Page 185: Gip Gilles Knockaert

185

c1.BorderWidth = 1 c2.BorderColor = Drawing.Color.Black c2.BorderStyle = BorderStyle.Solid c2.BorderWidth = 1 c3.BorderColor = Drawing.Color.Black c3.BorderStyle = BorderStyle.Solid c3.BorderWidth = 1 c4.BorderColor = Drawing.Color.Black c4.BorderStyle = BorderStyle.Solid c4.BorderWidth = 1 c5.BorderColor = Drawing.Color.Black c5.BorderStyle = BorderStyle.Solid c5.BorderWidth = 1 'Lokaal en nummer splitsen '0: Lokaal '1: Lokaal ID Dim strLokaal(1) As String strLokaal = objDataReader.Item("Lokaal").ToString.Replace(" ", "").Split("-") c1.Controls.Add(New LiteralControl(strDatum1)) c2.Controls.Add(New LiteralControl(strLokaal(0))) c3.Controls.Add(New LiteralControl(objDataReader.Item("Onderwerp"))) c4.Controls.Add(New LiteralControl(objDataReader.Item("Commentaar"))) c5.Controls.Add(New LiteralControl(objDataReader.Item("Doelstelling").ToString.Replace(" ", ""))) r.Cells.Add(c1) r.Cells.Add(c2) r.Cells.Add(c3) r.Cells.Add(c4) r.Cells.Add(c5) tbl.Rows.Add(r) End If 'End If End If End If 'MsgBox("IDDatum: " & dteDatum & vbNewLine & _ ' "Begindatum: " & clnBegin.SelectedDate & vbNewLine & _ ' "Einddatum: " & clnEind.SelectedDate & vbNewLine & _ ' "Klas: " & strKlas & vbNewLine & _ ' "Geselecteerde Klas: " & ddlKlassen.SelectedItem.Text & vbNewLine)

Page 186: Gip Gilles Knockaert

186

End While 'Als er geen lessen gevonden zijn, text weergeven If blnLes = False Then Label1.Text = "Er zijn nog geen lessen ingevoerd" Else End If 'Datareader sluiten objDataReader.Close() '----------------------------------------------------------- End Sub Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrint.Click 'Opslaan gevonden waarden Session("BekijkenOpgeslaan") = Label1.Text 'Openen van printweergave Response.Write("<script language = 'javascript'>javascript:window.open('PrintBekijkPerLes.aspx')</script>") End Sub Protected Sub btnBekijk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnBekijk.Click Inladen() Me.Controls.Add(tbl) Session("LaatsteTabel") = tbl btnToevoegen.Enabled = True End Sub Protected Sub btnToevoegen_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click Session("GekozenKlassen") &= Session("VorigeKlas") & "|" Session("GekozenKlassenAantal") += 1 Session("tabel" & (Session("GekozenKlassenAantal") - 1)) = Session("LaatsteTabel") End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then Response.Redirect("Inlog.aspx")

Page 187: Gip Gilles Knockaert

187

End If Dim frame3 As HtmlControl = CType(Me.FindControl("frame2"), HtmlControl) frame3.Attributes("src") = "PrintBekijkPerLesPreview.aspx" 'Session("BekijkenOpgeslaan") = "" 'Session("GekozenKlassenAantal") = 0 End Sub Protected Sub ddlKlassen_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlassen.DataBound Session("HerbekijkGeselecteerdeKlas") = ddlKlassen.SelectedItem.Text End Sub Protected Sub ddlKlassen_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlKlassen.SelectedIndexChanged Session("HerbekijkGeselecteerdeKlas") = ddlKlassen.SelectedItem.Text End Sub Protected Sub btnAnnuleren_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAnnuleren.Click Session("VorigeKlas") = "" Session("GevondenLessen") = 0 Session("LaatsteTabel") = "" Session("GekozenKlassen") = "" Response.Redirect("Kalender.aspx") End Sub End Class

Page 188: Gip Gilles Knockaert

188

1.4.22 Home Screenshot

Naam Frame1 Src Kalender.aspx Naam Treeview1 HTML <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Home.aspx.vb" Inherits="_Default" %> <!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></title> <style type="text/css"> body { background-color: #7C819F; text-align: center; margin-left: auto; margin-right: auto; } #frame1 { height: 736px; width: 955px; margin-right: 0px; }

Page 189: Gip Gilles Knockaert

189

#Titel { background-color: transparent; color: #A02125; padding-top: 15px; } #I1 { width: 910px; height: 701px; } </style> </head> <body> <form id="form1" runat="server"> <div> <br /> <asp:Label ID="Titel" runat="server" Font-Bold="True" Font-Size="XX-Large" Font-Underline="True" style="text-align: center; height: 56px; width: 844px" Text="Kies een dag voor invoer van de lessen:"></asp:Label> <br /> <iframe id="frame1" name="frame1" scrolling="auto" runat="server" frameborder="0" align="left" src="Kalender.aspx"> </IFRAME> <br /> <asp:TreeView ID="TreeView1" runat="server" Font-Size="XX-Large" ForeColor="Black" CollapseImageUrl="~/IconsMenu/Collapse.png" ExpandImageUrl="~/IconsMenu/Expand.png" Target="frame1"> <Nodes> <asp:TreeNode Text="Kalender" Value="New Node" ImageUrl="~/IconsMenu/calendar.png" NavigateUrl="~/Kalender.aspx"></asp:TreeNode> <asp:TreeNode Text="Afdrukken" Value="New Node" NavigateUrl="~/HerbekijkenPerDag.aspx" ImageUrl="~/IconsMenu/Herbekijk.png"></asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/extra.png" Text="Extra" Value="1" Expanded="False"> <asp:TreeNode ImageUrl="~/IconsMenu/LogoLeft.png" NavigateUrl="~/Handleiding.aspx" Text="Handleiding" Value="Handleiding"> </asp:TreeNode>

Page 190: Gip Gilles Knockaert

190

<asp:TreeNode ImageUrl="~/IconsMenu/extra.png" Text="Doelstellingen" Value="Doelstellingen" Expanded="False"> <asp:TreeNode ImageUrl="~/IconsMenu/Doelstellingen.png" NavigateUrl="~/DoelstellingenBekijken.aspx" Text="Bekijken" Value="Bekijken"> </asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/Doelstellingen.png" NavigateUrl="~/DoelstellingenToevoegen.aspx" Text="Toevoegen" Value="Toevoegen"> </asp:TreeNode> </asp:TreeNode> </asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/LoginIcon.png" NavigateUrl="~/Uitloggen.aspx" Text="Uitloggen" Value="Uitloggen" Target="_self"></asp:TreeNode> <asp:TreeNode NavigateUrl="~/admin.aspx" Text="Admin paneel" Value="Admin paneel" ImageUrl="~/IconsMenu/admin.png"> </asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/printertje.png" NavigateUrl="~/AdminPaginas/Samenvatting/Lokalen.aspx" Text="Lokalen" Value="Lokalen"></asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/printertje.png" NavigateUrl="~/AdminPaginas/Samenvatting/Klassen.aspx" Text="Klassen" Value="Klassen"></asp:TreeNode> <asp:TreeNode ImageUrl="~/IconsMenu/printertje.png" NavigateUrl="~/AdminPaginas/Samenvatting/Gebruikers.aspx" Text="Gebruikers" Value="Gebruikers"></asp:TreeNode> <asp:TreeNode NavigateUrl="~/AdminPaginas/Samenvatting/Lessen.aspx" Text="Lessen" Value="Lessen" ImageUrl="~/IconsMenu/printertje.png"></asp:TreeNode> </Nodes> <NodeStyle Font-Bold="False" /> </asp:TreeView> </div> </form> </body> </html> ASP Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Session("FirstName") = "" Then

Page 191: Gip Gilles Knockaert

191

Response.Redirect("Inlog.aspx") End If 'Naam weergeven Titel.Text = "Welkom, " & Session("FirstName") 'Als gebruiker een admin is, btnAdmin tonen Session("GekozenKlassenAantal") = 0 If Not Session("AdminState") = 1 Then For Each item As TreeNode In TreeView1.Nodes 'Items die niet getoond mogen worden bij een gebruiker verbergen If item.Text.Contains("Admin") Then item.Text = "" item.ImageUrl = Nothing End If If item.Text.Contains("Overzicht") Then item.Text = "" item.ImageUrl = Nothing End If If item.Text.Contains("Gebruikers") Then item.Text = "" item.ImageUrl = Nothing End If If item.Text.Contains("Lokalen") Then item.Text = "" item.ImageUrl = Nothing End If If item.Text.Contains("Klassen") Then item.Text = "" item.ImageUrl = Nothing End If If item.Text.Contains("Lessen") Then item.Text = "" item.ImageUrl = Nothing End If Next End If End Sub Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.SelectedNodeChanged Session("VorigeKlas") = "" Session("GevondenLessen") = 0 Session("LaatsteTabel") = "" End Sub End Class

Page 192: Gip Gilles Knockaert

192

Hoofdstuk 5 Engels

5.1 List of 10 software/hardware suppliers in the UK.

1) http://www.scan.co.uk/ 2) http://www.microanvika.com/computing/category.asp?ref 3) http://www.pcworld.co.uk/gbuk/index.html 4) http://www.yoyotech.co.uk/new--inc--3.php 5) http://www.albion.co.uk/ 6) http://www.squaregroup.co.uk/ 7) http://www.askdirect.co.uk/ 8) http://www.ccc-uk.net/products.html 9) http://www.millteccomputers.co.uk/contact.php 10) http://www.pcnt.co.uk/pcnt/ServletSpecialOffers

NR. address e-mail telephone fax 1 25-28 Enterprise Park

Middlebrook, Horwich, Bolton, BL6 6PE UK

Mailing form on the site 087 1472 4747 0871-472-4787

2 3rd Floor - Technology Zone 87-135 Brompton Road Knightsbridge, London, SW1X 7XL

[email protected] 020 7467 6050 020 7255 2792

3 Maylands Avenue, Hemel Hempstead, HP2 7TG

/ / /

4 30 Windmill Street London W1T2JL

Mailing form on the site 08718553380 /

5 112 The Strand, London WC2R 0AG

Sales: [email protected] Training: [email protected] Customer Services:[email protected] Information:[email protected]

020 7212 9090 020 7240 6785

6 78 New Oxford Street London WC1A 1HB

[email protected] 020 7692 6810 020 7692 6636

7 248 Tottenham Court Road, London W1T 7QZ

[email protected] 020 7637 0353 020 7307 8322

8 32 St Peter's St, London, N1 8JT

[email protected] 0870 240 4617 0870 240 8871

9 164 Mile End Rd London E1 4LJ

Mailing form on the site 020 7791 1200 /

10 128 Bishopsgate EC2M 4HX LONDON

[email protected] 020 7099 4872 0845 544 0364

Page 193: Gip Gilles Knockaert

193

5.3 The 2 Websites I will comment on The two websites I’ve chosen are: http://www.squaregroup.co.uk/ http://www.albion.co.uk/

The reason why I selected these two websites is because they look nice and they are not overloaded with text. You can find everything in an easy way. The structure of both sites is very logical, what makes the sites very attractive. After I chose the sites, I saw that both sites are from apple suppliers. Apple has a good reputationand I guess that the suppliers are also trying to make their site like the products of apple, a nice good looking design and logical structure. Also the colers of both sites are especially white, which is the main coler of apple. The website of Square Group also has a large on-line shop compared to the site of Albion. The website of Albion is more to inform the people about their stores and products. On the site of Square Group, you first have all the links next to each other and then immediately underneath, you can find the four most important parts of the site. They also use dropdown menus on the site of Square Group. In that way you can navigate very fast through the site instead of clicking ten times to find what you need. I guess if I would have to rate the sites I would give the site from Square Group a 9/10 and the site from Albion a 8/10 because the site from Square Group is much easier and faster t0o navigate.

Page 194: Gip Gilles Knockaert

194

5.4 Letter of enquiry to one of these suppliers.

Gilles Knockaert Emiel Coolslaan 1 8480 Eernegem

Square Group 8 November 2010 78 New Oxford Street London WC1A 1HB Dear Sire, Dewachter We have seen your advertisement on television about the new ipad. We are one of the biggest transportation companies in Europe and we are looking to equip all our truck drivers with an ipad. We are also looking to change all our computers to imacs. In this case I speak about 500 computers. Could you please send us a price list and quantity discounts if there is any and some detailed information about the different types and products. We look forward to hearing from you. Yours faithfully Gilles Knockaert CEO

Page 195: Gip Gilles Knockaert

195

Gilles Knockaert Emiel Coolslaan 1 8480 Eernegem

Albion 8 November 2010 112 The Strand London WC1A 1HB Dear Sire, Dewachter We have read your advertisement in the paper about the newest version of the ilife software. We are one of the biggest transportation companies in Europe and we would like to use this software on all the computers because it seems very efficient to work with. To make the communication easy we would like to install a mutual software on each PC. In this case we would need about 500 licences from this software. Is there any discount possible? Could you please send us some detailed information about the software or maybe a demo version so that we can test it out in our network environment. Looking forward to hearing from you. Yours faithfully Gilles Knockaert CEO

Page 196: Gip Gilles Knockaert

196

5.5 Presentation of a British SME (small medium enterprise)

GLENN RUYSCHAERT (6IB NR: 6) GILLES KNOCKAERT (6IB NR: 5)

Page 197: Gip Gilles Knockaert

197

Square Enix What happened before We first wanted to make this assignment about the company called Mojang, This is the company which created Minecraft. But we tried to contact then by mail but they never mailed us back. So because of the fact that they never answered our mails, we decided to choose another company, the other company was called Square Enix. We mailed to them at school and the same evening they mailed us back telling us that they would love to help during our task. But unfortunately, the person who we were mailing to stopped working there and now we don’t hear anything anymore, our mails stay unanswered again. So since we had no time to start over again we had to make this presentation with the information we had. Why Square Enix We chose for square Enix because it is related to our studies in a certain way. Square Enix is a very well-known company which develops games. Some of these games were really a great success, for example Tomb Raider, Final Fantasy, Just Cause,... . Both of us played Tomb raider a lot and we still like it so I guess that searching for more information about this company and game will really keep us busy. History Square Enix was founded in 2003/04/01 by the merging of 2 companies called Square Co. and the Enix corporation. Six years later, they took over Eidos. Before they took over Eidos, Square Enix was only well known for their RPG (Role Playing Games) games and now they are also open for other genres of computer games such as first person shooters,.. . Taking over Eidos was a big investment for Square Enix but it was definitely worth its money. Range of products Square Enix sole purpose is developing games, they do everything themselves. They create the games and produce them as well. The merchandise and advertising for the game is done by another company. Games Square Enix has the ownership of a lot of games, some of them are well known all over the world but some of them never really broke through. We are going to discuss three games that really did break through: Tomb Raider and Final fantasy. But we will focus on Tomb Raider Final Fantasy Final fantasy is the first game they had which was really a great success. It’s already pretty old but they are still making new games about it. So this is a perfect example that it is a good game which attracts a lot of people otherwise they wouldn’t keep spending time and money on that concept. Tomb Raider The first Tomb Raider game was launched in 1996 and featured one of the most well known girls in gaming, namely Lara Croft. The first game was designed and produced by Core Design. It was released on PlayStation, Sega Saturn, PC. After the first year it already made a $14,5 million profit. Lara needed to find the Scion, which was a ancient powerful artiefact. She needs to travel around the world to find several pieces of it to reassemble it. The game was quite revolutionary at tha time, as it’s one of the first games to feature real 3D water. The goal was to go through tombs and caves in order to get to a certain artiefact, whilst fighting off

Page 198: Gip Gilles Knockaert

198

enemies and solving puzzles. The engine used to render the environment was quite simple, as it was made in MS-DOS. Everything was grid-based. This means the environments are made out of perfect rectangles with some added objects. The next 4 games used an updated version of the engine, but the way the engine worked stayed the same. The 6th game was called The Angel of Darkness, and this was going to be the last game made by Core Design. They completely lost the Tomb Raider aspect, as they turned Lara into a criminal running from the police who has no place to run as her house is burned down. The game was riddled with glitches and bugs with a difficult control scheme, which eventually turned into Core Design being fired and Crystal Dynamics being hired. Crystal Dynamics restarted the series and brought it back to its roots. They started off with Tomb Raider Legend which was quite a success, despite it being quite short. The story was based on King Arthur and Excalibur. Next they made Tomb Raider Anniversary, this was a remake of Tomb Raider 1. Then they made Tomb Raider Underworld which continued where Tomb Raider Legend left off. This game was based on the Norse mythology and Mjolnir, which is the Norse equivalent of Excalibur. There were also 2 movies produced as well as a series of comic books. The first movie was called Lara Croft: Tomb Raider, the second was Lara Croft Tomb Raider: The Cradle Of Life. Angelina Jolie was chosen to represent Lara in the movies. Lara was also featured in a variety of adverts, like Lucozade, Seat, VISA, …

Page 199: Gip Gilles Knockaert

199

Organization Chart The following chart is the only one we had access to, this is the chart of the division.

The future This is a quote of Square Enix about their own future.

How will we be able to contribute to this second stage of growth in the game industry? This is expressed in our corporate philosophy statement: To spread happiness across the globe by providing unforgettable experiences.

Starting with games, all the contents we provide are the ingredients for our customers' happiness. The key is a deep understanding of each and every one of our customers. And when it comes down to it, our competitiveness depends on the quality of our contents and service.

So they are planning to create more games that will bring pleasure as well as to listen to their customers to understand what they want. Square Enix Europe Their main office is located in Wimbledon Bridge House in Wimbledon, London Borough of Merton. They do not own seperate departments in the various European countries, everything happens from ther main office. Ending Thanks for listening, I hope you enjoyed our presentation about Square Unix. Sources http://en.wikipedia.org/wiki/Square_Enix_Europe http://kotaku.com/#!5271753/whats-square-enixs-plan-for-future-growth-making-you-happy http://www.theofficialboard.com/org-chart/square-enix http://www.square-enix.com/eu/en/ Contact This is our conversation with Keir, which stopped shortly. From: Keir Edmonds <[email protected]>

PresidentYoichi Wada

Executive DirectorYM

President of a Subsidiary

KHDirectorMakoto Naruke

DirectorYukinobu Chida

Page 200: Gip Gilles Knockaert

200

Date: 2011/3/14 To: [email protected], [email protected] Hi guys, I am very happy to help if I can. What kind of questions will you be asking? Best wishes, Keir. Keir Edmonds | Group Community Manager Square Enix Europe Square Enix Limited, Registered in England No. 01804186 Registered office: Wimbledon Bridge House, 1 Hartfield Road, London SW19 3RU This e-mail is confidential and may be privileged. It may be read, copied and used only by the intended recipient. If you are not the intended recipient: (a) please notify us by telephone (on +44 (0)20 8636 3000), delete the message from your system and ensure that all copies are destroyed (b) you are strictly prohibited from using, printing, copying, distributing or disseminating this e-mail or any information contained in it. No communication sent by e-mail to or from Square Enix Limited shall form the basis of an offer or counter-offer which is capable of being accepted so as to create legally binding relationships. Internet communications are not secure and therefore Square Enix Limited does not accept legal responsibility for the contents of this message. Any views or opinions presented are solely those of the sender and may not necessarily reflect the view of Square Enix Limited, its subsidiaries or associates. -----Original Message----- From: www.tombraiderforums.com [mailto:[email protected]] Sent: 14 March 2011 09:53 To: Keir Edmonds Subject: New Private Message at www.tombraiderforums.com DO NOT REPLY TO THIS EMAIL! *************************** Dear Keir_Eidos, You have received a new private message at www.tombraiderforums.com from badboy70, entitled "School Assignment". To read the original version, respond to, or delete this message, you must log in here:

Page 201: Gip Gilles Knockaert

201

http://www.tombraiderforums.com/private.php This is the message that was sent: *************** Hello, We are two students from Sint-Jozefsinstituut situated in Bruges, Belgium. We are currently in our last year Informatics. For our school assignment we need to contact an SME. We'd like to talk about Eidos/Square Enix, so we were wondering if you would want to help us. We'd ask some questions about the company, so we can talk about half an hour. This is our final assignment so we take this very seriously. We really hope you want to help us out. Yours sincerely, Gilles Knockaert Glenn Ruysschaert PS: You can always contact us on our personal email addresses: Gilles Knockaert: [email protected] Glenn Ruysschaert: [email protected] *************** Again, please do not reply to this email. You must go to the following page to reply to this private message: http://www.tombraiderforums.com/private.php All the best, www.tombraiderforums.com ______________________________________________________________________ This email has been scanned by the MessageLabs ______________________________________________________________________ ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ ---------- From: Glenn Ruysschaert <[email protected]> Date: 2011/3/16 To: Keir Edmonds <[email protected]>, [email protected]

Page 202: Gip Gilles Knockaert

202

Hello, We'd be asking questions about the history of Eidos and the products. We'd also like to know more about the marketing strategies and the future. In our presentation we'd present the games you produce asswell as detailed information about Eidos/Square Enix, like a extensive explanation of the process of making a game. During the explanation we'd like to show artwork, renders,... . But this of course depends on how much information we are allowed to know. The games we'd be focusing on would be Just Cause 2, Tomb Raider and Hitman. Yours sincerely, Gilles Glenn ---------- From: Keir Edmonds <[email protected]> Date: 2011/3/16 To: Glenn Ruysschaert <[email protected]>, [email protected] Hi, I would like to help you. It might be best if you could send the questions through via email so I can research them if appropriate. I’m actually leaving Eidos/Square Enix at the end of this week, so I’d need the questions today if I am to try and answer them. From: Glenn Ruysschaert [mailto:[email protected]] Sent: 16 March 2011 10:44 To: Keir Edmonds; [email protected] Subject: Re: FW: New Private Message at www.tombraiderforums.com ---------- From: Glenn Ruysschaert <[email protected]> Date: 2011/3/21 To: Keir Edmonds <[email protected]>, [email protected] Hey, It has been really busy lately and this is the first time we can contact you. These are the questions: 1) How do you decide what kind of game you will develop? 2) What gets discussed in the very first meeting about a game? 3) How do you choose who works on the game and who doesn't? 4) What kind of people are needed to create a game? (eg: artists, programmers, ...) 5) How do you decide what engine to use?

Page 203: Gip Gilles Knockaert

203

6) What are the steps from beginning to end to make a game (this doesn't have to be too detailed)? 7) Do you hire a company to promote your games, or do you hire employees to do that? This is all we need at the moment. If possible, could you send us some concept art, notes,... that were used during the development of a game? Since Tomb Raider is one of the best known games, we'd like to focus our presentation on that game. Yours sincerely, Gilles Glenn ---------- From: Glenn Ruysschaert <[email protected]> Date: 2011/3/29 To: Gilles Knockaert [email protected]

Page 204: Gip Gilles Knockaert

204

Slot

Dankzij de GIP-opdrachten heb ik geleerd dat het belangrijk is om altijd stipt in orde te zijn met alles en dat je nooit op een ander moet rekenen. Dit is niet slecht bedoeld maar hiermee wil ik maar duidelijk maken dat wanneer je in groep werkt, je ervoor zorgt dat wanneer je iets moet indienen je niet van anderen afhankelijk bent. In het algemeen vond ik deze GIP wel leerrijk omdat je doorheen het jaar door je werk ziet evolueren naarmate het jaar vordert. Je GIP is net zo goed als jezelf wilt. Als je alle taken stipt indient, goed en verzorgd maakt, dan zal dit zeker en vast positief beloond worden met goede resultaten. Het grootste probleem rond de GIP waren volgens mij toch wel de data waarop de verschillende taken moesten worden ingediend worden. Deze werden constant gewijzigd,… waardoor het er soms nogal hectisch aan toe ging. Mijn advies voor leerlingen die volgend jaar een GIP moeten maken is zeker en vast begin er op tijd aan zodat je niet op het laatste moment nog taken hoeft te maken. Dit is volgens mij het moeilijkste aan heel de GIP. Voor de rest was deze GIP wel een zeer leerrijke ervaring.