GIP Karel Stevens

Page 1

Zilverstraat 26 8000 Brugge

2009 – 2010

Informaticabeheer Karel Stevens

6IB

nr.7



Zilverstraat 26 8000 Brugge

2009 – 2010

Informaticabeheer Karel Stevens

6IB

nr.7


GIP 2009 – 2010 1


De geïntegreerde proef Voorwoord en dankwoord Ik ben Karel Stevens en als laatstejaarsleerling van het Sint-JozefsInstituut te Brugge, is het schrijven van een GIP nodig om het diploma secundair onderwijs te behalen. De geïntegreerde proef is een verplicht onderdeel van het leerplan dat elementen van vakken zoals Nederlands, Engels, informatica (software ontwikkeling en BPR), economie en een stageperiode van twee weken bevat. Het doel van de GIP is de leerlingen te helpen overstappen van theorie naar praktijk en van het middelbaar naar het hoger onderwijs. Hierdoor leert men zelfstandig werken en plannen waardoor de integratie in een bedrijf later veel makkelijker zal verlopen. Ik wil graag de heer Thiel bedanken voor de steun en algemene hulp bij het maken van de GIP. Verder wil ik de heer Steven Clarissimo als stagementor van mijn leerrijke stage danken. De vakleerkrachten die ik speciaal wil bedanken zijn mevrouw De Meulder voor de vakken Nederlands en Engels, de heer Devriendt voor het vak BPR en mevrouw Devoldere voor het vak Economie.

GIP 2009 – 2010 2


GIP 2009 – 2010 3


1

BEDRIJFSECONOMISCHE ASPECTEN ................................................................................................... 6

1.1 1.1.1 1.1.2 1.2 1.2.1 1.2.2

STARTEN VAN EEN EIGEN ZAAK EN VENNOOTSCHAPSVORMEN............................................................................. 6 Juridische vorm ................................................................................................................................... 6 Starterformaliteiten en vergunningen ................................................................................................. 6 STEUNMAATREGELEN, VERZEKERINGEN EN E-BUSINESS ..................................................................................... 9 Steunmaatregelen .............................................................................................................................. 9 Verzekeringen ................................................................................................................................... 12

2

STAGE............................................................................................................................................... 15

2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.3 2.4

VOORSTELLING STAGEBEDRIJF: ECG PC - BLANKENBERGE .............................................................................. 15 Bondige voorstelling met beknopte historiek .................................................................................... 15 Identificatiegegevens........................................................................................................................ 15 bedrijfsactiviteiten: producten en/of diensten ................................................................................... 16 Organogram ..................................................................................................................................... 16 Werking van het stagebedrijf ............................................................................................................ 17 INTERVIEW........................................................................................................................................... 18 SOLLICITATIEBRIEF ................................................................................................................................. 19 STAGEVERSLAGEN.................................................................................................................................. 20

3

WEBSITES ......................................................................................................................................... 31

3.1

HET BOUWEN VAN EEN STATISCHE WEBSITE ................................................................................................. 31

4

INFORMATICAPROJECT .................................................................................................................... 37

4.1 4.2 4.2.1 4.2.2 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.3.10 4.3.11 4.3.12 4.3.13 4.3.14 4.3.15 4.3.16 4.3.17 4.3.18

PROBLEEMSTELLING ............................................................................................................................... 37 DATABASE ONTWIKKELING....................................................................................................................... 39 Relatie-entiteitschema ...................................................................................................................... 39 Tabelvelden met veldtypes................................................................................................................ 40 PROJECTONTWIKKELING .......................................................................................................................... 41 SplashScreen1.vb .............................................................................................................................. 41 frmBasis.vb ....................................................................................................................................... 43 frmInloggen.vb ................................................................................................................................. 50 frmInscannen.vb ............................................................................................................................... 54 frmScannenVoor8Uur.vb .................................................................................................................. 63 frmVoor8Uur.vb................................................................................................................................ 68 frmBlijvenOverMiddag.vb ................................................................................................................. 74 frmStrafstudies.vb ............................................................................................................................ 80 frmAfdrukken.vb ............................................................................................................................... 88 frmAfdrukkenDag.vb ........................................................................................................................ 91 frmAfdrukkenVoormiddag.vb ........................................................................................................... 97 frmAfdrukkenNamiddag.vb ............................................................................................................ 103 frmAfdrukkenDatum.vb .................................................................................................................. 109 frmAfdrukkenTussen.vb .................................................................................................................. 115 frmAfdrukkenLeerlingen.vb............................................................................................................. 122 frmAfdrukkenSelecteer.vb............................................................................................................... 131 frmLeerlingWijzigen.vb ................................................................................................................... 146 frmGebruikersWijzigen.vb .............................................................................................................. 158

5

RICHTINGSPECIFIEK ENGELS ........................................................................................................... 167

5.1 5.1.1

SOFTWARE/HARDWARE SUPPLIERS IN THE UK ............................................................................................ 167 List of 10 software/hardware suppliers ........................................................................................... 167

GIP 2009 – 2010 4


5.1.2 5.1.3 5.2 5.3 5.4 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.5

Letter of enquiry ............................................................................................................................. 171 Compare 2 websites........................................................................................................................ 173 ENGLISH WEBSITE ................................................................................................................................ 174 BESLUIT ............................................................................................................................................ 182 HANDLEIDING TELAATKOMERS ............................................................................................................... 183 Inleiding.......................................................................................................................................... 184 Administratie .................................................................................................................................. 185 Lijst aanmaken ............................................................................................................................... 186 Afdrukken ....................................................................................................................................... 189 Leerling-informatie ......................................................................................................................... 190 Gebruikers ...................................................................................................................................... 190 CURRICULUM VITTAE ............................................................................................................................ 191

GIP 2009 – 2010 5


1 Bedrijfseconomische aspecten Dit hoofdstuk beschrijft de rechten en plichten bij het opstarten van een zaak, zoals startvoorwaarden, vestigingsvereisten, verzekeringen, … .

1.1 1.1.1

Starten van een eigen zaak en vennootschapsvormen Juridische vorm

Het bedrijf waar ik mijn stage zal volgen is ECG in Blankenberge. ECG heeft als juridische vorm een eenmanszaak. Hier volgt een schema van de belangrijkste kenmerken van deze juridische vorm.

Eenmanszaak Oprichtingsakte Minimum aantal personen Aansprakelijkheid Minimum in te brengen kapitaal Te volstorten kapitaal

Geen 1 Onbeperkt Geen minimumkapitaal -

De inbreng van kapitaal Verificatie bedrijfsrevisor bij inbreng goederen? Aandelen

Geen aandelen, u bent de enige eigenaar van het bedrijf -

Mogelijkheden van overdracht aandelen Bestuur Boekhoudkundige verplichtingen

Zaakvoerder Vereenvoudigde boekhouding wanneer de omzet maximaal 495.787,04 euro bedraagt (exclusief BTW)

Fiscaliteit Financieel plan verplicht

Personenbelasting Neen

1.1.2 A)

Starterformaliteiten en vergunningen Startvoorwaarden

Starten met een eigen zaak is een boeiende uitdaging. Maar om te slagen moet je vooraf over de nodige informatie beschikken. In principe mag in België iedereen een zaak beginnen. Als je een eenmanszaak wil opstarten, legt de wet wel bepaalde voorwaarden en beperkingen op: GIP 2009 – 2010 6


A1)

Je moet meerderjarig zijn

U moet minimum 18 jaar zijn. A2)

Je moet nog over al je burgerrechten beschikken.

De belangrijkste burgerrechten zijn:

Recht op privacy Recht op demonstratie Recht op een eerlijk proces A3)

Nationaliteit

U moet ofwel:

Een Europese nationaliteit hebben Een verblijfsvergunning en Een beroepskaart A4)

Je moet handelsbekwaam zijn

Dit kan u bewijzen door het behalen van een attest bedrijfsbeheer, door het volgen van een hogere studie. Relevante beroepservaring kan ook aanleiding geven tot het behalen van dit attest. In alle andere gevallen moet men een specifiek daartoe ingericht vak volgen. B) B1)

Vestigingsvereisten Bewijs van kennis van bedrijfsbeheer

Als bewijs van kennis gelden onder andere een getuigschrift bedrijfsbeheer, ieder diploma van het hoger onderwijs, bepaalde internationale getuigschriften … . Naast jezelf kunnen ook je echtgeno(o)t(e), samenwonende partner of diegene die het dagelijks bestuur uitoefent in de onderneming dit bewijs leveren. Er bestaan ook een aantal vrijstellingen voor dit getuigschrift, bijvoorbeeld voor zijn partner bij het overlijden van de ondernemer en overname (maar dit is slechts tijdelijk). B2)

Bewijs van beroepskennis: hoe bewijzen?

Men kan bewijs van kennis behalen aan de hand van diploma’s of getuigschriften die men voor dat beroep heeft behaald of door het leveren van bewijs aan de hand van praktijkervaring. Deze ervaring moet uiteraard met een officieel document aangetoond worden. Dit kan GIP 2009 – 2010 7


bijvoorbeeld een getuigschrift zijn van de belastingscontroleur, een attest van de sociale zekerheid, een loonfiche of een EG-verklaring zijn. B3)

Bewijs van beroepskennis: wie bewijst het?

Voor een eenmanszaak:

het ondernemingshoofd de echtgeno(o)t(e) of de sinds drie jaar samenwonende partner een helper die deel uitmaakt van het gezin van de zelfstandige in de 1ste, 2de of 3de graad een loontrekkende met een arbeidsovereenkomst voor onbepaalde duur C)

Formaliteiten

Voldoe je aan de voorwaarden om je te mogen inschrijven als zelfstandige, dan kan je beginnen met het vervullen van de voornaamste formaliteiten, zoals: C1)

Ondernemingsvaardigheid bewijzen

Dit doe je met behulp van een attest van voldoende kennis van bedrijfsbeheer, aangevuld met diploma’s en beroepskennis. C2)

Zichtrekening openen

Als zelfstandige handelaar of vakman moet je een zichtrekening openen bij een bank die gevestigd is in België, een spaarkas of bij de Post. Deze rekening moet op jouw naam staan. Dit rekeningnummer en de naam van de financiële instelling moet vermeld worden op al je facturen, brieven, bestelbons, … (alle inkomende en uitgaande facturen) anders kan je slechte betalers geen nalatigheidintresten aanrekenen. Voorbeeld:

779 – 5902896 – 85

Bank nr. C3)

Cliënt nr.

Controlecijfer

Inschrijving bij KBO

Bij het inschrijven bij de Kruispuntbank Ondernemingen krijg je een(bij wet verplicht) uniek ondernemingsnummer. Dit nummer zal moeten vermeld worden op alle facturen en bij communicatie met de overheid. Een ondernemingsnummer wordt samengesteld door: Landcode + 0 + BTW-nummer / ondernemingsnummer

GIP 2009 – 2010 8


C4)

Inschrijven bij de BTW-administratie

Deze inschrijving is van belang voor de activatie van je ondernemingsnummer / BTW – nummer. C5)

Aansluiten bij een sociaal verzekeringsfonds

Als zelfstandige in hoofd- en bijberoep, moet je je ook aansluiten bij een sociaal verzekeringsfonds. Dit fonds int de sociale bijdragen die je moet betalen en zorgt ervoor dat de uitkeringen correct gebeuren. De aansluiting moet binnen de 90 dagen na het starten van je zaak gebeuren. C6)

Aansluiten bij een ziekenfonds

Om in orde te zijn met je ziekteverzekering ben je verplicht je aan te sluiten bij een ziekenfonds. Als je al aangesloten bent, moet je gewoon je statuutwijziging melden. C7)

Vestigingsvereisten en formaliteiten bij ECG

Voor éénmanszaken zijn er 7 formaliteiten die zeker moeten gevolgd worden:

Een bezoek brengen aan de notaris Openen van een zichtrekening Een bezoek aan een erkend ondernemingsloket Inschrijving bij de Kruispuntbank van Ondernemingen (KBO) De inschrijving voor BTW van uw ondernemingsnummer Aansluiting bij Sociaal Verzekeringsfonds Aansluiting bij Sociaal Secretariaat

1.2 1.2.1 A) A1)

Steunmaatregelen, verzekeringen en e-business Steunmaatregelen Federale steunmaatregelen: De startlening

De Startlening biedt werklozen die werk zoeken de mogelijkheid om een zelfstandige activiteit op te starten met de steun van een voordelige lening. De lening bedraagt maximaal 30.000 EUR en de aanvrager moet zelf 25 % van het gevraagde bedrag inbrengen (via eigen middelen of bankkrediet). In het kader van de Startlening kunt u zich gratis laten begeleiden door een begeleidingsinstelling. Door die begeleiding krijgt u een korting van 1 % op de rente

GIP 2009 – 2010 9


en betaalt u dus maar 3 % rente. Voor de aanvraag van een startlening en de begeleiding kan u steeds terecht bij UNIZO Starterservice. A2)

Rosetta-plan

Als u jonger bent dan 30, werkloos en nog nooit een zelfstandige activiteit hebt uitgevoerd, dan kan je een beroep dan op het Rosetta-plan. Dit houdt in dat u gedurende 3 tot 6 maand gratis wordt bijgestaan en geadviseerd door een steunpunt voor starters zoals UNIZO starterservice. A3)

Behoud van recht op werkloosheidsuitkering

Het zijn maatregelen met betrekking tot het behoud van werkloosheidsuitkeringen in geval dat een zelfstandige activiteit slecht afloopt. A4)

Investeringsaftrek bij investeringen

Door de investeringsaftrek wordt de belastbare winst vrijgesteld tot een bepaald gedeelte van de door de onderneming aan een nieuwe investering bestede som. A5)

Solidaire lening

Deze lening dient om de mensen die over onvoldoende middelen beschikken voor het startkapitaal toch een kans te geven. A6)

Lening businessangel+

Dit is een aanvulling op de investering van de zogenaamde businessangels. Deze bedrijfsleiders en ondernemers investeren in jonge ondernemingen in ruil voor een potentieel interessante financiële opbrengst. Businessangels bieden u hun expertise en ervaring. B)

Provinciale steunmaatregelen: Vlaanderen

Sommige provincies kennen investering- of vestigingspremies toe aan KMO's. West-Vlaanderen kent onder bepaalde voorwaarden een provinciale jongerenpremie toe bij investeringen van ondernemers die jonger zijn dan 35 jaar. De investeringen kunnen zowel met een lening als met eigen middelen gefinancierd worden. Het minimum krediet is bepaald op 7436.80 €, de minimale investering met eigen middelen op 12394.67 €. In dit laatste geval is de premie gelijk aan 743.68 €. Voor een investering gefinancierd met een lening schommelt de premie tussen 15.000 en 867.63 €. De aanvraag wordt door de kredietinstelling ingediend bij de kredietverlening, of door de ondernemer binnen de drie maanden na de volledige investering ingeval van financiering met eigen middelen.

GIP 2009 – 2010 10


B1)

Waarborgregeling

Voor een gedeelte van het krediet dat u nodig heeft, voorziet de Vlaamse overheid een waarborgregeling. B2)

Ondernemerschapportefeuille

Met steun van de Vlaamse overheid kunt u goedkoper opleiding, advies, kennis en leiderschap inkopen. U betaalt slechts 2/3 van de dienstverlening en de overheid 1/3 via ondernemerschapportefeuille. B3)

Groeipremie

Wanneer een onderneming investeert, wordt er aan dat bedrijf een groeipremie uitgereikt. B4)

Private Equity

Een beursgenoteerd bedrijf kan extra aandelen uitgeven op de beurs als het geld nodig heeft, een niet-beursgenoteerd bedrijf kan dat niet. B5)

Financiële steun

Wanneer eigen geldelijke vermogens niet volstaan, kan men genieten van financiële steun bij de Participatiemaatschappij Vlaanderen. C) C1)

Vlaamse steunmaatregelen: Opleidingscheques

Voor werkgevers: Voorziet in een tussenkomst van de Vlaamse overheid voor opleidingen die u zelf of uw personeel volgen. Een onderneming kan per kalenderjaar maximaal 200 cheques kopen. De cheque heeft een waarde van 30 EUR, waarvan de helft door het Vlaams Gewest wordt betaald, de andere helft door de onderneming.

Voor werknemers: Voor elke opleiding die u bij een erkend opleidingsverstrekker volgt, kan u rekenen op een tussenkomst van de Vlaamse Overheid van 50% in de kosten. De opleidingscheques hebben een waarde van 5 EUR, 10 EUR en 25 EUR. U kunt maximum voor 250 EUR per jaar aan cheques bestellen. U betaalt slechts de helft van de waarde van de cheque. Aanvraag via VDAB of bij de lokale werkwinkel.

GIP 2009 – 2010 11


C2)

Adviescheques voor extern bedrijfsadvies

Wanneer u een beroep doet op een erkend extern adviseur voor bedrijfsadvies, voorziet de Vlaamse overheid in het kader van de Adviescheques onder bepaalde voorwaarden in een tussenkomst van 50 tot 75 % (voor startende kleine ondernemingen) in de advieskosten. De cheques hebben een waarde van 30 EUR, waarvan de helft door de Vlaamse overheid wordt betaald, de andere helft door de onderneming. Op jaarbasis kan u maximum 820 adviescheques aankopen. C3)

Groeipremie

Twee keer per jaar wordt er door de Vlaamse regering een "wedstrijd" uitgeschreven en kan u een dossier indienen. Uw dossier wordt beoordeeld op de levensvatbaarheid van uw onderneming en de mate waarin het beantwoordt aan de criteria die de Vlaamse regering belangrijk vindt. Starters zijn nu een beleidsprioriteit en hebben dus een stapje voor. Om deze groeipremie aan te vragen moet u een investeringsdossier indienen via internet. Voor een KMO jonger dan 5 jaar bedraagt het minimuminvesteringsbedrag 12.500 EUR (tot een maximum van 8.000.000 EUR). D) D1)

Gemeentelijke steunmaatregelen Steunmaatregelen voor bedrijven in Blankenberge

In Blankenberge kan u genieten van een eenmalige verhoogde investeringsaftrek van 13,5% en van 450€ aan groene stroomcertificaten over een periode van 20 jaar per geproduceerde MWh. In Blankenberge wordt de geproduceerde stroom rechtstreeks vergoed ten bedrage van de geldende dagtarief volgens het principe van de terugdraaiende kWh-teller. D2)

Steunmaatregelen bij ECG

Voor ECG is het niet mogelijk om van deze steunmaatregelen te genieten, als eenmanszaak is het namelijk niet mogelijk om vb. een groeipremie te krijgen.

1.2.2

Verzekeringen

Een zelfstandige loopt heel wat risico’s en het is dan ook aangewezen om de nodige verzekeringen af te sluiten. Hieronder worden er verschillende belangrijke verzekeringen besproken. A1)

Arbeidsongeschiktheidsverzekering

Wanneer een werknemer ziek wordt, of deze op een andere manier zijn werk niet meer kan uitvoeren, wordt hij toch nog betaald dankzij de verzekering. Voor zelfstandigen is deze voorziening er niet, deze zullen het risico op arbeidsongeschiktheid zelf met behulp van een GIP 2009 – 2010 12


verzekering moeten afdekken. De arbeidsongeschiktheidsverzekering is een complexe verzekering, waarin veel opties mogelijk zijn. Deze zijn per persoon verschillend. A2)

Arbeidsongevallenverzekering

Elke werkgever is verplicht om dergelijke verzekering af te sluiten. Hierdoor worden uw werknemers verzekerd voor ongevallen op het werk en op weg naar en van het werk. Wanneer deze niet afgesloten is worden de kosten op de werkgever geschoven en krijgt de werkgever een boete en kan hij veroordeeld worden. A3)

Levensverzekering en Lijfrenteverzekering

Als ondernemer wordt er geen premie voor je pensioen afgedragen door de werkgever. Om toch tijdig te kunnen stoppen met je bedrijf en nog een aardig pensioen te hebben, kun je een levensverzekering afsluiten. Net als bij een pensioen leg je geld in tijdens de jaren dat je werkt en op een gegeven moment wordt de verzekering in delen uitgekeerd. Ook zorgt deze verzekering ervoor dat je partner wanneer je overlijdt niet in de financiële problemen komt. Stel je hebt een goed lopend bedrijf, en je hebt een goede hypotheek afgesloten samen met je partner. Wanneer je komt te overlijden moet je partner alleen de hypotheek aflossen, hier is dan waarschijnlijk niet genoeg geld voor. De levensverzekering zorgt ervoor dat de kosten in deze situatie worden gedekt. A4)

Aansprakelijkheidsverzekering

Als eigenaar van een eenmanszaak ben je volledig verantwoordelijk, dit betekent ook verantwoordelijk met je privévermogen. Tegen wanbeleid kun je je niet verzekeren, maar wanneer je in de problemen raakt door een risico dat niet te overzien was (je rijdt je secretaresse aan die een kar met spullen vervoerde en ze breekt haar voet) kan dat wel. De Aansprakelijkheidsverzekering dekt dan de kosten. A5)

burgerlijke aansprakelijkheid auto

Deze verzekering is wettelijk verplicht. Bij een ongeval wordt de schade aan een derde partij gedekt. De schade aan uw eigen voertuig moet u zelf betalen. A6)

burgerlijke aansprakelijkheid in geval van brand of ontploffing

Deze verzekering dekt de lichamelijke en materiële schade die aan derden veroorzaakt wordt door een brand of ontploffing in de verzekerde ruimtes. Voor ruimtes die voor het publiek toegankelijk zijn, is een dergelijke verzekering verplicht (vb.: restaurants, cafés, winkelgalerijen, …).

GIP 2009 – 2010 13


A7)

Rechtsbijstandverzekering

De rechtsbijstandverzekering dekt de advocaatkosten, deurwaarderskosten en proceskosten wanneer een juridisch probleem zich voordoet. Zaken waar je als starter mee te maken krijgt (problemen met leveranciers) zijn vaak niet gedekt. Problemen met personeel zijn in het algemeen wel gedekt. A8)

Gewaarborgd inkomen

Wie door een ongeval een tijdje werkonbekwaam is. Het inkomensverlies wordt hier gecompenseerd door een uitkering. Het waarborgt dus een compensatie van je inkomstenverlies door de storting van een rente. A9)

Hospitalisatieverzekering

De hospitalisatieverzekering is een verzekering welke de kosten terugbetaald bij eventuele ziekenhuisopname. De hospitalisatieverzekering dekt ook de kosten voor en na de behandeling. A10)

Groepsverzekering

Een groepsverzekering is een verzekeringspolis die de werkgever afsluit voor zijn personeel. Via premiebetaling wordt een kapitaal opgebouwd dat de werknemer toebehoort. De groepsverzekering herbergt verschillende waarborgen, voorbeeld pensioensparen. = > Hiermee kan de werknemer zijn wettelijke pensioen aanvullen. A11)

Business ECG

ECG is een informatica bedrijf dat zich specialiseert in basisscholen. Er is geen mogelijkheid om online aankopen te doen. Wel om bestellingen te plaatsen via E-mail of telefoon.

GIP 2009 – 2010 14


2 Stage 2.1 2.1.1

Voorstelling Stagebedrijf: ECG PC - Blankenberge Bondige voorstelling met beknopte historiek

Ik heb mijn stage gevolgd in ECG PC – Blankenberge. Dit bedrijf koopt en verkoopt computer onderdelen, computers en toebehoren met de nadruk op service. Dit bedrijf werd opgericht in 1997 met als bedoeling eenvoudige IT -infrastructuren te leveren aan basisonderwijsinstellingen. In 2006 openden ze een nieuw bedrijfsgebouw in Blankenberge, voorzien van een montageafdeling, burelen en een opleidingscentrum, om mensen te leren omgaan met de producten die ze gekocht hebben. Vanaf dit jaar werd de merknaam CL@RIS gelanceerd met een volledig gamma gericht op onderwijs. Het idee achter het bedrijf kwam van de pedagogische achtergrond van de oprichters (Steven Clarissimo en Pieter Heytens), die beiden al enkele jaren voor de klas stonden, voornamelijk als ICT – coördinators. In deze functie groeide het idee voor het aanbieden van diensten naar scholen.

2.1.2

Identificatiegegevens ECG PC

Cl@ris Hanzestraat 26 8370 Blankenberge

Steven Clarissimo 0486/11.55.01 steven@claris.be

050 /42 95 98

GIP 2009 – 2010 15

Pieter Heytens 0476/75.19.35 pieter@claris.be


2.1.3

bedrijfsactiviteiten: producten en/of diensten

Momenteel hebben ze volgende producten in het gamma:

Interactieve schoolborden (ook gekend als Clarisborden) Werkstations (energiezuinig en zeer eenvoudig te beheren en goedkoop) Ncomputing Mustation - softxpand

Eenvoudige software voor het beheren van de computerklas Reborn kaarten Uiterst stevige koptelefoons

Om in een beperkte tijdspanne kennis te maken met de producten en diensten van Claris werd er een volledig ingericht klaslokaal gemaakt in een vrachtwagen, waarmee ze graag van school tot school rijden.

2.1.4

Organogram

Nick Rondolez ICT- Coördinator

Steven Clarissimo Beheerder

Pieter Heytens ICT- Coördinator

Karel Stevens

Remco Vanhooren

Anthony

Stagiair

Stagiair

Stagiair

GIP 2009 – 2010 16


2.1.5 A1)

Werking van het stagebedrijf Gebruikte besturingssystemen, softwarepakketten of ontwikkelingomgevingen

besturingssystemen Windows XP Windows 7 (transformation pack)

Softwarepakketten VMWare Microsoft Office 2007 Software in verband met Clarisborden A2)

Aanwezigheid op het internet http://www.ecgpc.be/index.html http://scholen.ecgpc.be/

A3)

bespreking beleid en datacommunicatie

Wij hebben vooral gewerkt als ICT – coördinators in een school. Uitwisseling van data gebeurde hier over het netwerk via UTP – kabels. In de school bevonden zich ook faxen, modems, switches, printers, kopieermachines … . Een databank was er niet, of we zijn er toch geen tegengekomen. Alle gegevens en programma’s bevonden zich op de servers, waarvan een virtuele machine werd doorgestuurd naar alle terminals. A4)

werkwijze voor herstellingen

Wanneer er ergens een probleem was, gingen we kijken of we het niet ter plaatse konden oplossen. Indien we teveel de les zouden storen, verplaatsten we de computers met het probleem, naar het ICT-lokaal, waar deze werd hersteld en daarna teruggebracht.

GIP 2009 – 2010 17


2.2

Interview

Op 3 februari 2010 mocht ik een interview afnemen van Steven Clarissimo, mijn stagementor van het bedrijf ECG – PC. Hij vertelde me dat hij eigenlijk onderwijzer wou worden en die opleiding heeft hij ook gevolgd, maar je kunt er veel kanten mee uit. Hij doet graag alles in de informatica afdeling, zeker als er een uitdaging bij komt kijken en zolang het geen repetitief werk is. Hij heeft ECG PC opgericht, om dat hij al intensief bezig was met computers en met IT infrastructuren op te richten in de scholengemeenschap en omdat hij werkte als onderwijzer, was het dus een logische volgende stap. Door ECG op te richten was hij niet meer gebonden aan die ene scholengemeenschap. De naam ECG komt van Eenvoudig Computer Gebruik, een geschikte naam omdat de infrastructuren die hij aanlegt in scholen goedkoop en gemakkelijk te onderhouden zijn. Hij heeft gekozen voor een eenmansbedrijf omdat dat het eenvoudigste was en geschikt voor het werk dat wilde doen. ECG bestaat ondertussen al 12jaar.

GIP 2009 – 2010 18


2.3

Sollicitatiebrief 2009-10-13

Karel Stevens Diksmuidse Heerweg 284 8200 Sint-Andries 050 81 39 05

ECG PC de heer Steven Clarissimo Hanzestraat 26 8370 Blankenberge

Geachte Mijnheer Clarissimo De stage in uw bedrijf wekte mijn interesse voor een job in verband met hardware op. Ik studeer, zoals u weet, momenteel Informaticabeheer in het Sint-Jozefsinstituut te Brugge en hierdoor ben ik ervan overtuigd dat ik voor ECG PC een goede aanwinst ben. Ik hou mij in mijn vrije tijd graag bezig met computer hardware en heb 2 weken stage gevolgd in uw bedrijf en heb zo al heel wat ervaring. Indien u nog verdere vragen hebt, kunt altijd bellen naar mijn persoonlijk nummer (050 81 39 05) of mij mailen op karel_stevens@hotmail.com . Ik hoop dat u gunstig reageert. U kunt van mij alvast een positieve en enthousiaste houding verwachten.

Hoogachtend

Karel Stevens Bijlage: Curriculum Vitae

GIP 2009 – 2010 19


2.4

Stageverslagen

GIP 2009 – 2010 20


GIP 2009 – 2010 21


GIP 2009 – 2010 22


GIP 2009 – 2010 23


GIP 2009 – 2010 24


GIP 2009 – 2010 25


GIP 2009 – 2010 26


GIP 2009 – 2010 27


GIP 2009 – 2010 28


GIP 2009 – 2010 29


GIP 2009 – 2010 30


3 Websites 3.1 A1)

Het bouwen van een statische website Index.html met home.html

GIP 2009 – 2010 31


Gebruikte programma’s: DreamWeaver CS4 PhotoShop CS4 Internet Explorer

GIP 2009 – 2010 32


A2)

Producten.html

Gebruikte programma’s: DreamWeaver CS4 Internet Explorer

GIP 2009 – 2010 33


A3)

Geschiedenis.html

Gebruikte programma’s: DreamWeaver CS4 Internet Explorer

GIP 2009 – 2010 34


A4)

Contact.html

Gebruikte programma’s: DreamWeaver CS4 Internet Explorer

GIP 2009 – 2010 35


A5)

Forum

Gebruikte programma’s: Internet Explorer:

GIP 2009 – 2010 36


4 Informaticaproject 4.1 A1)

Probleemstelling Project Telaatkomers

Het project moet het werk van het onthaal vereenvoudigen. De registratie van leerlingen die te laat zijn, moet op een efficiëntere manier worden ingevoerd en verwerkt. A2)

Opstarten van programma

1. Gebruikersnaam wordt gevraagd voor aanmelden door administrator of gebruiker (Gebruiker van het onthaal) (bij verkeerde invoer, waarschuwing weergeven) 2. Bij scannen van barcode: worden alle gegevens getoond van barcode Men kan ook de reden opgeven 3. Knopjes annuleren, volgende kaart en verzoek om strafstudiekaart tonen A3)

Afdrukken van gegevens mogelijk maken:

Een lijst met Telaatkomers: Alle informatie van de persoon

Een lijst met personen die een sanctie hebben (elke dag om 8u op school) Namen van de personen Datums van de volgende week

Andere zoekopdrachten (d.m.v. Datum, Naam persoon,…) Alle informatie van de persoon

Alle documenten moeten de mogelijkheid hebben om geëxporteerd te worden. B)

Vraag en antwoord

Wat moet er gebeuren bij het scannen van de barcode? Na het scannen van de barcode worden alle gegevens getoond van de leerling. Daarna kan men aanduiden of er een reden is. Indien er een reden is wordt een extra tekstvak voorzien. Moet er een reden worden ingevuld na het scannen? Ja, op aanvraag van het onthaal zal dit mogelijk zijn onmiddellijk na het scannen van de leerlingenkaart. GIP 2009 – 2010 37


Moet er een melding komen wanneer leerlingen ’s morgens of ’s middags 3 maal te laat komen? Deze melding zal weergegeven worden na het scannen van de leerlingenkaart. Daarna kan men deze lijst van alle leerlingen afprinten en zo de sancties makkelijk uitdelen aan de leerlingen. Moet de woonplaats zichtbaar zijn bij het afprinten van de lijst? Op aanvraag van het onthaal zal dit aanwezig zijn. Zo kan men makkelijk zien of er een overeenkomst is. Wie zijn de gebruikers van het programma? Het onthaal van de school. De basiskennis van programma’s zoals office is aanwezig. Zijn er verschillende rechten in het programma? Zeker, mensen die geen volledige rechten hebben kunnen geen leerlingen verwijderen of toevoegen. Een gebruiker (met beperkte rechten) moet enkel het noodzakelijke kunnen doen, namelijk leerlingen inlezen. Kunnen er relaties gelegd worden in de tabellen? Relaties kunnen gelegd worden. De barcode van de leerling kan zo verbonden worden met de tabel “Leerlingen”(die alle leerlingen van de school bezit) en met de tabel “TeLaat” (leerlingen die enkel te laat kwamen op school). Zo kunnen we de gegevens snel oproepen wanneer nodig. Moet er een nieuw veld worden toegevoegd wanneer een leerling om 8 uur op school moet zijn? Dit is niet nodig, de waarschuwing komt na het scannen van de leerlingenkaart. De lijst kan ook worden afgeprint en daarna manueel worden ingevuld (wanneer deze sanctie wordt nagevolgd of niet). Moeten er nieuwe velden worden toegevoegd in de database? Op aanvraag van het onthaal zal er een nieuw veld worden toegevoegd. Namelijk het veld “Vervoermiddel”. Zo kan het personeel van het onthaal onmiddellijk zien of er overeenkomsten zijn van te late leerlingen (Doormiddel van vervoermiddel, bv. Trein van Beernem)

GIP 2009 – 2010 38


4.2 4.2.1

Database ontwikkeling Relatie-entiteitschema

GIP 2009 – 2010 39


4.2.2

Tabelvelden met veldtypes

GIP 2009 – 2010 40


4.3 4.3.1

Projectontwikkeling SplashScreen1.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier dat getoond wordt terwijl het hoofdformulier laadt. Gebruiker kan de status volgen op de progressbar.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

SplashScreen1

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Bedoeling: Hier is er geen interactie met de gebruiker. De gebruiker dient enkel te wachten tot het programma klaar is met laden. Procedures Object

Gebeurtenis

Doel

SplashScreen1

Load

Timer starten en controleren op eindtijd van timer. Daarna frmBasis openen.

GIP 2009 – 2010 41


Implementatie Public NotInheritable Class SplashScreen1 Dim intSluiten As Integer Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Set up the dialog text at runtime according to the application's assembly information. 'TODO: Customize the application's assembly information in the "Application" pane of the project ' properties dialog (under the "Project" menu). 'Application title If My.Application.Info.Title <> "" Then ApplicationTitle.Text = " Te laat komers " 'My.Application.Info.Title Else 'If the application title is missing, use the application name, without the extension ApplicationTitle.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName ) End If Me.CenterToScreen() 'de parameters van timer en progressbar goedzetten en starten tmrLaden.Interval = 10 pgrLaden.Value = 0 pgrLaden.Maximum = 300 tmrLaden.Enabled = True End Sub Private Sub tmrLaden_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrLaden.Tick ' de progressbar en de tijd +1 intSluiten += 1 pgrLaden.Value += 1 ' als hij bij 300 is stoppen = 3 seconden If intSluiten = 300 Then tmrLaden.Enabled = False Me.Close() frmBasis.Show() End If End Sub End Class

GIP 2009 – 2010 42


4.3.2

frmBasis.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Het formulier waar alle andere formulieren in worden geladen bij het oproepen ervan.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmBasis

Text

Telaatkomers

WindowState

Maximized

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

IsMdiContainer

True

MenuStrip

Items

Start Inloggen Uitloggen Afsluiten

Administratie Scannen

GIP 2009 – 2010 43


Scannen voor 8 uur Lijst aanmaken  Voor ochtend  Voor middag  Strafstudies

Afdrukken Leerlingen informatie Gebruikers Statusstrip

Text

Menu

Text

Welkom

tmrOpstarten

Bedoeling: Dit formulier is de basis van het project, het voegt alle formulieren samen in 1 formulier. Procedures Object

Gebeurtenis

Doel

InloggenToolStripMenuItem

Click

Gebruiker moet hier kunnen aanmelden

UitloggenToolStripMenuItem

Click

De ingelogde gebruiker afmelden

AfsluitenToolStripMenuItem

Click

Het programma volledig afsluiten

mnuStart

Click

Pagina openen om leerlingen te scannen

StartScannenVoor8UurToolStripMenuItem Click

Pagina openen om leerlingen voor 8 uur te scannen

VoorOchtendToolStripMenuItem

Click

Pagina openen om lijst aan te maken

VoorMiddagToolStripMenuItem

Click

Pagina openen om lijst aan te maken

StrafstudiesToolStripMenuItem1

Click

Pagina openen om lijst aan te maken

AfdrukkenToolStripMenuItem

Click

Pagina openen om lijsten af te printen

LeerlingenInformatieToolStripMenuItem

Click

Pagina openen om leerlingeninformatie te wijzigen

GebruikersToolStripMenuItem

Click

Pagina openen om gebruikersinformatie te wijzigen

GIP 2009 – 2010 44


frmBasis

Load

Formulier laden met het inlogscherm. Vooraf wordt het splashscreen getoond

Implementatie Imports System.Threading Public Class frmBasis Dim intStart As Integer Private Sub InloggenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InloggenToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmInloggen.WindowState = FormWindowState.Maximized frmInloggen.MdiParent = Me frmInloggen.Show() End Sub Private Sub UitloggenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UitloggenToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Gebruiker Afmelden 'Alle formulieren afsluiten AlleFormulierenSluiten() 'Knoppen ontoegankelijk KnoppenOntoegankelijk() 'Formulier weergeven frmInloggen.WindowState = FormWindowState.Maximized frmInloggen.MdiParent = Me frmInloggen.Show() End Sub Private Sub AfsluitenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AfsluitenToolStripMenuItem.Click 'bevestiging vragen aan de gebruiker If MsgBox("Weet uw zeker dat u wil afsluiten?", MsgBoxStyle.YesNo, "Afsluiten") = MsgBoxResult.Yes Then Me.Close() End If End Sub Private Sub StartToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuStart.Click

GIP 2009 – 2010 45


'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmInscannen.WindowState = FormWindowState.Maximized frmInscannen.MdiParent = Me frmInscannen.Show() End Sub Private Sub VolledigeDagToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenDag.WindowState = FormWindowState.Maximized frmAfdrukkenDag.MdiParent = Me frmAfdrukkenDag.Show() End Sub Private Sub SMorgensToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenVoormiddag.WindowState = FormWindowState.Maximized frmAfdrukkenVoormiddag.MdiParent = Me frmAfdrukkenVoormiddag.Show() End Sub Private Sub SMiddagsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenNamiddag.WindowState = FormWindowState.Maximized frmAfdrukkenNamiddag.MdiParent = Me frmAfdrukkenNamiddag.Show() End Sub Private Sub Tussen2DatasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenTussen.WindowState = FormWindowState.Maximized frmAfdrukkenTussen.MdiParent = Me frmAfdrukkenTussen.Show() End Sub Private Sub BepaaldeDagToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

GIP 2009 – 2010 46


'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenDag.WindowState = FormWindowState.Maximized frmAfdrukkenDag.MdiParent = Me frmAfdrukkenDag.Show() End Sub Private Sub LeerlingToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukkenLeerlingen.WindowState = FormWindowState.Maximized frmAfdrukkenLeerlingen.MdiParent = Me frmAfdrukkenLeerlingen.Show() End Sub Private Sub frmBasis_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Tonen van splashscreen Me.Hide() Me.Visible = False SplashScreen1.Show() SplashScreen1.Update() KnoppenOntoehankelijk() 'Laden van inlogscherm frmInloggen.WindowState = FormWindowState.Maximized frmInloggen.MdiParent = Me frmInloggen.Show() End Sub Private Sub LeerlingenInformatieToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LeerlingenInformatieToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmLeerlingWijzigen.WindowState = FormWindowState.Maximized frmLeerlingWijzigen.MdiParent = Me frmLeerlingWijzigen.Show() End Sub Private Sub GebruikersToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GebruikersToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container

GIP 2009 – 2010 47


frmGebruikersWijzigen.WindowState = FormWindowState.Maximized frmGebruikersWijzigen.MdiParent = Me frmGebruikersWijzigen.Show() End Sub Private Sub StartScannenVoor8UurToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartScannenVoor8UurToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmScannenVoor8Uur.WindowState = FormWindowState.Maximized frmScannenVoor8Uur.MdiParent = Me frmScannenVoor8Uur.Show() End Sub Private Sub VoorOchtendToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VoorOchtendToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmVoor8Uur.WindowState = FormWindowState.Maximized frmVoor8Uur.MdiParent = Me frmVoor8Uur.Show() End Sub Private Sub StrafstudiesToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StrafstudiesToolStripMenuItem1.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmStrafstudies.WindowState = FormWindowState.Maximized frmStrafstudies.MdiParent = Me frmStrafstudies.Show() End Sub Private Sub VoorMiddagToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VoorMiddagToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmBlijvenOverMiddag.WindowState = FormWindowState.Maximized frmBlijvenOverMiddag.MdiParent = Me frmBlijvenOverMiddag.Show() End Sub Private Sub AlleFormulierenSluiten() 'Alle Formulieren sluiten

GIP 2009 – 2010 48


frmAfdrukken.Close() frmAfdrukkenDag.Close() frmAfdrukkenDatum.Close() frmAfdrukkenLeerlingen.Close() frmAfdrukkenNamiddag.Close() frmAfdrukkenSelecteer.Close() frmAfdrukkenTussen.Close() frmAfdrukkenVoormiddag.Close() frmBlijvenOverMiddag.Close() frmGebruikersWijzigen.Close() frmInloggen.Close() frmInscannen.Close() frmLeerlingWijzigen.Close() frmScannenVoor8Uur.Close() frmStrafstudies.Close() frmVoor8Uur.Close() End Sub Private Sub KnoppenOntoegankelijk() 'Alle items ontoegankelijk StartToolStripMenuItem.Enabled = True InloggenToolStripMenuItem.Enabled = True UitloggenToolStripMenuItem.Enabled = False AdministratieToolStripMenuItem.Enabled = False AfdrukkenToolStripMenuItem.Enabled = False LeerlingenInformatieToolStripMenuItem.Enabled = False GebruikersToolStripMenuItem.Enabled = False End Sub Private Sub AfdrukkenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AfdrukkenToolStripMenuItem.Click 'Alle formulieren sluiten AlleFormulierenSluiten() 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = Me frmAfdrukken.Show() End Sub End Class

GIP 2009 – 2010 49


4.3.3

frmInloggen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Gebruikers kunnen hier inloggen

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmInloggen

Text

Aanmeldscherm

Topmost

True

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

picLogo

Images

System.Drawing.Bitmap

lblNaam

Text

Gebruikersnaam:

lblWachtwoord

Text

Wachtwoord:

txtGebruikersnaam

GIP 2009 – 2010 50


txtWachtwoord

PasswordChar

*

btnInloggen

Text

Aanmelden

btnAfsluiten

Text

Afsluiten

Bedoeling: Dit formulier zorgt ervoor dat enkel de bevoegde personen kunnen werken met dit programma. Procedures Object

Gebeurtenis

Doel

btnInloggen

Click

Controleren van inloggegevens + inloggen indien correct, anders foutmelding tonen

btnAfsluiten

Click

Het programma afsluiten

Implementatie Public Class frmInloggen Private Sub btnAfsluiten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfsluiten.Click 'programma aflsuiten Me.Close() frmBasis.Close() End Sub Private Sub btnInloggen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInloggen.Click inlogprocedure() End Sub Private Sub inlogprocedure() 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdGebruikers As New SqlClient.SqlCommand Dim sdrGebruikers As SqlClient.SqlDataReader 'connectie initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdGebruikers.Connection = cnnLaatkomers 'opmaak van sql instructie Dim strSQL As String strSQL = "select gebruikersnaam, wachtwoord, rechten from tbltelaatgebruikers" scmdGebruikers.CommandText = strSQL 'connectie met database openen Try cnnLaatkomers.Open() sdrGebruikers = scmdGebruikers.ExecuteReader 'controleren of de gebruikersnaam bestaat

GIP 2009 – 2010 51


Do While sdrGebruikers.Read = True If txtGebruikersnaam.Text = sdrGebruikers.Item("Gebruikersnaam") And txtWachtwoord.Text = sdrGebruikers.Item("Wachtwoord") Then If sdrGebruikers.Item("Rechten") = "1" Then 'Knoppen KnoppenToegankelijkAdministrator() 'Naam weergeven in balk frmBasis.lblGebruikersnaam.Text = "Welkom " & txtGebruikersnaam.Text 'Formulier sluiten Me.Close() Else 'Knoppen KnoppenToegankelijkGebruiker() 'Naam weergeven in balk frmBasis.lblGebruikersnaam.Text = "Welkom " & txtGebruikersnaam.Text 'Formulier sluiten Me.Close() End If Else 'bij fout antwoord --> niet aanmelden lblFout.Text = " U kan niet aangemeld worden" & vbCrLf & "geef het juiste wachtwoord en gebruikersnaam op" End If Loop Catch ex As Exception MessageBox.Show("Er is een fout opgetreden bij het inloggen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try 'connectie sluiten cnnLaatkomers.Close() 'Plaatsen van focus + leegmaken van wachtwoord txtWachtwoord.Text = String.Empty txtWachtwoord.Focus() End Sub Private Sub KnoppenToegankelijkAdministrator() 'Alle items wijzigen frmBasis.InloggenToolStripMenuItem.Enabled = False frmBasis.StartToolStripMenuItem.Enabled = True frmBasis.UitloggenToolStripMenuItem.Enabled = True frmBasis.AdministratieToolStripMenuItem.Enabled = True frmBasis.AfdrukkenToolStripMenuItem.Enabled = True frmBasis.LeerlingenInformatieToolStripMenuItem.Enabled = True frmBasis.GebruikersToolStripMenuItem.Enabled = True End Sub Private Sub KnoppenToegankelijkGebruiker() 'Alle items wijzigen frmBasis.InloggenToolStripMenuItem.Enabled = False frmBasis.StartToolStripMenuItem.Enabled = True frmBasis.UitloggenToolStripMenuItem.Enabled = True frmBasis.AdministratieToolStripMenuItem.Enabled = True frmBasis.AfdrukkenToolStripMenuItem.Enabled = True

GIP 2009 – 2010 52


frmBasis.LeerlingenInformatieToolStripMenuItem.Enabled = True frmBasis.GebruikersToolStripMenuItem.Enabled = False End Sub Private Sub frmInloggen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Focus plaatsen op tekstvak txtGebruikersnaam.Focus() End Sub Private Sub txtWachtwoord_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtWachtwoord.KeyDown 'als je op enter of numpad enter drukt --> procedure uitvoeren If e.KeyValue = 13 Then inlogprocedure() End If End Sub End Class

GIP 2009 – 2010 53


4.3.4

frmInscannen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Het formulier waar een leerling wordt ingescand en zo in de database wordt geplaatst als te laat.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmInscannen

Text

Leerling inscannen

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

lblCode

Text

Barcodenummer:

txtCode

TextAllign

Center

Text

Vervoer:

cboLeerlingen lblVervoer cboVervoer

GIP 2009 – 2010 54


lblAgenda

Text

Agenda bij:

lblReden

Text

Reden:

txtReden

Multiline

True

lblOpmerking

Text

Opmerking:

txtOpmerking

Multiline

True

btnZoeken

BackgroundImage System.Drawing.Bitmap

btnToevoegen

BackgroundImage System.Drawing.Bitmap

cboAgenda

Bedoeling: De barcode van de leerling weergeven na het inscannen. Het is mogelijk om de reden op te geven. Procedures Object

Gebeurtenis

Doel

frmInscannen

Load

Gegevens van formulier laden met de inhoud

btnZoeken

Click

Zoekopdracht starten naar leerling

cboLeerlingen

SelectedIndexChanged

Bij leerlingen met dezelfde naam wordt dit geopend, daarna dient men een leerling te kiezen om de lijst aan te maken.

btnToevoegen

Click

Gegevens toevoegen

Implementatie Public Class frmInscannen 'Declareren over volledig formulier Dim strVoornaam, strFamilienaam As String Private Sub frmInscannen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVervoer As New SqlClient.SqlCommand Dim dteVervoer As SqlClient.SqlDataReader Dim strCommand As String

GIP 2009 – 2010 55


'cboLeerlingen niet weergeven cboLeerlingen.Visible = False 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdVervoer.Connection = cnnLaatkomers strCommand = "SELECT VervoerID, Vervoer FROM gebruiker.tblTeLaatVervoer" scmdVervoer.CommandText = strCommand Try 'Lezen van reader cnnLaatkomers.Open() dteVervoer = scmdVervoer.ExecuteReader Do While dteVervoer.Read = True cboVervoer.Items.Add(dteVervoer.Item("Vervoer")) Loop 'Connection sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try 'Standaard plaatsen cboVervoer.Text = "Selecteer" 'CboAgenda opvullen cboAgenda.Items.Add("Ja") cboAgenda.Items.Add("Neen") cboAgenda.Text = "Ja" 'Focus plaatsen in tekstvak txtCode.Focus() End Sub Private Sub cboLeerlingen_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboLeerlingen.SelectedIndexChanged 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader Dim strKlas As String = String.Empty 'strKlas initialiseren strKlas = Split(cboLeerlingen.SelectedItem.ToString, " ")(2) 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers

GIP 2009 – 2010 56


'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')AND (Klas = N'" & strKlas & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'txtCode opvullen txtCode.Text = strBarcode 'cboLeerlingen cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnZoeken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoeken.Click 'Verwijderen van vorige resultaten cboLeerlingen.Items.Clear() txtCode.Text = String.Empty 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand, strNaam As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader 'Initialiseren strVoornaam = InputBox("Voornaam van de leerling", "Zoeken van leerling") strFamilienaam = InputBox("Familienaam van de leerling", "Zoeken van leerling") 'Cnn initialiseren

GIP 2009 – 2010 57


cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strNaam = dteLeerlingen.Item("Voornaam") & " " & dteLeerlingen.Item("Familienaam") & " " & dteLeerlingen.Item("Klas") cboLeerlingen.Items.Add(strNaam) strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'Controleren van hoeveelheid antwoorden Select Case cboLeerlingen.Items.Count Case 0 MessageBox.Show("Leerling is niet gevonden", "Niet gevonden", MessageBoxButtons.OK) 'Cbo niet weergeven cboLeerlingen.Visible = False Case 1 cboLeerlingen.Text = cboLeerlingen.Items(0) txtCode.Text = strBarcode 'Cbo niet weergeven + clear cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() cboLeerlingen.Text = String.Empty cboVervoer.Focus() Case Else 'Cbo weergeven cboLeerlingen.Visible = True cboLeerlingen.Text = "Selecteer" cboLeerlingen.Focus() End Select Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click

GIP 2009 – 2010 58


'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdToevoegen As New SqlClient.SqlCommand Dim scmdTotaalTeLaatWijzigen As New SqlClient.SqlCommand Dim strCommand As String Dim strCommandW As String 'Declareren van antwoorden voor de tabel Dim strBarcode, strOchtend, strMiddag, strTijd, strReden, strAgenda, strOpmerking, strVervoerID As String 'Initialiseren van strings strBarcode = txtCode.Text strTijd = Now.ToShortTimeString strReden = txtReden.Text strAgenda = cboAgenda.SelectedItem strOpmerking = txtOpmerking.Text strVervoerID = cboVervoer.SelectedItem 'Declareren voor datum Dim strDag, strMaand, strJaar, strDatum As String strDag = Now.Day strMaand = Now.Month strJaar = Now.Year strDatum = strMaand & "/" & strDag & "/" & strJaar 'Controleren of er een barcode is ingevuld If strBarcode.Length < 16 Then MessageBox.Show("U moet eerst een barcode inscannen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Sluiten van sub txtCode.Focus() Exit Sub End If 'Controleren op reden If strReden = String.Empty Then If MessageBox.Show("Weet u zeker dat u geen reden wilt opgeven", "Informatie", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.No Then 'Sluiten van sub txtReden.Focus() Exit Sub End If End If 'strAgenda Select Case strAgenda Case "Ja" strAgenda = 1 Case "Neen" strAgenda = 0 Case Else

GIP 2009 – 2010 59


MessageBox.Show("Foutieve ingave bij agenda", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Select 'strVervoer Select Case strVervoerID Case "Auto" strVervoerID = "1" Case "Bus" strVervoerID = "2" Case "Fiets" strVervoerID = "3" Case "Metro" strVervoerID = "4" Case "Tevoet" strVervoerID = "5" Case "Tram" strVervoerID = "6" Case "Trein" strVervoerID = "7" Case Else MessageBox.Show("Foutieve ingave bij vervoer", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Select 'strBarcode bekijken If Not IsNumeric(strBarcode) Then MessageBox.Show("Foutieve ingave bij barcode", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If 'strOchtend is voor 12uur + omgekeerd If Now.Hour.ToString < 12 Then strOchtend = 1 strMiddag = 0 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdToevoegen.Connection = cnnLaatkomers strCommand = "INSERT INTO tblTeLaatLogboek" strCommand &= "(Barcode, Datum, Ochtend, Middag, Tijd, Reden, Agenda, Opmerking, VervoerID)" strCommand &= "VALUES (N'" & strBarcode & "','" & strDatum & "', N'" & strOchtend & "', N'" & strMiddag & "', N'" & strTijd & "', N'" & strReden & "', N'" & strAgenda & "', N'" & strOpmerking & "', " & strVervoerID & ")" scmdToevoegen.CommandText = strCommand scmdTotaalTeLaatWijzigen.Connection = cnnLaatkomers strCommandW = "UPDATE tblTeLaatLeerling "

GIP 2009 – 2010 60


strCommandW &= "SET smorgens = smorgens + 1, AantalvrOchtend = AantalvrOchtend + 1 " strCommandW &= "WHERE (Barcode = N'" & strBarcode & "')" scmdTotaalTeLaatWijzigen.CommandText = strCommandW Try 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdToevoegen.ExecuteNonQuery() scmdTotaalTeLaatWijzigen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Else strOchtend = 0 strMiddag = 1 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdToevoegen.Connection = cnnLaatkomers strCommand = "INSERT INTO tblTeLaatLogboek" strCommand &= "(Barcode, Datum, Ochtend, Middag, Tijd, Reden, Agenda, Opmerking, VervoerID)" strCommand &= "VALUES (N'" & strBarcode & "','" & strDatum & "', N'" & strOchtend & "', N'" & strMiddag & "', N'" & strTijd & "', N'" & strReden & "', N'" & strAgenda & "', N'" & strOpmerking & "', " & strVervoerID & ")" scmdToevoegen.CommandText = strCommand scmdTotaalTeLaatWijzigen.Connection = cnnLaatkomers strCommandW = "UPDATE tblTeLaatLeerling " strCommandW &= "SET smiddags = smiddags + 1, AantalvrMiddag = AantalvrMiddag + 1 " strCommandW &= "WHERE (Barcode = N'" & strBarcode & "')" scmdTotaalTeLaatWijzigen.CommandText = strCommandW Try 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdToevoegen.ExecuteNonQuery() scmdTotaalTeLaatWijzigen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End If

GIP 2009 – 2010 61


'Focus terugplaatsen + tekstvakken leegmaken txtCode.Text = String.Empty cboVervoer.Text = "Selecteer" cboAgenda.Text = "Ja" txtReden.Text = String.Empty txtOpmerking.Text = String.Empty txtCode.Focus() End Sub End Class

GIP 2009 – 2010 62


4.3.5

frmScannenVoor8Uur.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Het formulier waar een leerling wordt ingescand die voor 8uur aanwezig moet zijn op school.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmScannenVoor8Uur

Text

Scannen voor 8 Uur

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

lblCode

Text

Barcodenummer:

txtCode

TextAllign

Center

Text

Op Tijd:

cboLeerlingen lblOpTijd cboOptijd

GIP 2009 – 2010 63


lblOpmerking

Text

Opmerking:

txtOpmerking

Multiline

True

btnZoeken

BackgroundImage System.Drawing.Bitmap

btnToevoegen

BackgroundImage System.Drawing.Bitmap

Bedoeling: De barcode van de leerling weergeven na het inscannen. Het is mogelijk om de reden op te geven. Dit formulier wordt gebruikt voor leerlingen die voor 8 uur aanwezig moeten zijn. Procedures Object

Gebeurtenis

Doel

frmScannenVoor8Uur

Load

Gegevens in formulier laden

btnToevoegen

Click

Gegevens aanpassen net als de procedure

btnZoeken

Click

Zoekopdracht starten naar leerling

cboLeerlingen

SelectedIndexChanged

Bij leerlingen met dezelfde naam wordt dit geopend, daarna dient men een leerling te kiezen om de lijst aan te maken.

Implementatie Public Class frmScannenVoor8Uur Private Sub frmScannenVoor8Uur_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Focus plaatsen in tekstvak txtCode.Focus() cboLeerlingen.Visible = False 'Items plaatsen in cbo cboOptijd.Items.Add("Ja") cboOptijd.Items.Add("Nee") If Now.Hour < 8 Then cboOptijd.Text = "Ja" Else cboOptijd.Text = "Nee" End If

GIP 2009 – 2010 64


End Sub Private Sub btnZoeken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoeken.Click 'Verwijderen van vorige resultaten cboLeerlingen.Items.Clear() txtCode.Text = String.Empty 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand, strNaam As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader Dim strVoornaam, strFamilienaam As String 'Initialiseren strVoornaam = InputBox("Voornaam van de leerling", "Zoeken van leerling") strFamilienaam = InputBox("Familienaam van de leerling", "Zoeken van leerling") 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strNaam = dteLeerlingen.Item("Voornaam") & " " & dteLeerlingen.Item("Familienaam") & " " & dteLeerlingen.Item("Klas") cboLeerlingen.Items.Add(strNaam) strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'Controleren van hoeveelheid antwoorden Select Case cboLeerlingen.Items.Count Case 0 MessageBox.Show("Leerling is niet gevonden", "Niet gevonden", MessageBoxButtons.OK)

GIP 2009 – 2010 65


'Cbo niet weergeven cboLeerlingen.Visible = False Case 1 cboLeerlingen.Text = cboLeerlingen.Items(0) txtCode.Text = strBarcode 'Cbo niet weergeven + clear cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() cboLeerlingen.Text = "Selecteer" Case Else 'Cbo weergeven cboLeerlingen.Visible = True End Select Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdToevoegen As New SqlClient.SqlCommand Dim strCommand As String Dim strAanwezig As String = String.Empty Dim strOpmerking As String = String.Empty 'Declareren van antwoorden voor de tabel Dim strBarcode As String 'Initialiseren van strings strBarcode = txtCode.Text 'strOpmerking = 'Declareren voor datum Dim strDag, strMaand, strJaar, strDatum As String strDag = Now.Day strMaand = Now.Month strJaar = Now.Year strDatum = strMaand & "/" & strDag & "/" & strJaar 'Controleren of er een barcode is ingevuld If strBarcode.Length < 16 Then MessageBox.Show("U moet eerst een barcode inscannen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Sluiten van sub txtCode.Focus() Exit Sub End If 'strAanwezig initialiseren strAanwezig = cboOptijd.Text MsgBox(strAanwezig)

GIP 2009 – 2010 66


If strAanwezig = "Ja" Then strAanwezig = "1" Else strAanwezig = "0" End If 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdToevoegen.Connection = cnnLaatkomers strCommand = "INSERT INTO tblTeLaatOchtend" strCommand &= "(Barcode, Datum, Aanwezig, Opmerking)" strCommand &= " VALUES (N'" & strBarcode & "','" & strDatum & "', N'" & strAanwezig & "', N'" & strOpmerking & "')" scmdToevoegen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdToevoegen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try 'Focus terugplaatsen + tekstvakken leegmaken txtCode.Text = String.Empty 'Terug controleren van tijd If Now.Hour < 8 Then cboOptijd.Text = "Ja" Else cboOptijd.Text = "Nee" End If txtOpmerking.Text = String.Empty txtCode.Focus() End Sub End Class

GIP 2009 – 2010 67


4.3.6

frmVoor8Uur.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint voor leerlingen die voor 8uur op school aanwezig moeten zijn.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmVoor8Uur

Text

Lijst voor 8 uur

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

btnToevoegen

BackgroundImage System.Drawing.Bitmap

btnPrinten

BackgroundImage System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage System.Drawing.Bitmap

btnLijstVerwijderen

BackgroundImage System.Drawing.Bitmap

lsvLijst

View

Details

GIP 2009 – 2010 68


Bedoeling: Leerlingen worden toegevoegd die voor 8uur aanwezig moeten zijn. Deze lijst kan ook worden afgeprint. Procedures Object

Gebeurtenis

Doel

btnToevoegen

Click

Gegevens aanpassen net als de procedure

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

btnVerwijderen

Click

Gegevens aanpassen net als de procedure

Implementatie Public Class frmVoor8Uur #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmVoor8Uur_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black

GIP 2009 – 2010 69


'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 250 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen Voor 8 Uur", headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0

GIP 2009 – 2010 70


For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'LsvLijst Leegmaken lsvLijst.Items.Clear() 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVoor8Uur As New SqlClient.SqlCommand Dim strCommandVoor8Uur As String Dim dteVoor8Uur As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdVoor8Uur.Connection = cnnLaatkomers strCommandVoor8Uur = "SELECT Barcode, Voornaam, Familienaam, Klas, AantalvrOchtend " strCommandVoor8Uur &= "FROM tblTeLaatLeerling" scmdVoor8Uur.CommandText = strCommandVoor8Uur Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteVoor8Uur = scmdVoor8Uur.ExecuteReader() Do While dteVoor8Uur.Read 'Declareren voor antwoord Dim strInput As String strInput = dteVoor8Uur.Item("Voornaam") & " " & dteVoor8Uur.Item("Familienaam") & vbTab & vbTab & dteVoor8Uur.Item("Klas") 'Controleren op strafstudies Dim intAantal As Integer intAantal = dteVoor8Uur.Item("AantalvrOchtend") 'Controleren of de persoon al meer dan 3x te laat was If intAantal >= 3 Then 'Toevoegen in listview Dim Inhoud(1) As String

GIP 2009 – 2010 71


Dim LVI As ListViewItem Inhoud(0) = dteVoor8Uur.Item("Voornaam") & " " & dteVoor8Uur.Item("Familienaam") Inhoud(1) = dteVoor8Uur.Item("Klas") LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnLijstVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLijstVerwijderen.Click 'Declareren van integer voor antwoord

GIP 2009 – 2010 72


Dim intAntwoord As Integer intAntwoord = MessageBox.Show("Weet u zeker dat u de gegevens wilt verwijderen uit de tabel?" & vbCrLf & vbCrLf & "Dit kan niet meer ongedaan gemaakt worden!", "Opgepast", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) 'Controleren If intAntwoord = 6 Then Try 'Antwoord JA 'Alle leerlingen op 0 plaatsen die in de lijst voorkomen 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVerwijderen As New SqlClient.SqlCommand Dim strVerwijderen As String 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdVerwijderen.Connection = cnnLaatkomers strVerwijderen = "UPDATE tblTeLaatLeerling " strVerwijderen &= "SET AantalvrOchtend = 0 " strVerwijderen &= "WHERE (AantalvrOchtend >= 3)" scmdVerwijderen.CommandText = strVerwijderen 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdVerwijderen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Listview leegmaken + invoegen lsvLijst.Items.Clear() Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Else MessageBox.Show("Geannuleerd door gebruiker", "Annulatie", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub End Class

GIP 2009 – 2010 73


4.3.7

frmBlijvenOverMiddag.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint voor leerlingen die tussen de middag aanwezig moeten zijn.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmBlijvenOverMidda g

Text

Lijst blijven tussen de middag

BackgroundImag e Icon

prjTeLaatKomers.My.Resources.Resources.achtergron d Icon

btnToevoegen

BackgroundImag e

System.Drawing.Bitmap

btnPrinten

BackgroundImag e BackgroundImag e

System.Drawing.Bitmap

btnAfdrukvoorbeeld

System.Drawing.Bitmap

GIP 2009 – 2010 74


btnLijstVerwijderen lsvLijst

BackgroundImag e View

System.Drawing.Bitmap Details

Bedoeling: Leerlingen worden toegevoegd die moeten blijven tussen de middag. Deze lijst kan ook worden afgeprint. Procedures Object

Gebeurtenis

Doel

btnToevoegen

Click

Aanmaken van lijst

btnLijstVerwijderen

Click

Alle leerlingen uit de lijst verwijderen uit de database

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

Implementatie Public Class frmBlijvenOverMiddag #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmBlijvenOverMiddag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics

GIP 2009 – 2010 75


Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 250 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen Voor 8 Uur", headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True

GIP 2009 – 2010 76


Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnLijstVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLijstVerwijderen.Click 'Declareren van integer voor antwoord Dim intAntwoord As Integer intAntwoord = MessageBox.Show("Weet u zeker dat u de gegevens wilt verwijderen uit de tabel?" & vbCrLf & vbCrLf & "Dit kan niet meer ongedaan gemaakt worden!", "Opgepast", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)

GIP 2009 – 2010 77


'Controleren If intAntwoord = 6 Then Try 'Antwoord JA 'Alle leerlingen op 0 plaatsen die in de lijst voorkomen 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVerwijderen As New SqlClient.SqlCommand Dim strVerwijderen As String 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdVerwijderen.Connection = cnnLaatkomers strVerwijderen = "UPDATE tblTeLaatLeerling " strVerwijderen &= "SET AantalvrMiddag = 0 " strVerwijderen &= "WHERE (AantalvrMiddag >= 3)" scmdVerwijderen.CommandText = strVerwijderen 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdVerwijderen.ExecuteReader() 'Connectie sluiten cnnLaatkomers.Close() 'Listview leegmaken + invoegen lsvLijst.Items.Clear() Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Else MessageBox.Show("Geannuleerd door gebruiker", "Annulatie", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'LsvLijst Leegmaken lsvLijst.Items.Clear() 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVoor8Uur As New SqlClient.SqlCommand Dim strCommandVoor8Uur As String Dim dteVoor8Uur As SqlClient.SqlDataReader

GIP 2009 – 2010 78


'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdVoor8Uur.Connection = cnnLaatkomers strCommandVoor8Uur = "SELECT Voornaam, Familienaam, Klas, AantalvrMiddag " strCommandVoor8Uur &= "FROM tblTeLaatLeerling" scmdVoor8Uur.CommandText = strCommandVoor8Uur Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteVoor8Uur = scmdVoor8Uur.ExecuteReader() Do While dteVoor8Uur.Read 'Declareren voor antwoord Dim strInput As String strInput = dteVoor8Uur.Item("Voornaam") & " " & dteVoor8Uur.Item("Familienaam") & vbTab & vbTab & dteVoor8Uur.Item("Klas") 'Controleren op strafstudies Dim intAantal As Integer intAantal = dteVoor8Uur.Item("AantalvrMiddag") 'Controleren of de persoon al meer dan 3x te laat was If intAantal >= 3 Then 'Toevoegen in listview Dim Inhoud(1) As String Dim LVI As ListViewItem Inhoud(0) = dteVoor8Uur.Item("Voornaam") & " " & dteVoor8Uur.Item("Familienaam") Inhoud(1) = dteVoor8Uur.Item("Klas") LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MsgBox(ex) End Try End Sub End Class

GIP 2009 – 2010 79


4.3.8

frmStrafstudies.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint voor leerlingen die strafstudie hebben.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmStrafstudies

Text

Strafstudielijst

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

btnToevoegen

BackgroundImage System.Drawing.Bitmap

btnPrinten

BackgroundImage System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage System.Drawing.Bitmap

btnLijstVerwijderen

BackgroundImage System.Drawing.Bitmap

lsvLijst

View

Details

GIP 2009 – 2010 80


Bedoeling: Leerlingen worden toegevoegd die naar de strafstudie moeten. Deze lijst kan ook worden afgeprint. Procedures Object

Gebeurtenis

Doel

btnToevoegen

Click

Gegevens aanpassen net als de procedure

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

btnVerwijderen

Click

Gegevens aanpassen net als de procedure

Implementatie Public Class frmStrafstudies #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmStrafstudies_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("Reden", 190, HorizontalAlignment.Left) End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1

GIP 2009 – 2010 81


'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 230 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen Voor Strafstudie", headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY)

GIP 2009 – 2010 82


'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Function RemoveDuplicates(ByVal lstView As ListView) As Boolean Dim itemI As ListViewItem Dim itemJ As ListViewItem Dim progress As Integer Dim count As Integer Dim ProgressDupCounter As Integer = lstView.Items.Count For i As Integer = lstView.Items.Count - 1 To 0 Step -1 itemI = lstView.Items(i) progress = progress + 1 ' start one after hence +1 For z As Integer = i + 1 To lstView.Items.Count - 1 Step 1 itemJ = lstView.Items(z) If itemI.Text = itemJ.Text Then 'duplicate found, now delete duplicate lstView.Items.Remove(itemJ) count = count + 1 Exit For End If Next z Next (i) End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen

GIP 2009 – 2010 83


If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnLijstVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLijstVerwijderen.Click 'Declareren van integer voor antwoord Dim intAntwoord As Integer intAntwoord = MessageBox.Show("Weet u zeker dat u de gegevens wilt verwijderen uit de tabel?" & vbCrLf & vbCrLf & "Dit kan niet meer ongedaan gemaakt worden!", "Opgepast", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) 'Controleren If intAntwoord = 6 Then Try 'Antwoord JA 'Alle leerlingen op 0 plaatsen die in de lijst voorkomen 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVerwijderen As New SqlClient.SqlCommand Dim strVerwijderen As String 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdVerwijderen.Connection = cnnLaatkomers strVerwijderen = "DELETE FROM gebruiker.tblTeLaatOchtend " scmdVerwijderen.CommandText = strVerwijderen 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdVerwijderen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Listview leegmaken + invoegen lsvLijst.Items.Clear() Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Else

GIP 2009 – 2010 84


MessageBox.Show("Geannuleerd door gebruiker", "Annulatie", MessageBoxButtons.OK, MessageBoxIcon.Information) End If End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdBekijkenOfHet5x As New SqlClient.SqlCommand Dim scmdBekijkenWaar As New SqlClient.SqlCommand Dim strBekijkenOfHet5x As String = String.Empty Dim strBekijkenWaar As String = String.Empty Dim dteBekijkenOfHet5x As SqlClient.SqlDataReader Dim dteBekijkenWaar As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdBekijkenOfHet5x.Connection = cnnLaatkomers scmdBekijkenWaar.Connection = cnnLaatkomers strBekijkenOfHet5x = "SELECT COUNT(tblTeLaatOchtend.Barcode) AS Aantal, tblTeLaatOchtend.Barcode, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas " strBekijkenOfHet5x &= "FROM tblTeLaatOchtend INNER JOIN tblTeLaatLeerling ON tblTeLaatOchtend.Barcode = tblTeLaatLeerling.Barcode " strBekijkenOfHet5x &= "GROUP BY gebruiker.tblTeLaatOchtend.Barcode, gebruiker.tblTeLaatLeerling.Voornaam, gebruiker.tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas" scmdBekijkenOfHet5x.CommandText = strBekijkenOfHet5x strBekijkenWaar = "SELECT tblTeLaatOchtend.Aanwezig, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Barcode " strBekijkenWaar &= "FROM tblTeLaatOchtend INNER JOIN " strBekijkenWaar &= "tblTeLaatLeerling ON tblTeLaatOchtend.Barcode = tblTeLaatLeerling.Barcode" scmdBekijkenWaar.CommandText = strBekijkenWaar 'Connection openen + uitvoeren Try cnnLaatkomers.Open() dteBekijkenOfHet5x = scmdBekijkenOfHet5x.ExecuteReader 'Strings aanmaken Dim strAantal, strFamilienaam, strVoornaam, strKlas As String Do While dteBekijkenOfHet5x.Read strAantal = dteBekijkenOfHet5x.Item("Aantal") If Not strAantal = 5 Then 'Declareren

GIP 2009 – 2010 85


Dim Inhoud(2) As String Dim LVI As ListViewItem 'Strings Toevoegen strFamilienaam = dteBekijkenOfHet5x.Item("Familienaam") strVoornaam = dteBekijkenOfHet5x.Item("Voornaam") strKlas = dteBekijkenOfHet5x.Item("Klas") Inhoud(0) = strVoornaam & " " & strFamilienaam Inhoud(1) = strKlas Inhoud(2) = "één of meerdere dagen niet gescand" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If Loop 'Reader sluiten dteBekijkenOfHet5x.Close() '2 Query opstarten dteBekijkenWaar = scmdBekijkenWaar.ExecuteReader 'Strings aanmaken Dim strAanwezig As String Do While dteBekijkenWaar.Read strAanwezig = dteBekijkenWaar.Item("Aanwezig") If strAanwezig = "False" Then 'Declareren Dim Inhoud(2) As String Dim LVI As ListViewItem 'Strings Toevoegen strFamilienaam = dteBekijkenWaar.Item("Familienaam") strVoornaam = dteBekijkenWaar.Item("Voornaam") strKlas = dteBekijkenWaar.Item("Klas") Inhoud(0) = strVoornaam & " " & strFamilienaam Inhoud(1) = strKlas Inhoud(2) = "één of meerdere dagen te laat" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'Dubbele items zoeken RemoveDuplicates(lsvLijst) 'Connectie sluiten

GIP 2009 – 2010 86


cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub End Class

GIP 2009 – 2010 87


4.3.9

frmAfdrukken.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Het startformulier waar een afdruktaak kan worden gestart.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukken

Text

Afdrukken

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

btnOK

BackgroundImage System.Drawing.Bitmap

grpKeuze

Text

Sorteren op

rdbVandaag

Text

De hele dag

rdbVoormiddag

Text

Voormiddag

rdbNamiddag

Text

Namiddag

GIP 2009 – 2010 88


rdbDatum

Text

Datum

rdb1BepaaldeDatum

Text

Op 1 bepaalde datum

rdbTussenDatums

Text

Tussen 2 datums

rdbLeerlingen

Text

Leerling

rdbEigen

Text

Eigen filter maken

Bedoeling: Hier kan geselecteerd worden welke lijsten de gebruiker wil afprinten. Procedures Object

Gebeurtenis

Doel

btnOK

Click

Controleren wat aangeduid is. Daarna de daarbij horende pagina openen

frmAfdrukken

Load

Standaard iets aanduiden

Implementatie Public Class frmAfdrukken Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click 'controleren wat geselecteerd is If rdbVandaag.Checked = True Then 'Formulier openen in container frmAfdrukkenDag.WindowState = FormWindowState.Maximized frmAfdrukkenDag.MdiParent = frmBasis frmAfdrukkenDag.Show() End If If rdbVoormiddag.Checked = True Then 'Formulier openen in container frmAfdrukkenVoormiddag.WindowState = FormWindowState.Maximized frmAfdrukkenVoormiddag.MdiParent = frmBasis frmAfdrukkenVoormiddag.Show() End If If rdbNamiddag.Checked = True Then 'Formulier openen in container frmAfdrukkenNamiddag.WindowState = FormWindowState.Maximized frmAfdrukkenNamiddag.MdiParent = frmBasis frmAfdrukkenNamiddag.Show() End If If rdbDatum.Checked = True Then MessageBox.Show("Gelieve een keuze te maken tussen 1 datum of meerdere datums", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Information)

GIP 2009 – 2010 89


Exit Sub End If If rdb1BepaaldeDatum.Checked = True Then 'Formulier openen in container frmAfdrukkenDatum.WindowState = FormWindowState.Maximized frmAfdrukkenDatum.MdiParent = frmBasis frmAfdrukkenDatum.Show() End If If rdbTussenDatums.Checked = True Then 'Formulier openen in container frmAfdrukkenTussen.WindowState = FormWindowState.Maximized frmAfdrukkenTussen.MdiParent = frmBasis frmAfdrukkenTussen.Show() End If If rdbLeerlingen.Checked = True Then 'Formulier openen in container frmAfdrukkenLeerlingen.WindowState = FormWindowState.Maximized frmAfdrukkenLeerlingen.MdiParent = frmBasis frmAfdrukkenLeerlingen.Show() End If If rdbEigen.Checked = True Then 'Formulier openen in container frmAfdrukkenSelecteer.WindowState = FormWindowState.Maximized frmAfdrukkenSelecteer.MdiParent = frmBasis frmAfdrukkenSelecteer.Show() End If 'Na keuze formulier sluiten Me.Close() End Sub Private Sub frmAfdrukken_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'standaard rdbVandaag selecteren rdbVandaag.Select() End Sub End Class

GIP 2009 – 2010 90


4.3.10

frmAfdrukkenDag.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint voor leerlingen die te laat waren.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukkenDag

Text BackgroundImage

Afdrukken van te laat komers (gesorteerd op volledige dag) prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

lsvLijst

View

Details

btnVorige

BackgroundImage

System.Drawing.Bitmap

btnPrinten

BackgroundImage

System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage

System.Drawing.Bitmap

GIP 2009 – 2010 91


Bedoeling: Hier kan je alle telaatkomers van vandaag afdrukken. Procedures Object

Gebeurtenis

Doel

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

frmAfdrukkenDag

Load

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenDag #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmAfdrukkenDag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("'s Morgens of 's Middags", 150, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'Declaratie van data-objecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag As String = Now.Day.ToString Dim dteDatumMaand As String = Now.Month.ToString Dim dteDatumJaar As String = Now.Year.ToString Dim dteDatumVandaag As String = dteDatumJaar & "-" & dteDatumMaand & "-" & dteDatumDag

GIP 2009 – 2010 92


'SQL instructie opvullen in de sqlCommand strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Gemeente , tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " strSQL &= "WHERE (tblTeLaatLogboek.Datum = CONVERT(DATETIME, '" & dteDatumVandaag & "', 102))" scmdLeerlingen.CommandText = strSQL 'Connectie met de database maken + opvragen van gegevens Try cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader Do While sdrLeerlingen.Read = True Dim strOchtendOfMiddag As String If sdrLeerlingen.Item("Middag") = True Then strOchtendOfMiddag = "'s Middags" Else strOchtendOfMiddag = "'s Morgens" End If 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet" Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(4) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(1) = sdrLeerlingen.Item("Klas") Inhoud(2) = strOchtendOfMiddag Inhoud(3) = sdrLeerlingen.Item("Gemeente") Inhoud(4) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop

GIP 2009 – 2010 93


'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load 'afdrukvoorbeeld gemaximaliseerd weergeven PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 200 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold)

GIP 2009 – 2010 94


e.Graphics.DrawString("Leerlingen te laat op " & Now.ToShortDateString, headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click

GIP 2009 – 2010 95


' Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub End Class

GIP 2009 – 2010 96


4.3.11

frmAfdrukkenVoormiddag.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint met leerlingen die ’s morgens te laat waren.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukkenVoormiddag

Text

Afdrukken van te laat komers (gesorteerd op voormiddag)

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

lsvLijst

View

Details

btnVorige

BackgroundImage

System.Drawing.Bitmap

btnPrinten

BackgroundImage

System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage

System.Drawing.Bitmap

GIP 2009 – 2010 97


Bedoeling: Hier kan je alle telaatkomers afdrukken die in de voormiddag te laat kwamen. Procedures Object

Gebeurtenis

Doel

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

frmAfdrukkenVoormiddag

Load

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenVoormiddag #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmAfdrukkenVoormiddag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'Declaratie van data-objecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag As String = Now.Day.ToString Dim dteDatumMaand As String = Now.Month.ToString Dim dteDatumJaar As String = Now.Year.ToString Dim dteDatumVandaag As String = dteDatumJaar & "-" & dteDatumMaand & "-" & dteDatumDag 'SQL instructie opvullen in de sqlCommand

GIP 2009 – 2010 98


strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Gemeente , tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " strSQL &= "WHERE (tblTeLaatLogboek.Datum = CONVERT(DATETIME, '" & dteDatumVandaag & "', 102)) AND (tblTeLaatLogboek.Ochtend = N'1')" scmdLeerlingen.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader Do While sdrLeerlingen.Read = True 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet" Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(3) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(1) = sdrLeerlingen.Item("Klas") Inhoud(2) = sdrLeerlingen.Item("Gemeente") Inhoud(3) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden"

GIP 2009 – 2010 99


LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() 'bij een database fout --> tonen van die fout via een messagebox Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Titel Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 100 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen te laat op " & Now.ToShortDateString & "(Voormiddag)", headfont, Brushes.Black, X, Y) 'Hoofdingen 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height)

GIP 2009 – 2010 100


colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rijen iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Toon de help knop. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok drukken --> dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If

GIP 2009 – 2010 101


End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click 'afdrukvoorbeeld tonen PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load 'gemaximaliseerde afdrukvoorbeeld PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub End Class

GIP 2009 – 2010 102


4.3.12

frmAfdrukkenNamiddag.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint voor leerlingen die te laat waren. Enkel leerlingen van ’s middags.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukkenNamiddag

Text

Afdrukken van te laat komers (gesorteerd op namiddag)

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

lsvLijst

View

Details

btnVorige

BackgroundImage

System.Drawing.Bitmap

btnPrinten

BackgroundImage

System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage

System.Drawing.Bitmap

GIP 2009 – 2010 103


Bedoeling: Hier kan je alle leerlingen die ‘s middags te laat kwamen afdrukken. Procedures Object

Gebeurtenis

Doel

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

frmAfdrukkenNamiddag

Load

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenNamiddag #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmAfdrukkenNamiddag_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'Declaratie van data-objecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag As String = Now.Day.ToString Dim dteDatumMaand As String = Now.Month.ToString Dim dteDatumJaar As String = Now.Year.ToString Dim dteDatumVandaag As String = dteDatumJaar & "-" & dteDatumMaand & "-" & dteDatumDag 'SQL instructie opvullen in de sqlCommand

GIP 2009 – 2010 104


strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Gemeente , tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " strSQL &= "WHERE (tblTeLaatLogboek.Datum = CONVERT(DATETIME, '" & dteDatumVandaag & "', 102)) AND (tblTeLaatLogboek.Ochtend = N'0')" scmdLeerlingen.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader Do While sdrLeerlingen.Read = True 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet" Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(3) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(1) = sdrLeerlingen.Item("Klas") Inhoud(2) = sdrLeerlingen.Item("Gemeente") Inhoud(3) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud)

GIP 2009 – 2010 105


lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 100 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen te laat op " & Now.ToShortDateString & "(Namiddag)", headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY)

GIP 2009 – 2010 106


'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True

GIP 2009 – 2010 107


'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub End Class

GIP 2009 – 2010 108


4.3.13

frmAfdrukkenDatum.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint met leerlingen die te laat waren op een bepaalde datum.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukkenDatum

Text

frmAfdrukkenDatum

BackgroundImage

prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

lsvLijst

View

Details

btnVorige

BackgroundImage

System.Drawing.Bitmap

btnPrinten

BackgroundImage

System.Drawing.Bitmap

btnAfdrukvoorbeeld

BackgroundImage

System.Drawing.Bitmap

dteDatumPicker

GIP 2009 – 2010 109


Bedoeling: Hier kan je alle telaatkomers van een gekozen dag afdrukken. Procedures Object

Gebeurtenis

Doel

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

dteDatumPicker

ValueChanged

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenDatum #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmAfdrukkenDatum_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("'s Morgens of 's Middags", 150, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'Opvullen met datum van vandaag SelecteerDatum() End Sub Private Sub dteDatumPicker_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dteDatumPicker.ValueChanged 'Opvullen met geslecteerde datum lsvLijst.Items.Clear() SelecteerDatum() End Sub Private Sub SelecteerDatum() 'Declaratie van data-objecten

GIP 2009 – 2010 110


Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag As String = dteDatumPicker.Value.Day Dim dteDatumMaand As String = dteDatumPicker.Value.Month Dim dteDatumJaar As String = dteDatumPicker.Value.Year Dim dteDatumVandaag As String = dteDatumJaar & "-" & dteDatumMaand & "-" & dteDatumDag 'SQL instructie opvullen in de sqlCommand strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Gemeente , tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " strSQL &= "WHERE (tblTeLaatLogboek.Datum = CONVERT(DATETIME, '" & dteDatumVandaag & "', 102))" scmdLeerlingen.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader Do While sdrLeerlingen.Read = True Dim strOchtendOfMiddag As String If sdrLeerlingen.Item("Middag") = True Then strOchtendOfMiddag = "'s Middags" Else strOchtendOfMiddag = "'s Morgens" End If 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet"

GIP 2009 – 2010 111


Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(4) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(1) = sdrLeerlingen.Item("Klas") Inhoud(2) = strOchtendOfMiddag Inhoud(3) = sdrLeerlingen.Item("Gemeente") Inhoud(4) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0

GIP 2009 – 2010 112


Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 200 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen te laat op " & dteDatumPicker.Value.ToShortDateString, headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next

GIP 2009 – 2010 113


currentY += maxY + gap Next End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub End Class

GIP 2009 – 2010 114


4.3.14

frmAfdrukkenTussen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint met leerlingen die te laat waren tussen 2 bepaalde datums.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmAfdrukkenTussen

Text BackgroundImage

Afdrukken van te laatkomers (gesorteerd tussen datums) prjTeLaatKomers.My.Resources.Resources.achtergrond

Icon

Icon

lsvLijst

View

Details

btnVorige

BackgroundImage

System.Drawing.Bitmap

btnPrinten

BackgroundImage

System.Drawing.Bitmap

GIP 2009 – 2010 115


btnAfdrukvoorbeeld

BackgroundImage

System.Drawing.Bitmap

dteDatumPicker1 dteDatumPicker2

Bedoeling: Hier kan je alle telaatkomers tussen datums in één keer afdrukken. Procedures Object

Gebeurtenis

Doel

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

frmAfdrukkenTussen

Load

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenTussen #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub frmAfdrukkenTussen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 65, HorizontalAlignment.Left) lsvLijst.Columns.Add("'s Morgens of 's Middags", 150, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'Opvullen met datum van vandaag SelecteerDatum() End Sub Private Sub dteDatumPicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dteDatumPicker1.ValueChanged 'Opvullen met geslecteerde datum lsvLijst.Items.Clear()

GIP 2009 – 2010 116


SelecteerDatum() End Sub Private Sub dteDatumPicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dteDatumPicker2.ValueChanged 'Opvullen met geslecteerde datum lsvLijst.Items.Clear() SelecteerDatum() End Sub Private Sub SelecteerDatum() 'Declaratie van dataobjecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag1 As String = dteDatumPicker1.Value.Day Dim dteDatumMaand1 As String = dteDatumPicker1.Value.Month Dim dteDatumJaar1 As String = dteDatumPicker1.Value.Year Dim dteDatumVandaag1 As String = dteDatumJaar1 & "-" & dteDatumMaand1 & "-" & dteDatumDag1 Dim dteDatumDag2 As String = dteDatumPicker2.Value.Day Dim dteDatumMaand2 As String = dteDatumPicker2.Value.Month Dim dteDatumJaar2 As String = dteDatumPicker2.Value.Year Dim dteDatumVandaag2 As String = dteDatumJaar2 & "-" & dteDatumMaand2 & "-" & dteDatumDag2 'SQL instructie opvullen in de sqlCommand strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, " strSQL &= "tblTeLaatLeerling.Gemeente, tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN " strSQL &= "tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " strSQL &= "WHERE (tblTeLaatLogboek.Datum >= CONVERT(DATETIME, '" & dteDatumVandaag1 & "', 102) AND tblTeLaatLogboek.Datum <= CONVERT(DATETIME, " strSQL &= "'" & dteDatumVandaag2 & "', 102))" scmdLeerlingen.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader

GIP 2009 – 2010 117


Do While sdrLeerlingen.Read = True Dim strOchtendOfMiddag As String If sdrLeerlingen.Item("Middag") = True Then strOchtendOfMiddag = "'s Middags" Else strOchtendOfMiddag = "'s Morgens" End If 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet" Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(4) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(1) = sdrLeerlingen.Item("Klas") Inhoud(2) = strOchtendOfMiddag Inhoud(3) = sdrLeerlingen.Item("Gemeente") Inhoud(4) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub

GIP 2009 – 2010 118


Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 75 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerlingen te laat tussen " & dteDatumPicker1.Value.ToShortDateString & " en " & dteDatumPicker2.Value.ToShortDateString, headfont, Brushes.Black, X, Y) 'Headings 'Marge bovenaan de pagina currentY = 100 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY)

GIP 2009 – 2010 119


currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click

GIP 2009 – 2010 120


PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub End Class

GIP 2009 – 2010 121


4.3.15

frmAfdrukkenLeerlingen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar gegevens kunnen worden afgeprint van één bepaalde leerling.

Printscreen

Besturingselementen Object

Eigenschap

frmAfdrukkenLeerlingen Text

Waarde Afdrukken van te laatkomers (gesorteerd op Leerlingen)

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

lblCode

Text

Barcodenummer:

txtCode

TextAllign

Center

Text

Gegevens Leerling:

cboLeerlingen lblGegevens

GIP 2009 – 2010 122


txtGegevens

Multiline

True

ReadOnly

True

lblTeLaat

Text

Te laat:

lsvLijst

View

Details

btnVorige

BackgroundImage System.Drawing.Bitmap

btnPrinten

BackgroundImage

btnAfdrukvoorbeeld

BackgroundImage System.Drawing.Bitmap

btnZoeken

BackgroundImage

System.Drawing.Bitmap

System.Drawing.Bitmap

Bedoeling: Hier krijg je een overzicht van de persoonlijke gegevens van één bepaalde leerling met alle datums dat de leerling te laat was. Er is mogelijkheid om deze gegevens af te drukken. Procedures Object

Gebeurtenis

Doel

btnZoeken

Click

Zoekopdracht starten naar leerling

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

txtCode

TextChanged

Aanmaken van lijst

cboLeerlingen

SelectedIndexChanged

Bij leerlingen met dezelfde naam wordt dit geopend, daarna dient men een leerling te kiezen om de lijst aan te maken.

GIP 2009 – 2010 123


Implementatie Public Class frmAfdrukkenLeerlingen #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region 'Declareren over volledig formulier Dim strVoornaam, strFamilienaam As String Private Sub frmAfdrukkenLeerlingen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Opvullen met kolommen lsvLijst.Columns.Add("Datum", 100, HorizontalAlignment.Left) lsvLijst.Columns.Add("'s Morgens of 's Middags", 150, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'cboLeerlingen niet weergeven cboLeerlingen.Visible = False 'Cursor plaatsen in teksvak barcode txtCode.TabIndex = "1" End Sub Private Sub cboLeerlingen_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboLeerlingen.SelectedIndexChanged 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader Dim strKlas As String = String.Empty 'strKlas initialiseren strKlas = Split(cboLeerlingen.SelectedItem.ToString, " ")(2) 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')AND (Klas = N'" & strKlas & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader()

GIP 2009 – 2010 124


Do While dteLeerlingen.Read = True strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'txtCode opvullen txtCode.Text = strBarcode 'cboLeerlingen cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub Private Sub txtCode_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCode.TextChanged If txtCode.TextLength = "16" Then 'Leegmaken van tekstvakken txtGegevens.Text = String.Empty lsvLijst.Items.Clear() 'Declaratie van data-objecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdTeLaat As New SqlClient.SqlCommand Dim sdrTeLaat As SqlClient.SqlDataReader Dim strBarcode As String = txtCode.Text 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdTeLaat.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String 'SQL instructie opvullen in de sqlCommand strSQL = "SELECT tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, tblTeLaatLeerling.Gemeente, " strSQL &= "tblTeLaatLeerling.smorgens, tblTeLaatLeerling.smiddags, tblTeLaatLogboek.Datum, tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID, tblTeLaatLeerling.Barcode " strSQL &= "FROM tblTeLaatLeerling INNER JOIN tblTeLaatLogboek ON tblTeLaatLeerling.Barcode = tblTeLaatLogboek.Barcode " strSQL &= "WHERE (tblTeLaatLeerling.Barcode = N'" & strBarcode & "')"

GIP 2009 – 2010 125


scmdTeLaat.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try cnnTelaatkomers.Open() sdrTeLaat = scmdTeLaat.ExecuteReader Do While sdrTeLaat.Read = True Dim strOchtendOfMiddag As String 'Controleren op ochtend of middag If sdrTeLaat.Item("Ochtend").ToString = "True" Then strOchtendOfMiddag = "'s Morgens" Else strOchtendOfMiddag = "'s Middags" End If 'Controleren op vervoer Dim strVervoerInvullen As String = sdrTeLaat.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus" Case "3" strVervoerInvullen = "Fiets" Case "4" strVervoerInvullen = "Metro" Case "5" strVervoerInvullen = "Tevoet" Case "6" strVervoerInvullen = "Tram" Case "7" strVervoerInvullen = "Trein" End Select Dim Inhoud(2) As String Dim LVI As ListViewItem Inhoud(0) = sdrTeLaat.Item("Datum") Inhoud(1) = strOchtendOfMiddag Inhoud(2) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Dim strInhoudtxt As String strInhoudtxt = "Naam en Voornaam:" & vbTab & sdrTeLaat.Item("Voornaam") & " " & sdrTeLaat.Item("Familienaam") & vbCrLf strInhoudtxt &= "Klas:" & vbTab & vbTab & vbTab & sdrTeLaat.Item("Klas") & vbCrLf strInhoudtxt &= "Gemeente:" & vbTab & vbTab & sdrTeLaat.Item("Gemeente") & vbCrLf & vbCrLf strInhoudtxt &= "Telaat:" & vbCrLf strInhoudtxt &= "'s morgens" & vbTab & vbTab & sdrTeLaat.Item("smorgens") & vbCrLf strInhoudtxt &= "'s middags" & vbTab & vbTab & sdrTeLaat.Item("smiddags") & vbCrLf

GIP 2009 – 2010 126


strInhoudtxt &= "'s totaal" & vbTab & vbTab & vbTab & (sdrTeLaat.Item("smorgens") + sdrTeLaat.Item("smiddags")) txtGegevens.Text = strInhoudtxt Loop 'connectie en reader afslutien sdrTeLaat.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try If txtGegevens.Text = String.Empty Then MessageBox.Show("Leerling is niet gevonden", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Information) txtCode.Text = String.Empty End If End If End Sub Private Sub PrintPreviewDialog_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog.Load PrintPreviewDialog.WindowState = FormWindowState.Maximized End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 325

GIP 2009 – 2010 127


Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Leerling", headfont, Brushes.Black, X, Y) 'Gegevens van leerling Dim gegevensfont As Font 'Marges (X = links, y= boven) Dim X1 As Integer = 100 Dim Y1 As Integer = 100 gegevensfont = lsvLijst.Font e.Graphics.DrawString(txtGegevens.Text, gegevensfont, Brushes.Black, X1, Y1) 'Headings 'Marge bovenaan de pagina currentY = 225 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next

GIP 2009 – 2010 128


End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub Private Sub btnZoeken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoeken.Click 'Verwijderen van vorige resultaten cboLeerlingen.Items.Clear() txtCode.Text = String.Empty 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand, strNaam As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader 'Initialiseren

GIP 2009 – 2010 129


strVoornaam = InputBox("Voornaam van de leerling", "Zoeken van leerling") strFamilienaam = InputBox("Familienaam van de leerling", "Zoeken van leerling") 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strNaam = dteLeerlingen.Item("Voornaam") & " " & dteLeerlingen.Item("Familienaam") & " " & dteLeerlingen.Item("Klas") cboLeerlingen.Items.Add(strNaam) strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'Controleren van hoeveelheid antwoorden Select Case cboLeerlingen.Items.Count Case 0 MessageBox.Show("Leerling is niet gevonden", "Niet gevonden", MessageBoxButtons.OK) 'Cbo niet weergeven cboLeerlingen.Visible = False Case 1 cboLeerlingen.Text = cboLeerlingen.Items(0) txtCode.Text = strBarcode 'Cbo niet weergeven + clear cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() txtCode.Focus() Case Else 'Cbo weergeven cboLeerlingen.Visible = True cboLeerlingen.Text = "Selecteer" cboLeerlingen.Focus() End Select Catch ex As Exception MsgBox(ex.ToString) End Try End Sub End Class

GIP 2009 – 2010 130


4.3.16

frmAfdrukkenSelecteer.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar lijsten kunnen worden afgeprint met leerlingen die te laat waren. Gesorteerd met een zelf gemaakte filter.

Printscreen

Besturingselementen Object

Eigenschap

frmAfdrukkenSelecteer Text

Waarde frmAfdrukkenSelecteer

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond

chkBarcode

Icon

Icon

Text

Barcode selecteren

GIP 2009 – 2010 131


grpBarcode

Text

Barcode

lblCode

Text

Barcodenummer:

txtCode

TextAlign

Center

btnZoeken

BackgroundImage

System.Drawing.Bitmap

chkTussen

Text

Tussen datums selecteren

grpDatum

Text

Datum

lblDatum1

Text

Tussen

lblDatum2

Text

En

chkMorgenOfMiddag

Text

’s Morgens of ’s Middags selecteren

grpMorgenOfMiddag

Text

’s Morgens of ’s Middags

chkMorgen

Text

’s Morgens

chkMiddag

Text

’s Middags

chkTijdstip

Text

Tijdstip selecteren

grpTijdstip

Text

Tijdstip

lblTijd1

Text

Tussen

lblTijd2

Text

En

dteTimePicker1

Format

Time

dteTimePicker2

Format

Time

chkVervoer

Text

Vervoer selecteren

grpVervoer

Text

Vervoer selecteren

chkGemeente

Text

Gemeente selecteren

grpGemeente

Text

Gemeente selecteren

lsvLijst

View

Details

btnToevoegen

BackgroundImage

System.Drawing.Bitmap

btnVorige

BackgroundImage System.Drawing.Bitmap

btnPrinten

BackgroundImage

btnAfdrukvoorbeeld

BackgroundImage System.Drawing.Bitmap

cboLeerlingen

dteDatumPicker1 dteDatumPicker2

cboVervoer

txtGemeente

System.Drawing.Bitmap

Bedoeling: Hier kan de gebruiker een eigen filter aanmaken. Er is mogelijkheid om deze gegevens af te drukken. GIP 2009 – 2010 132


Procedures Object

Gebeurtenis

Doel

chkBarcode

Click

grpBarcode inschakelen

btnZoeken

Click

Zoekopdracht starten naar leerling

cboLeerlingen

SelectedIndexChanged

Bij leerlingen met dezelfde naam wordt dit geopend, daarna dient men een leerling te kiezen.

chkTussen

Click

grpDatum inschakelen

chkMorgenOfMiddag

Click

grpMorgenOfMiddag inschakelen

chkTijdstip

Click

grpTijdstip inschakelen

chkVervoer

Click

grpVervoer inschakelen

chkGemeente

Click

grpGemeente inschakelen

btnVorige

Click

Teruggaan naar frmAfdrukken.vb

btnPrinten

Click

Lijst afprinten

btnAfdrukvoorbeeld

Click

Afdrukvoorbeeld openen van lijst

btnToevoegen

Click

Aanmaken van lijst

Implementatie Public Class frmAfdrukkenSelecteer #Region "Print related declarations" Protected WithEvents pd As Printing.PrintDocument 'used by Print sub Protected Ratio As Single = 0, CurrRow As Integer = 0 #End Region Private Sub chkTussen_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTussen.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpDatum.Enabled = True Then grpDatum.Enabled = False

GIP 2009 – 2010 133


Else grpDatum.Enabled = True End If End Sub Private Sub chkTijdstip_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTijdstip.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpTijdstip.Enabled = True Then grpTijdstip.Enabled = False Else grpTijdstip.Enabled = True End If End Sub Private Sub chkMorgenOfMiddag_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMorgenOfMiddag.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpMorgenOfMiddag.Enabled = True Then grpMorgenOfMiddag.Enabled = False Else grpMorgenOfMiddag.Enabled = True End If End Sub Private Sub chkVervoer_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkVervoer.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpVervoer.Enabled = True Then grpVervoer.Enabled = False Else grpVervoer.Enabled = True cboVervoer.Focus() End If End Sub Private Sub chkBarcode_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkBarcode.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpBarcode.Enabled = True Then grpBarcode.Enabled = False Else grpBarcode.Enabled = True txtCode.Focus() End If End Sub Private Sub chkGemeente_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkGemeente.CheckedChanged 'Controleren op status + het omgekeerde uitvoeren If grpGemeente.Enabled = True Then

GIP 2009 – 2010 134


grpGemeente.Enabled = False Else grpGemeente.Enabled = True txtGemeente.Focus() End If End Sub Private Sub btnZoeken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoeken.Click 'Verwijderen van vorige resultaten cboLeerlingen.Items.Clear() txtCode.Text = String.Empty 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand, strNaam As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader Dim strVoornaam, strFamilienaam As String 'Initialiseren strVoornaam = InputBox("Voornaam van de leerling", "Zoeken van leerling") strFamilienaam = InputBox("Familienaam van de leerling", "Zoeken van leerling") 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strNaam = dteLeerlingen.Item("Voornaam") & " " & dteLeerlingen.Item("Familienaam") & " " & dteLeerlingen.Item("Klas") cboLeerlingen.Items.Add(strNaam) strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close()

GIP 2009 – 2010 135


'Controleren van hoeveelheid antwoorden Select Case cboLeerlingen.Items.Count Case 0 MessageBox.Show("Leerling is niet gevonden", "Niet gevonden", MessageBoxButtons.OK) 'Cbo niet weergeven cboLeerlingen.Visible = False Case 1 cboLeerlingen.Text = cboLeerlingen.Items(0) txtCode.Text = strBarcode 'Cbo niet weergeven + clear cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() txtCode.Focus() Case Else 'Cbo weergeven cboLeerlingen.Visible = True cboLeerlingen.Text = "Selecteer" cboLeerlingen.Focus() End Select Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub frmAfdrukkenSelecteer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Kolommen toevoegen lsvLijst.Columns.Add("Datum", 70, HorizontalAlignment.Left) lsvLijst.Columns.Add("Naam en Voornaam", 175, HorizontalAlignment.Left) lsvLijst.Columns.Add("Klas", 50, HorizontalAlignment.Left) lsvLijst.Columns.Add("'s Morgens of 's Middags", 150, HorizontalAlignment.Left) lsvLijst.Columns.Add("Gemeente", 85, HorizontalAlignment.Left) lsvLijst.Columns.Add("Tijd", 60, HorizontalAlignment.Left) lsvLijst.Columns.Add("Vervoer", 100, HorizontalAlignment.Left) 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdVervoer As New SqlClient.SqlCommand Dim dteVervoer As SqlClient.SqlDataReader Dim strCommand As String 'cboLeerlingen niet weergeven cboLeerlingen.Visible = False 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdVervoer.Connection = cnnLaatkomers strCommand = "SELECT VervoerID, Vervoer FROM gebruiker.tblTeLaatVervoer"

GIP 2009 – 2010 136


scmdVervoer.CommandText = strCommand Try 'Lezen van reader cnnLaatkomers.Open() dteVervoer = scmdVervoer.ExecuteReader Do While dteVervoer.Read = True cboVervoer.Items.Add(dteVervoer.Item("Vervoer")) Loop 'Connection sluiten cnnLaatkomers.Close() Catch ex As Exception MsgBox(ex) End Try End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'strings aanmaken Dim strBarcode, strMorgen, strMiddag, strVervoer, strGemeente As String strBarcode = String.Empty 'Declaratie van dataobjecten Dim cnnTelaatkomers As New SqlClient.SqlConnection Dim scmdLeerlingen As New SqlClient.SqlCommand Dim sdrLeerlingen As SqlClient.SqlDataReader 'initialisatie cnnTelaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers scmdLeerlingen.Connection = cnnTelaatkomers 'Opmaak van SQL instructie Dim strSQL As String Dim dteDatumDag1 As String = dteDatumPicker1.Value.Day Dim dteDatumMaand1 As String = dteDatumPicker1.Value.Month Dim dteDatumJaar1 As String = dteDatumPicker1.Value.Year Dim dteDatumVandaag1 As String = dteDatumJaar1 & "-" & dteDatumMaand1 & "-" & dteDatumDag1 Dim dteDatumDag2 As String = dteDatumPicker2.Value.Day Dim dteDatumMaand2 As String = dteDatumPicker2.Value.Month Dim dteDatumJaar2 As String = dteDatumPicker2.Value.Year Dim dteDatumVandaag2 As String = dteDatumJaar2 & "-" & dteDatumMaand2 & "-" & dteDatumDag2 'SQL instructie opvullen in de sqlCommand strSQL = "SELECT tblTeLaatLogboek.Datum, tblTeLaatLogboek.Tijd, tblTeLaatLeerling.Voornaam, tblTeLaatLeerling.Familienaam, tblTeLaatLeerling.Klas, " strSQL &= "tblTeLaatLeerling.Gemeente, tblTeLaatLogboek.Ochtend, tblTeLaatLogboek.Middag, tblTeLaatLogboek.VervoerID " strSQL &= "FROM tblTeLaatLogboek INNER JOIN "

GIP 2009 – 2010 137


strSQL &= "tblTeLaatLeerling ON tblTeLaatLogboek.Barcode = tblTeLaatLeerling.Barcode " 'Controleren + opvullen If chkBarcode.Checked = True Then strBarcode = txtCode.Text If strBarcode.Length = "16" And IsNumeric(strBarcode) Then strSQL &= "WHERE (tblTeLaatLogboek.Barcode = N'" & strBarcode & "') " Else MessageBox.Show("Foutieve ingave bij barcode", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) chkBarcode.Checked = False txtCode.Text = String.Empty Exit Sub End If End If 'controleren + opvullen If chkTussen.Checked = True Then If chkBarcode.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.Datum >= CONVERT(DATETIME, '" & dteDatumVandaag1 & "', 102) AND tblTeLaatLogboek.Datum <= CONVERT(DATETIME, " strSQL &= "'" & dteDatumVandaag2 & "', 102)) " Else strSQL &= "WHERE (tblTeLaatLogboek.Datum >= CONVERT(DATETIME, '" & dteDatumVandaag1 & "', 102) AND tblTeLaatLogboek.Datum <= CONVERT(DATETIME, " strSQL &= "'" & dteDatumVandaag2 & "', 102)) " End If End If 'Controleren + opvullen If chkTijdstip.Checked = True Then If chkBarcode.Checked = True Then strSQL &= "AND (Tijd >= '" & dteTimePicker1.Value.ToShortTimeString & "') AND dteTimePicker2.Value.ToShortTimeString & "')" Else If chkTussen.Checked = True Then strSQL &= "AND (Tijd >= '" & dteTimePicker1.Value.ToShortTimeString & "') AND dteTimePicker2.Value.ToShortTimeString & "')" Else strSQL &= "WHERE (Tijd >= '" dteTimePicker1.Value.ToShortTimeString & "') AND dteTimePicker2.Value.ToShortTimeString & "')" End If End If End If 'Controleren + opvullen If chkMorgenOfMiddag.Checked = True Then

GIP 2009 – 2010 138

(Tijd <= '" &

(Tijd <= '" & & (Tijd <= '" &


If chkMorgen.Checked = True Then strMorgen = "1" Else strMorgen = "0" End If If chkMiddag.Checked = True Then strMiddag = "1" Else strMiddag = "0" End If If chkMorgen.Checked = True And chkMiddag.Checked = True Then MessageBox.Show("Foutieve ingave bij selectie 's morgens of 's middags", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) chkMorgen.Checked = False chkMiddag.Checked = False Exit Sub End If If chkMorgen.Checked = False And chkMiddag.Checked = False Then MessageBox.Show("Foutieve ingave bij selectie 's morgens of 's middags", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) chkMorgenOfMiddag.Checked = False Exit Sub End If 'Controleren of andere al aan staan If chkBarcode.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.Ochtend = N'" & strMorgen & "') AND (tblTeLaatLogboek.Middag = N'" & strMiddag & "') " Else If chkTussen.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.Ochtend = N'" & strMorgen & "') AND (tblTeLaatLogboek.Middag = N'" & strMiddag & "') " Else If chkTijdstip.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.Ochtend = N'" & strMorgen & "') AND (tblTeLaatLogboek.Middag = N'" & strMiddag & "') " Else strSQL &= "WHERE (tblTeLaatLogboek.Ochtend = N'" & strMorgen & "') AND (tblTeLaatLogboek.Middag = N'" & strMiddag & "') " End If End If End If strSQL &= "AND (tblTeLaatLogboek.Ochtend = N'" & strMorgen & "') AND (tblTeLaatLogboek.Middag = N'" & strMiddag & "') " End If 'Controleren + opvullen If chkVervoer.Checked = True Then

GIP 2009 – 2010 139


strVervoer = cboVervoer.Text Select Case strVervoer Case "Auto" strVervoer = "1" Case "Bus" strVervoer = "2" Case "Fiets" strVervoer = "3" Case "Metro" strVervoer = "4" Case "Tevoet" strVervoer = "5" Case "Tram" strVervoer = "6" Case "Trein" strVervoer = "7" Case Else MessageBox.Show("Foutieve ingave bij vervoer", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Select If chkBarcode.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.VervoerID = " & strVervoer & ") " Else If chkTussen.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.VervoerID = " & strVervoer & ") " Else If chkTijdstip.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.VervoerID = " & strVervoer & ") " Else If chkMorgenOfMiddag.Checked = True Then strSQL &= "AND (tblTeLaatLogboek.VervoerID = " & strVervoer & ") " Else strSQL &= "WHERE (tblTeLaatLogboek.VervoerID = " & strVervoer & ") " End If End If End If End If End If 'Controleren + opvullen If chkGemeente.Checked = True Then strGemeente = txtGemeente.Text If Not strGemeente = String.Empty Then If chkBarcode.Checked = True Then strSQL &= "AND (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" Else If chkTussen.Checked = True Then

GIP 2009 – 2010 140


strSQL &= "AND (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" Else If chkTijdstip.Checked = True Then strSQL &= "AND (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" Else If chkMorgenOfMiddag.Checked = True Then strSQL &= "AND (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" Else If chkVervoer.Checked = True Then strSQL &= "AND (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" Else strSQL &= "WHERE (tblTeLaatLeerling.Gemeente = N'" & strGemeente & "')" End If End If End If End If End If Else MessageBox.Show("Foutieve ingave bij gemeente", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If End If 'SCMD opvullen met de sql code scmdLeerlingen.CommandText = strSQL 'Connectie met de database + opvragen van gegevens Try 'Leegmaken van lsvlijst lsvLijst.Items.Clear() cnnTelaatkomers.Open() sdrLeerlingen = scmdLeerlingen.ExecuteReader Do While sdrLeerlingen.Read = True 'Controleren op ochtend of middag Dim strOchtendOfMiddag As String If sdrLeerlingen.Item("Middag") = True Then strOchtendOfMiddag = "'s Middags" Else strOchtendOfMiddag = "'s Morgens" End If 'Controleren op vervoer Dim strVervoerInvullen As String = sdrLeerlingen.Item("VervoerID") Select Case strVervoerInvullen Case "1" strVervoerInvullen = "Auto" Case "2" strVervoerInvullen = "Bus"

GIP 2009 – 2010 141


Case "3" strVervoerInvullen Case "4" strVervoerInvullen Case "5" strVervoerInvullen Case "6" strVervoerInvullen Case "7" strVervoerInvullen End Select

= "Fiets" = "Metro" = "Tevoet" = "Tram" = "Trein"

'Declareren van tijd Dim dteTijd As DateTime = sdrLeerlingen.Item("Tijd") dteTijd = dteTijd.ToShortTimeString Dim Inhoud(6) As String Dim LVI As ListViewItem Inhoud(0) = sdrLeerlingen.Item("Datum") Inhoud(1) = sdrLeerlingen.Item("Voornaam") & " " & sdrLeerlingen.Item("Familienaam") Inhoud(2) = sdrLeerlingen.Item("Klas") Inhoud(3) = strOchtendOfMiddag Inhoud(4) = sdrLeerlingen.Item("Gemeente") Inhoud(5) = dteTijd Inhoud(6) = strVervoerInvullen LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) Loop 'Conroleren op inhoud If lsvLijst.Items.Count = 0 Then Dim Inhoud As String Dim LVI As ListViewItem Inhoud = "Geen leerlingen gevonden" LVI = New ListViewItem(Inhoud) lsvLijst.Items.Add(LVI) End If 'connectie en reader afslutien sdrLeerlingen.Close() cnnTelaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage Dim g As Graphics = e.Graphics Dim l As Integer = 100 'Marge van de linkerkant van de pagina Dim iCount As Integer

GIP 2009 – 2010 142


Dim f As Font = lsvLijst.Font Dim b As Brush = Brushes.Black 'Tussen de hoofdtitel en de records Dim currentY As Integer = 0 Dim maxY As Integer = 0 'Declareren van lijntjes tussen elk record Dim gap As Integer = 1 'Declareren voor de items uit de listview te halen Dim lvsi As ListViewItem.ListViewSubItem 'Declareren van kolommen Dim colLefts(lsvLijst.Columns.Count) As Integer Dim colWidths(lsvLijst.Columns.Count) As Integer Dim idx As Integer = 0 Dim ii As Integer Dim lr As RectangleF e.HasMorePages = False 'Title Dim headfont As Font 'Marges (X = links, y= boven) Dim X As Integer = 325 Dim Y As Integer = 50 headfont = New Font("Courier New", 16, FontStyle.Bold) e.Graphics.DrawString("Eigen Filter(s)", headfont, Brushes.Black, X, Y) 'Gegevens van filters Dim gegevensfont As Font 'Marges (X = links, y= boven) Dim X1 As Integer = 100 Dim Y1 As Integer = 100 gegevensfont = lsvLijst.Font 'Filters bekijken en in string plaatsen Dim strFilters As String = String.Empty strFilters = "Filter(s)" & vbCrLf & "-----------------" & vbCrLf If chkBarcode.Checked = True Then strFilters &= "Barcode: " & txtCode.Text & vbCrLf End If If chkTussen.Checked = True Then strFilters &= "Datum: " & dteDatumPicker1.Text.ToString & " - " & dteDatumPicker2.Text.ToString & vbCrLf End If If chkTijdstip.Checked = True Then strFilters &= "Tijd: " & dteTimePicker1.Text.ToString & " - " & dteTimePicker2.Text.ToString & vbCrLf End If If chkMorgenOfMiddag.Checked = True Then If chkMorgen.Checked = True Then strFilters &= "Voor- of Namiddag: Voormiddag" & vbCrLf Else strFilters &= "Voor- of Namiddag: Namiddag" & vbCrLf End If End If

GIP 2009 – 2010 143


If chkVervoer.Checked = True Then strFilters &= "Vervoer: " & cboVervoer.Text & vbCrLf End If If chkGemeente.Checked = True Then strFilters &= "Gemeente: " & txtGemeente.Text End If e.Graphics.DrawString(strFilters, gegevensfont, Brushes.Black, X1, Y1) 'Headings 'Marge bovenaan de pagina currentY = 225 For Each c In lsvLijst.Columns maxY = Math.Max(maxY, g.MeasureString(c.Text, f, c.Width).Height) colLefts(idx) = l colWidths(idx) = c.Width lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(c.Text, f, b, lr) ' print all columns including hidden columns If lr.Width > 0 Then g.DrawString(c.Text, f, b, lr) l += c.Width idx += 1 Next currentY += maxY + gap g.DrawLine(Pens.Black, 0, currentY, e.PageBounds.Width, currentY) currentY += gap 'Rows iCount = lsvLijst.Items.Count - 1 For ii = CurrRow To iCount If (currentY + maxY + maxY) > e.PageBounds.Height - 50 Then 'jump down another line to see if this line will fit CurrRow = ii - 1 e.HasMorePages = True Exit For 'does next page End If l = 0 maxY = 0 idx = 0 For Each lvsi In lsvLijst.Items(ii).SubItems maxY = Math.Max(maxY, g.MeasureString(lvsi.Text, f, colWidths(idx)).Height) lr = New RectangleF(colLefts(idx), currentY, colWidths(idx), maxY) 'g.DrawString(lvsi.Text, f, b, lr) If lr.Width > 0 Then g.DrawString(lvsi.Text, f, b, lr) idx += 1 Next currentY += maxY + gap Next End Sub

GIP 2009 – 2010 144


Private Sub btnAfdrukvoorbeeld_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfdrukvoorbeeld.Click PrintPreviewDialog.Document = PrintDocument PrintPreviewDialog.ShowDialog() End Sub Private Sub btnPrinten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrinten.Click 'Keuzemogelijkheid voor pagina's PrintDialog1.AllowSomePages = True ' Show the help button. PrintDialog1.ShowHelp = True 'Document dat moet worden afgeprint PrintDialog1.Document = PrintDocument 'Afprinten door dialoogvenster Dim result As DialogResult = PrintDialog1.ShowDialog() 'Ok dan printen If (result = DialogResult.OK) Then PrintDocument.Print() End If End Sub Private Sub btnVorige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVorige.Click 'Sluiten van formulier Me.Close() 'Openen van startformulier afdrukken 'Formulier openen in container frmAfdrukken.WindowState = FormWindowState.Maximized frmAfdrukken.MdiParent = frmBasis frmAfdrukken.Show() End Sub End Class

GIP 2009 – 2010 145


4.3.17

frmLeerlingWijzigen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar leerlingen kunnen worden gewijzigd, toegevoegd of verwijderd.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmLeerlingToevoegen

Text

Leerlingen wijzigen

BackgroundImage prjTeLaatKomers.My.Resources.Resources.achtergrond Icon

Icon

btnVeranderen

BackgroundImage System.Drawing.Bitmap

btnVerwijderen

BackgroundImage System.Drawing.Bitmap

btnToevoegen

BackgroundImage System.Drawing.Bitmap

lblStatus BarcodeLabel

Text

Barcode:

GIP 2009 – 2010 146


txtCode picNietOK

picOK

btnZoeken

BackColor

Transparent

Image

System.Drawing.Bitmap

BackColor

Transparent

Image

System.Drawing.Bitmap

BackgroundImage System.Drawing.Bitmap

cboLeerlingen grpInformatie

Text

Leerling informatie

VoornaamLabel

Text

Voornaam:

FamilienaamLabel

Text

Familienaam:

KlasLabel

Text

Klas:

GemeenteLabel

Text

Gemeente:

TotaalTeLaatLabel

Text

Totaal te laat:

AantalvrStrafstudieLabel

Text

Aantal voor ochtend:

AantalvrOchtendLabel

Text

Aantal voor middag:

TotaalOchtendLabel

Text

Totaal te laat ochtend:

TotaalMiddagLabel

Text

Totaal te laat middag:

txtVoornaam txtFamilienaam txtKlas txtGemeente txtTotaalTeLaat txtOchtend txtMiddag txtTotaalOchtend txtTotaalMiddag btnWijzigen

  

Text

Wijzigen Verwijderen Toevoegen

Bedoeling: In dit formulier kan de gebruiker alle gegevens van de leerling wijzigen, verwijderen of toevoegen. Procedures GIP 2009 – 2010 147


Object

Gebeurtenis

Doel

btnVeranderen

Click

Gegevens aanpassen met de procedure

btnVerwijderen

Click

Gegevens aanpassen met de procedure

btnToevoegen

Click

Gegevens aanpassen met de procedure

btnZoeken

Click

Zoekopdracht starten naar leerling

cboLeerlingen

SelectedIndexChanged

Bij leerlingen met dezelfde naam wordt dit geopend, daarna dient men een leerling te kiezen om de lijst aan te maken.

btnWijzigen

Click

Gegevens aanpassen, toevoegen of verwijderen

Implementatie Public Class frmLeerlingWijzigen 'Declareren over geheel formulier Dim strBarcode As String = String.Empty Dim strVoornaam, strFamilienaam As String Private Sub txtCode_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCode.TextChanged If txtCode.TextLength = "16" Then Try 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdLeerling As New SqlClient.SqlCommand Dim scmdBarcode As New SqlClient.SqlCommand Dim strSQL As String = String.Empty Dim strSQLB As String = String.Empty Dim dteLeerling As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers If Not IsNumeric(txtCode.Text) Then MessageBox.Show("Foutieve ingave", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error)

GIP 2009 – 2010 148


Exit Sub End If If lblStatus.Text = "Leerling toevoegen" Then 'Declareren van aantal Dim intAantal As Integer 'dte initialiseren scmdBarcode.Connection = cnnLaatkomers strSQLB = "SELECT COUNT(Barcode) AS Aantal " strSQLB &= "FROM tblTeLaatLeerling " strSQLB &= "GROUP BY Barcode " strSQLB &= "HAVING (Barcode = N'" & txtCode.Text & "')" scmdBarcode.CommandText = strSQLB 'Connectie openen + uitvoer cnnLaatkomers.Open() intAantal = scmdBarcode.ExecuteScalar cnnLaatkomers.Close() 'Actie bij geen barcodes gevonden + omgekeerd If intAantal = 0 Then picOK.Visible = True picNietOK.Visible = False btnWijzigen.Enabled = True Exit Sub Else picOK.Visible = False picNietOK.Visible = True btnWijzigen.Enabled = False Exit Sub End If End If 'Barcode toewijzen strBarcode = txtCode.Text 'Verwijderen van vorige resultaten txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty 'Leerlingen invullen Dim strLeerling As String = txtCode.Text If strLeerling = String.Empty Then

GIP 2009 – 2010 149


MessageBox.Show("U dient eerst een barcode in te geven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If 'dte initialiseren scmdLeerling.Connection = cnnLaatkomers strSQL = "SELECT tblTeLaatLeerling.* " strSQL &= "FROM tblTeLaatLeerling " strSQL &= "WHERE (Barcode = N'" & strBarcode & "')" scmdLeerling.CommandText = strSQL 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerling = scmdLeerling.ExecuteReader Do While dteLeerling.Read 'Toevoegen txtVoornaam.Text = dteLeerling.Item("Voornaam") txtFamilienaam.Text = dteLeerling.Item("Familienaam") txtKlas.Text = dteLeerling.Item("Klas") txtGemeente.Text = dteLeerling.Item("Gemeente") txtTotaalTeLaat.Text = dteLeerling.Item("TotaalTeLaat") txtMiddag.Text = dteLeerling.Item("AantalvrOchtend") txtOchtend.Text = dteLeerling.Item("AantalvrMiddag") txtMiddag.Text = dteLeerling.Item("AantalvrOchtend") txtTotaalOchtend.Text = dteLeerling.Item("smorgens") txtTotaalMiddag.Text = dteLeerling.Item("smiddags") Loop 'Connectie sluiten cnnLaatkomers.Close() If txtFamilienaam.Text = String.Empty Then MessageBox.Show("Leerling is niet gevonden", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Information) txtCode.Text = String.Empty Exit Sub End If 'Knop wijzigen zichtbaar btnWijzigen.Enabled = True Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Else 'Geen 16 tekens picNietOK.Visible = False picOK.Visible = False

GIP 2009 – 2010 150


btnWijzigen.Enabled = False End If End Sub Private Sub btnWijzigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWijzigen.Click Select Case lblStatus.Text Case "Leerling wijzigen" 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdWijzigen As New SqlClient.SqlCommand Dim strCommand As String Try 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdWijzigen.Connection = cnnLaatkomers strCommand = "UPDATE tblTeLaatLeerling " strCommand &= "SET Voornaam = N'" & txtVoornaam.Text & "', Familienaam = N'" & txtFamilienaam.Text & "', Klas = N'" & txtKlas.Text & "', Gemeente = N'" & txtGemeente.Text & "', TotaalTeLaat = " & txtTotaalTeLaat.Text & ", AantalvrMiddag = " & txtOchtend.Text & ", AantalvrOchtend = " & txtMiddag.Text strCommand &= " ,smorgens = " & txtTotaalOchtend.Text & ", smiddags = " & txtTotaalMiddag.Text & " " strCommand &= "WHERE (Barcode = N'" & strBarcode & "')" scmdWijzigen.CommandText = strCommand 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdWijzigen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty txtCode.Focus() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try Case "Leerling verwijderen"

GIP 2009 – 2010 151


'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdLeerling As New SqlClient.SqlCommand Dim strSQL As String = String.Empty 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdLeerling.Connection = cnnLaatkomers strSQL = "DELETE FROM tblTeLaatLeerling " strSQL &= "WHERE (Barcode = N'" & strBarcode & "')" scmdLeerling.CommandText = strSQL 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdLeerling.ExecuteReader() 'Connectie sluiten cnnLaatkomers.Close() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty txtCode.Focus() Case "Leerling toevoegen" 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdToevoegen As New SqlClient.SqlCommand Dim strCommand As String Try 'Tekstvakken controleren If txtCode.Text = String.Empty Then MessageBox.Show("Er werd geen barcode ingegeven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If txtVoornaam.Text = String.Empty Then MessageBox.Show("Er werd geen voornaam ingegeven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If txtFamilienaam.Text = String.Empty Then MessageBox.Show("Er werd geen familienaam ingegeven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub

GIP 2009 – 2010 152


End If If txtKlas.Text = String.Empty Then MessageBox.Show("Er werd geen klas ingegeven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If txtGemeente.Text = String.Empty Then MessageBox.Show("Er werd geen gemeente ingegeven", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If txtTotaalTeLaat.Text = String.Empty Then txtTotaalTeLaat.Text = "0" End If If txtTotaalMiddag.Text = String.Empty Then txtTotaalMiddag.Text = "0" End If If txtTotaalOchtend.Text = String.Empty Then txtTotaalOchtend.Text = "0" End If If txtOchtend.Text = String.Empty Then txtOchtend.Text = "0" End If If txtMiddag.Text = String.Empty Then txtMiddag.Text = "0" End If 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdToevoegen.Connection = cnnLaatkomers strCommand = "INSERT INTO tblTeLaatLeerling " strCommand &= "(Barcode, Voornaam, Familienaam, Klas, Gemeente, TotaalTeLaat, AantalvrMiddag, AantalvrOchtend, smorgens, smiddags) " strCommand &= "VALUES (N'" & txtCode.Text & " ', N'" & txtVoornaam.Text & "', N'" & txtFamilienaam.Text & "', N'" & txtKlas.Text & "', N'" & txtGemeente.Text & "', " & txtTotaalTeLaat.Text & ", " & txtTotaalMiddag.Text & ", " & txtTotaalOchtend.Text & ", " & txtOchtend.Text & ", " & txtMiddag.Text & ")" scmdToevoegen.CommandText = strCommand 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdToevoegen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty

GIP 2009 – 2010 153


txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty txtCode.Focus() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Select End Sub Private Sub frmLeerlingWijzigen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'pictures helder + omgekeerd met tekstvakken grpInformatie.Enabled = False btnZoeken.Enabled = False txtCode.Enabled = False lblStatus.Text = "Geen actie geselecteerd" picOK.Visible = False picNietOK.Visible = False End Sub Private Sub cboLeerlingen_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboLeerlingen.SelectedIndexChanged 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand As String Dim strBarcode As String = String.Empty Dim dteLeerlingen As SqlClient.SqlDataReader Dim strKlas As String = String.Empty 'strKlas initialiseren strKlas = Split(cboLeerlingen.SelectedItem.ToString, " ")(2) 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')AND (Klas = N'" & strKlas & "')" scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader()

GIP 2009 – 2010 154


Do While dteLeerlingen.Read = True strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'txtCode opvullen txtCode.Text = strBarcode 'cboLeerlingen cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnZoeken_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoeken.Click 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdOpvragen As New SqlClient.SqlCommand Dim strCommand, strNaam As String Dim dteLeerlingen As SqlClient.SqlDataReader 'Initialiseren strVoornaam = InputBox("Voornaam van de leerling", "Zoeken van leerling") strFamilienaam = InputBox("Familienaam van de leerling", "Zoeken van leerling") 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdOpvragen.Connection = cnnLaatkomers strCommand = "SELECT Voornaam, Familienaam , Klas, Barcode" strCommand &= " FROM tblTeLaatLeerling" strCommand &= " WHERE (Voornaam = N'" & strVoornaam & "') AND (Familienaam = N'" & strFamilienaam & "')"

GIP 2009 – 2010 155


scmdOpvragen.CommandText = strCommand Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteLeerlingen = scmdOpvragen.ExecuteReader() Do While dteLeerlingen.Read = True strNaam = dteLeerlingen.Item("Voornaam") & " " & dteLeerlingen.Item("Familienaam") & " " & dteLeerlingen.Item("Klas") cboLeerlingen.Items.Add(strNaam) strBarcode = dteLeerlingen.Item("Barcode") Loop 'Datareader sluiten dteLeerlingen.Close() 'Connectie sluiten cnnLaatkomers.Close() 'Controleren van hoeveelheid antwoorden Select Case cboLeerlingen.Items.Count Case 0 MessageBox.Show("Leerling is niet gevonden", "Niet gevonden", MessageBoxButtons.OK) 'Cbo niet weergeven cboLeerlingen.Visible = False Case 1 cboLeerlingen.Text = cboLeerlingen.Items(0) txtCode.Text = strBarcode 'Cbo niet weergeven + clear cboLeerlingen.Visible = False cboLeerlingen.Items.Clear() cboLeerlingen.Text = String.Empty cboLeerlingen.Text = "Selecteer" Case Else 'Cbo weergeven cboLeerlingen.Visible = True End Select Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerwijderen.Click 'pictures niet helder + omgekeerd met tekstvakken grpInformatie.Enabled = True btnZoeken.Enabled = True txtCode.Enabled = True lblStatus.Text = "Leerling verwijderen" btnWijzigen.Text = "Verwijderen" txtCode.Focus() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty

GIP 2009 – 2010 156


txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty End Sub Private Sub btnVeranderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVeranderen.Click 'pictures niet helder + omgekeerd met tekstvakken grpInformatie.Enabled = True btnZoeken.Enabled = True txtCode.Enabled = True lblStatus.Text = "Leerling wijzigen" btnWijzigen.Text = "Wijzigen" txtCode.Focus() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty End Sub Private Sub btnToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToevoegen.Click 'pictures niet helder + omgekeerd met tekstvakken grpInformatie.Enabled = True btnZoeken.Enabled = False txtCode.Enabled = True lblStatus.Text = "Leerling toevoegen" btnWijzigen.Text = "Toevoegen" txtCode.Focus() 'Verwijderen van vorige resultaten txtCode.Text = String.Empty txtVoornaam.Text = String.Empty txtFamilienaam.Text = String.Empty txtKlas.Text = String.Empty txtGemeente.Text = String.Empty txtTotaalTeLaat.Text = String.Empty txtMiddag.Text = String.Empty txtOchtend.Text = String.Empty txtMiddag.Text = String.Empty txtTotaalOchtend.Text = String.Empty txtTotaalMiddag.Text = String.Empty End Sub End Class

GIP 2009 – 2010 157


4.3.18

frmGebruikersWijzigen.vb

Project

Telaatkomers

Type

Windows applicatie

Doel

Formulier waar gebruikers kunnen worden gewijzigd, toegevoegd of verwijderd.

Printscreen

Besturingselementen Object

Eigenschap

Waarde

frmGebruikersWijzigen

Text

Gebruikers wijzigen

BackgroundImag e

prjTeLaatKomers.My.Resources.Resources.achtergro nd

Icon

Icon

BackColor

Transparent

Image

System.Drawing.Bitmap

BackColor

Transparent

Image

System.Drawing.Bitmap

picGebruikerToevoegen

picGebruikerWijzigen

GIP 2009 – 2010 158


picGebruikerVerwijderen

BackColor

Transparent

Image

System.Drawing.Bitmap

Text

Gebruiker toevoegen

BackColor

Transparent

Text

Gebruikersnaam:

BackColor

Transparent

Text

Wachtwoord:

BackColor

Transparent

Text

Wachtwoord:

BackColor

Transparent

btnOKT

Text

OK

grpGebruikersWijzigen

Text

Gebruiker wijzigen

BackColor

Transparent

Text

Gebruikersnaam:

BackColor

Transparent

Text

Wachtwoord:

BackColor

Transparent

Text

Rechten:

BackColor

Transparent

btnOKW

Text

OK

grpGebruikersVerwijdere n

Text

Gebruiker Verwijderen

BackColor

Transparent

lblGebruikersnaam2

Text

Gebruikersnaam:

BackColor

Transparent

Text

OK

BackColor

Transparent

grpGebruikersToevoegen

GebruikersnaamLabel

WachtwoordLabel

RechtenLabel

GebruikersnaamTextBox WachtwoordTextBox cboRechten

lblGebruikersnaam

lblWachtwoord

lblRechten

cboGebruikers2 WachtwoordTextBox2 cboRechten2

cboGebruikers3 btnOKV

GIP 2009 – 2010 159


Bedoeling: In dit formulier kan de gebruiker alle gegevens van de leerling wijzigen, verwijderen of toevoegen.

Procedures Object

Gebeurtenis

Doel

picGebruikerToevoegen

Click

grpGebruikersToevoegen inschakelen en gegevens laden

btnOKT

Click

Gebruiker toevoegen

picGebruikerWijzigen

Click

grpGebruikersWijzigen inschakelen en gegevens laden

btnOKW

Click

Gebruiker wijzigen

picGebruikerVerwijderen

Click

grpGebruikersVerwijderen inschakelen en gegevens laden

btnOKV

Click

Gebruiker verwijderen

Implementatie Public Class frmGebruikersWijzigen Private Sub frmGebruikersWijzigen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'grp Niet zichtbaar grpGebruikersToevoegen.Visible = False grpGebruikersVerwijderen.Visible = False grpGebruikersWijzigen.Visible = False 'cbo's invullen cboRechten.Items.Add("Gebruiker") cboRechten.Items.Add("Administrator") End Sub Private Sub picGebruikerToevoegen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picGebruikerToevoegen.Click 'grp niet zichtbaar grpGebruikersToevoegen.Visible = True grpGebruikersVerwijderen.Visible = False grpGebruikersWijzigen.Visible = False 'Tabindex plaatsen in vak GebruikersnaamTextBox.Focus() GebruikersnaamTextBox.TabIndex = 1

GIP 2009 – 2010 160


WachtwoordTextBox.TabIndex = 2 cboRechten.TabIndex = 3 End Sub Private Sub picGebruikerWijzigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picGebruikerWijzigen.Click grpGebruikersToevoegen.Visible = False grpGebruikersVerwijderen.Visible = False grpGebruikersWijzigen.Visible = True 'Tabindex plaatsen in vak cboGebruikers2.Focus() cboGebruikers2.Text = "Selecteer" cboGebruikers2.TabIndex = 1 WachtwoordTextBox2.TabIndex = 2 cboRechten2.TabIndex = 3 'Gebruikers invullen Dim strGebruikers As String 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdGebruiker As New SqlClient.SqlCommand Dim strSQL As String = String.Empty Dim dteGebruiker As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdGebruiker.Connection = cnnLaatkomers strSQL = "SELECT Gebruikersnaam, Wachtwoord, Rechten " strSQL &= "FROM tblTeLaatGebruikers " scmdGebruiker.CommandText = strSQL Try 'Connection openen + uitvoeren cnnLaatkomers.Open() dteGebruiker = scmdGebruiker.ExecuteReader cboGebruikers2.Items.Clear() Do While dteGebruiker.Read 'Strings Toevoegen strGebruikers = dteGebruiker.Item("Gebruikersnaam") cboGebruikers2.Items.Add(strGebruikers) Loop 'Connectie sluiten cnnLaatkomers.Close() 'Strings leegmaken WachtwoordTextBox2.Text = String.Empty cboRechten2.Text = String.Empty Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub

GIP 2009 – 2010 161


Private Sub picGebruikerVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles picGebruikerVerwijderen.Click grpGebruikersToevoegen.Visible = False grpGebruikersVerwijderen.Visible = True grpGebruikersWijzigen.Visible = False 'Tabindex plaatsen in vak cboGebruikers3.Focus() cboGebruikers3.TabIndex = 1 cboGebruikers3.Text = "Selecteer" 'Gebruikers invullen Dim strGebruikers As String 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdGebruiker As New SqlClient.SqlCommand Dim strSQL As String = String.Empty Dim dteGebruiker As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdGebruiker.Connection = cnnLaatkomers strSQL = "SELECT Gebruikersnaam " strSQL &= "FROM tblTeLaatGebruikers " scmdGebruiker.CommandText = strSQL 'Connection openen + uitvoeren Try cnnLaatkomers.Open() dteGebruiker = scmdGebruiker.ExecuteReader cboGebruikers3.Items.Clear() Do While dteGebruiker.Read 'Strings Toevoegen strGebruikers = dteGebruiker.Item("Gebruikersnaam") cboGebruikers3.Items.Add(strGebruikers) Loop 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnOKT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOKT.Click 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdToevoegen As New SqlClient.SqlCommand Dim strCommand As String

GIP 2009 – 2010 162


Dim strGebruiker, strWachtwoord, strRechten As String Try 'Strings initialiseren strGebruiker = GebruikersnaamTextBox.Text strWachtwoord = WachtwoordTextBox.Text strRechten = cboRechten.Text If strGebruiker = String.Empty Then MessageBox.Show("Geen geldig gebruikersnaam gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If strWachtwoord = String.Empty Then MessageBox.Show("Geen geldig wachtwoord gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If Select Case strRechten Case "Administrator" strRechten = 1 Case "Gebruiker" strRechten = 2 Case Else MessageBox.Show("Geen geldig recht gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Select 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdToevoegen.Connection = cnnLaatkomers strCommand = "INSERT INTO gebruiker.tblTeLaatGebruikers " strCommand &= "(Gebruikersnaam, Wachtwoord, Rechten) " strCommand &= "VALUES (N'" & strGebruiker & "', N'" & strWachtwoord & "', " & strRechten & ") " scmdToevoegen.CommandText = strCommand 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdToevoegen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Tekstvakken leegmaken GebruikersnaamTextBox.Text = String.Empty WachtwoordTextBox.Text = String.Empty cboRechten.Text = String.Empty Catch ex As Exception

GIP 2009 – 2010 163


MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub cboGebruikers2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboGebruikers2.SelectedIndexChanged 'Gebruikers invullen Dim strGebruikers As String = String.Empty Dim strWachtwoord As String = String.Empty Dim strRechten As String = String.Empty 'Gebruiker initialiseren strGebruikers = cboGebruikers2.Text 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdGebruiker As New SqlClient.SqlCommand Dim strSQL As String = String.Empty Dim dteGebruiker As SqlClient.SqlDataReader 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren scmdGebruiker.Connection = cnnLaatkomers strSQL = "SELECT Gebruikersnaam, Wachtwoord, Rechten " strSQL &= "FROM tblTeLaatGebruikers " strSQL &= "WHERE (Gebruikersnaam = N'" & strGebruikers & "')" scmdGebruiker.CommandText = strSQL 'Connection openen + uitvoeren Try cnnLaatkomers.Open() dteGebruiker = scmdGebruiker.ExecuteReader Do While dteGebruiker.Read 'Strings Toevoegen strWachtwoord = dteGebruiker.Item("Wachtwoord") strRechten = dteGebruiker.Item("Rechten") Loop If strRechten = "1" Then strRechten = "Administrator" Else strRechten = "Gebruiker" End If 'Strings toevoegen in tekstvak WachtwoordTextBox2.Text = strWachtwoord cboRechten2.Items.Clear() cboRechten2.Items.Add("Administrator") cboRechten2.Items.Add("Gebruiker") cboRechten2.Text = strRechten

GIP 2009 – 2010 164


'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnOKW_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOKW.Click 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdWijzigen As New SqlClient.SqlCommand Dim strCommand As String Dim strGebruiker, strWachtwoord, strRechten As String Try 'Strings initialiseren strGebruiker = cboGebruikers2.Text strWachtwoord = WachtwoordTextBox2.Text strRechten = cboRechten2.Text If strGebruiker = String.Empty Then MessageBox.Show("Geen geldig gebruikersnaam gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If If strWachtwoord = String.Empty Then MessageBox.Show("Geen geldig wachtwoord gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If Select Case strRechten Case "Administrator" strRechten = 1 Case "Gebruiker" strRechten = 2 Case Else MessageBox.Show("Geen geldig recht gekozen", "Fout", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End Select 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dteVervoer initialiseren scmdWijzigen.Connection = cnnLaatkomers strCommand = "UPDATE tblTeLaatGebruikers " strCommand &= "SET Gebruikersnaam = N'" & strGebruiker & "', Wachtwoord = N'" & strWachtwoord & "', Rechten = " & strRechten & " " strCommand &= "WHERE (Gebruikersnaam = N'" & strGebruiker & "') "

GIP 2009 – 2010 165


scmdWijzigen.CommandText = strCommand 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdWijzigen.ExecuteNonQuery() 'Connectie sluiten cnnLaatkomers.Close() 'Tekstvakken leegmaken cboGebruikers2.Text = "Selecteer" WachtwoordTextBox2.Text = String.Empty cboRechten2.Text = String.Empty Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub Private Sub btnOKV_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOKV.Click 'Declareren Dim strGebruiker As String = cboGebruikers3.Text 'declareren van sql Dim cnnLaatkomers As New SqlClient.SqlConnection Dim scmdGebruiker As New SqlClient.SqlCommand Dim strSQL As String = String.Empty 'Cnn initialiseren cnnLaatkomers.ConnectionString = My.Settings.sjzTeLaatkomers 'dte initialiseren Try scmdGebruiker.Connection = cnnLaatkomers strSQL = "DELETE FROM tblTeLaatGebruikers " strSQL &= "WHERE (Gebruikersnaam = N'" & strGebruiker & "') " scmdGebruiker.CommandText = strSQL 'Connection openen + uitvoeren cnnLaatkomers.Open() scmdGebruiker.ExecuteReader() cboGebruikers3.Text = "Selecteer" cboGebruikers3.Items.Remove(strGebruiker) 'Connectie sluiten cnnLaatkomers.Close() Catch ex As Exception MessageBox.Show(ex.Message, "Databasefout") End Try End Sub End Class

GIP 2009 – 2010 166


5 Richtingspecifiek Engels 5.1 5.1.1 A) A1)

Software/hardware suppliers in the UK List of 10 software/hardware suppliers Software S.P.R.

URL: http://www.spr.co.uk Email: info@spr.co.uk SPR Computer Consultants The Atrium Business Centre North Caldeen Road Coatbridge,ML5 4EF, U.K. Tel: 0845 123 52 84 Fax: 0845 127 58 69 A2)

The computer shop

URL: http://nbs-thecomputershop.com/default.aspx Email: info@nbs-thecomputershop.com Northern Binary Systems 15 Hencotes Hexham Northumberland NE46 2EQ Tel: 0871 0500866 (Office) 0905 0533008 (Technical Support) 50p/Minute

GIP 2009 – 2010 167


A3)

Bizezia

URL: http://bizezia.com/Home Bizezia Ltd CityCal House 12 Bridge Road Business Park Bridge Road, Haywards Heath West Sussex RH16 1TX United Kingdom Tel: +44 (0)870 389 1420 Fax: +44 (0)870 389 1425 A4)

Crucial software

Email: ussales@crucialsoftware.com URL: http://www.crucialsoftware.com 25 Smith Street, Suite 305 Nanuet, NY 10954 Phone: 877-666-5766 • 845-624-7785 Fax: 845-624-7765 A5)

Salford software

Email: enquiries@salfordsoftware.co.uk URL: http://www.salfordsoftware.co.uk Salford Software Ltd. Lancastrian Office Centre Talbot Road Old Trafford M32 0FP Phone: +44 (0)845 413 0820 Fax: +44 (0)845 413 0821

GIP 2009 – 2010 168


B)

Hardware

B1)

Techstore

URL: http://www.techstore.co.uk Tel: 0871 230 7078 B2)

EC computers

URL: http://www.eccomputers.co.uk EC Computers Ltd The Laurels Stone, Berkeley Gloucestershire GL13 9LD Tel: 0845 070 8010 Fax: 0845 017 8810 B3)

Sakernet

Url: http://www.sakernet.com Butts Business Centre Fowlmere Royston Herts SG8 7SL Tel: 01763 208247 Fax: 01763 209019 B4)

Bluegoose Systems

Url: http://www.bluegoosesystems.co.uk 4 Whitebridge Road Onchan Isle of Man IM3 4HR United Kingdom Tel: 01624 671719 Fax: 01624 620179 GIP 2009 – 2010 169


B5)

Gasteiner

Url: http://www.gasteiner.com 18 - 22 Sterling Way London United Kingdom N18 2XZ Tel: +44 (0) 2083456000

GIP 2009 – 2010 170


5.1.2 A1)

Letter of enquiry Letter 1 Diksmuidse Heerweg 284 Sint – Andries 8200 Bruges Belgium 22 October 2009

Northern Binary Systems 15 Hencotes Hexham Northumberland NE46 2EQ Dear Sir or Madam When I was surfing on the internet, looking for Microsoft Office, I came across your site. We have a large company and we are interested in installing Office on all our computers. But we could not find any prices or information about the software on your website. We would appreciate if you could send us your latest catalogues and price lists, including details of quantity discounts. We are looking forward to hearing from you.

Yours faithfully

Karel Stevens Managing Director

GIP 2009 – 2010 171


A2)

Letter 2 Diksmuidse Heerweg 284 Sint – Andries 8200 Bruges Belgium 22 October 2009

Gasteiner 18 - 22 Sterling Way London United Kingdom N18 2XZ Dear Sir or Madam My name is Karel Stevens, I study ICT at the Sint-Jozefinstituut in Bruges. I was looking for Hardware/software providers on the web for an assignment and I am interested in the technologies your company provides. Is it possible to send me a catalogue with all your latest products including prices and other useful information? Yours faithfully

Karel Stevens

GIP 2009 – 2010 172


5.1.3

Compare 2 websites

Website 1: http://nbs-thecomputershop.com/default.aspx Website 2: http://www.gasteiner.com/ A)

What is good about them?

Website 1: There is an online store, with both hardware and software. You can easily find details about the products such as price and other product details. Customers are able to post reviews. The website is also very up to date, the newest range of technology is available. Website 2: There is a wide range of products which you can buy in the online store. Both hardware components and software products are available. Visitors can easily navigate through the site. B)

What kind of information do they provide?

Website 1: They give a lot of information about themselves and about the products that are for sale. They also explain how they can help you fix your IT problems as fast and most effective as possible. Website 2: They do not provide information about themselves, but about the products that they sell. They also give information about what services are available to fix any PC problems.

GIP 2009 – 2010 173


5.2 A1)

English website Index.html with home.html

Welcome This website is made by Karel Stevens - Student 6IB as part of the GIP. to get more information about me click here. This website is made for people who don't know anything about Apple, here they get a quick overview of the different products that are available in the stores and the history of Apple Inc. To ask questions or discuss certain products you can always go to the forum.

GIP 2009 – 2010 174


A2)

Products.html

Products Desktops iMac

An all-in-one computer, so everything is built in the monitor (hard drive, speakers, microphone, ...). These computers are often used for video-editing and movie productions.

Mac mini

This is the smallest and cheapest Mac, meant for people who want to get to know Mac OS X. Monitor, keyboard and mouse are not included in the price.

GIP 2009 – 2010 175


Mac pro

This is the strongest type of all the Macs, this Mac is the most expensive but also the faster computer that is produced.

Laptops MacBook

A laptop which is meant for the normal customers, it’s a relatively cheap laptop.

MacBook Air

This laptop is pretty much the same as the MacBook but it is specially made to get carried around, so it is very light and very thin.

MacBook Pro

This laptop is meant for professional applications, this is a stronger but more expensive version of the MacBook.

iPod's The iPod, launched on October 23, 2001, is a collective term for a series of digital music players. All models (except for the iPod Shuffle) have a monitor for displaying information to the user and to let the user scroll through the menus. With all the iPods that have a screen, there is the possibility of playing movies, showing pictures, playing games, ... . iPod Classic

The iPod Classic is the basic type of iPods and is the largest of them all. It’s a heavier, but has a larger storage capacity than the rest.

iPod Nano

The Nano is a smaller version of the iPod Classic, is lighter, but also has a smaller storage capacity.

iPod Shuffle

The smallest iPod available, this iPod has no screen and is also a lot cheaper. Shuffles can also be used as a memory stick using the built-in USB connector.

iPod Touch

This iPod is with a touch screen and Wi-Fi for internet access, thus providing the user the ability to personalize his iPod by downloading all sorts of applications.

iPhone

GIP 2009 – 2010 176


iPhone

The iPhone is a mobile phone from Apple, it's a combination of an iPod, cell phone and PDA, equipped with a touch screen.

iPad iPad

The iPad is a portable multimedia device, a computer with a multi-touch screen. This device is designed for reading books, listening to music, watching movies, playing video games, emailing and internet browsing.

Accessoires Of course there is the possibility to buy many accessories for the products you buy, for a list of these purchases, I refer to the online Apple store. click here: http://store.apple.com/nl

GIP 2009 – 2010 177


A3)

History.html

History Here you can find a list, which gives a quick view of the evolution of Apple.

1976 - 1980

- Apple I: handmade motherboard with CPU, RAM and basic textual-video chips - Apple II: colour graphics - Xerox provided Apple with graphical user interfaces

1981 - 1985

- Apple Lisa: first personal computer with a GUI - the Macintosh: advanced graphics capabilities

GIP 2009 – 2010 178


1986 - 1993

- The PowerBook: modern form and ergonomic layout of the laptop computer

1994 - 1997

- Power Macintosh: the first of many Apple computers which used IBM's PowerPC processors. - Apple would join Microsoft to release new versions of Microsoft Office for the Macintosh. - Apple introduced the Apple Store

1998 - 2005

- introduction of the iMac: a new all-in-one computer - a lot of changes in the Operating System

2005 - 2007

- Intel-based computers: Power Mac, iBook, PowerBook, ... - Boot camp to help user install Windows alongside Mac OS X

2007 - now

- introductions of the iPhone, iPod Touch, iPad, Apple TV, ... .

GIP 2009 – 2010 179


A4)

Contact.html

Contact about me Hello, My name is Karel Stevens, I am a last year student IT from the Sint-Jozefinstitute in Bruges. I made this site as a part of the GIP. I am 17 years old, I live in Sint-Andries and in my free time I go swimming, play basketball, go out with friends, play games, ... .

GIP 2009 – 2010 180


Interesting links

http://www.apple.nl http://www.macfan.nl http://macwereld.nl http://ukmac.net http://www.macgamefiles.com 

A5)

...

forum

GIP 2009 – 2010 181


5.3

Besluit

In het begin van het jaar hoopte ik met de GIP volgende doelstellingen te bereiken:

Leren te plannen Leren om steeds verder te bouwen op de kennis die ik verwierf Leren met de stage hoe het bedrijfsleven er aan toe ging Een duidelijk zicht te krijgen over welke studierichting ik later zou volgen. Aan deze doelstellingen heb ik grotendeels voldaan. Ik heb nu een beter zicht op het bedrijfsleven en over de studierichting die ik later wil volgen. Toch heb ik nog geen definitieve beslissing genomen. De proef heeft mij ook veel geleerd om op voorhand te werken. De stage zelf vond ik een zeer toffe en leerrijke ervaring. Ik heb veel meer praktische dingen geleerd door ze zelf te doen, dan door ze te bestuderen in de cursus. Ik heb veel voorkomende problemen leren oplossen in het bedrijf, zoals het vermaken van het netwerk door kapotte kabels te vervangen. Als suggestie voor een verbetering voor volgende jaren stel ik voor om leerkrachten dikwijls te laten herhalen wanneer leerlingen precies hun opdracht moeten ingeven. Hoewel sommige leerkrachten zich hieraan zeker voldoen, was er bij bepaalde vakken soms enige verwarring. Door de data dikwijls te herhalen kan dit vermeden worden.

GIP 2009 – 2010 182


Bijlagen 5.4

Handleiding Telaatkomers

Inhoudsopgave INLEIDING ....................................................................................................................................................... 184 START

....................................................................................................................................................... 184

INLOGGEN ....................................................................................................................................................... 184 UITLOGGEN ....................................................................................................................................................... 184 AFSLUITEN ....................................................................................................................................................... 184 ADMINISTRATIE.............................................................................................................................................. 185 INLEIDING ....................................................................................................................................................... 185 SCANNEN ....................................................................................................................................................... 185 SCANNEN VOOR 8 UUR.......................................................................................................................................... 185 LIJST AANMAKEN ................................................................................................................................................. 186 Voor ochtend .................................................................................................................................................. 186 Voor middag ................................................................................................................................................... 187 Strafstudies ..................................................................................................................................................... 188 AFDRUKKEN ................................................................................................................................................... 189 LEERLING-INFORMATIE .................................................................................................................................. 190 GEBRUIKERS ................................................................................................................................................... 190


5.4.1

Inleiding

Deze handleiding bevat informatie over het gebruik van het project prjTelaatKomers. De handleiding is onderverdeeld in dezelfde wijze als de menubalk in het project. A) A1)

Start Inloggen Bij het opstarten van het programma krijgt u een laadscherm te zien (foto links). Dit scherm toont de laadstatus van het programma.

Het volgende scherm is het inlogscherm. Hier kunt u inloggen met uw gebruikersnaam en wachtwoord, of het programma afsluiten.

A2)

Uitloggen

Door dit menu – item aan te klikken logt u de huidige gebruiker uit en krijgt u opnieuw het inlogscherm te zien. A3)

Afsluiten

Door dit menu – item aan te klikken sluit u heel het programma af, de aangemelde gebruiker wordt ook automatisch afgemeld.

GIP 2009 – 2010 184


5.4.2 A)

Administratie Inleiding

Onder administratie vindt u de functies om leerlingen in te scannen en lijsten te maken van bv. Alle leerlingen die deze week naar de strafstudie zullen moeten komen omdat ze teveel keer te laat op school aangekomen zijn.

B)

Scannen Wanneer een leerling te laat gekomen is wordt hij/zij ingescand en de barcode van die leerling(e) word weergegeven. Eventuele reden kan opgegeven worden, samen met het vervoer, een opmerking, enz. . Druk op het plusje om alles op te slaan. Wanneer een leerling zijn kaart niet meeheeft, of deze niet meer werkt, druk dan op het vergrootglas om de naam van die leerling in te geven en deze zo te zoeken.

C)

Scannen voor 8 uur De bedoeling van dit scherm is het in scannen van de leerlingen die elke dag voor 8uur op school moeten zijn. Wanneer deze leerling niet op tijd is wordt hij toegevoegd aan een lijst met leerlingen die strafstudie moeten volgen (zie Lijst aanmaken > Strafstudies). Druk op het vergrootglas om leerling op naam te zoeken. Druk op het plusje om op te slaan.

GIP 2009 – 2010 185


5.4.3 A)

Lijst aanmaken Voor ochtend

Klik op nieuwe lijst aanmaken ( ) om een lijst aan te maken met alle leerlingen die volgende week voor 8uur op school moeten zijn. Door op de printer te klikken drukt u deze lijst af en via de printer met het vergrootglas krijgt u een afdrukvoorbeeld.

Door op Wis lijst ( ) te klikken wist u deze lijst in de databank! Deze handeling kan niet ongedaan gemaakt worden!

Elke week op donderdag moet de lijst worden aangemaakt. Na het afprinten dient deze lijst te worden gewist.

GIP 2009 – 2010 186


B)

Voor middag

Klik op nieuwe lijst aanmaken ( ) om een lijst aan te maken met alle leerlingen die op school moeten blijven over de middag. Door op de printer te klikken drukt u deze lijst af en via de printer met het vergrootglas krijgt u een afdrukvoorbeeld.

Door op Wis lijst ( ) te klikken wist u deze lijst in de databank! Deze handeling kan niet ongedaan gemaakt worden!

Elke week op donderdag moet de lijst worden aangemaakt. Na het afprinten dient deze lijst te worden gewist.

GIP 2009 – 2010 187


C)

Strafstudies

Klik op nieuwe lijst aanmaken ( ) om een lijst aan te maken met alle leerlingen die naar de strafstudie moeten gaan. Door op de printer te klikken drukt u deze lijst af en via de printer met het vergrootglas krijgt u een afdrukvoorbeeld.

Door op Wis lijst ( ) te klikken wist u deze lijst in de databank! Deze handeling kan niet ongedaan gemaakt worden!

Elke week op vrijdag moet de lijst worden aangemaakt. Na het afprinten dient deze lijst te worden gewist.

GIP 2009 – 2010 188


5.4.4

Afdrukken Op dit scherm bepaalt u welke lijst van leerlingen die u wilt afdrukken. U heeft keuze uit lijsten van:  De hele dag o Enkel de voormiddag o Enkel de namiddag  1 bepaalde datum  Tussen 2 datums  1 specifieke leerling  Een eigen filter Bij eigen filter kunt u veel specifieker kiezen vb. een bepaalde tijd (voorbeeld van 12.30u tot 13.00u). Druk op het groene vinkje om uw keuze te bevestigen.

Alle formulieren van afdrukken zien er ongeveer zo uit. Kies indien nodig een datum om de lijst van die dag te creëren. Door op de printer te klikken drukt u deze lijst af en via de printer met het vergrootglas krijgt u een afdrukvoorbeeld. Druk op het groene pijltje om naar het startscherm van afdrukken terug te keren.

GIP 2009 – 2010 189


5.4.5

Leerling-informatie Dit formulier geeft de mogelijkheid om de gegevens van een leerling te wijzigen, een leerling te verwijderen of toe te voegen. Stap 1: Kies uw bewerking:  Klik ( ) om de gegevens van een leerling te wijzigen.  Klik ( ) om een leerling en diens gegevens te verwijderen.  Klik ( ) om een leerling toe te voegen. Stap 2: Klik onderaan op de knop om de gegevens te updaten of te verwijderen

5.4.6

Gebruikers Dit formulier is enkel toegankelijk voor de mensen met administratorrechten. Hier kunt u de gegevens van een gebruiker wijzigen (naam, wachtwoord, rechten (administrator of niet)). kies uw bewerking

 Klik op om een nieuwe gebruiker te maken.  Klik op om de gegevens van een gebruiker te wijzigen  Klik op om een gebruiker te verwijderen.

GIP 2009 – 2010 190


5.5

Curriculum vittae

Curriculum Vitae PERSOONLIJKE GEGEVENS Naam: Adres: Telefoon: Gsm: E-mail: Nationaliteit: Geboorteplaats: Geboortedatum:

Karel Stevens Diksmuidse Heerweg, 8200 Sint-Andries 050 81 39 05 0477 07 42 45 Karel_stevens@hotmail.com Belg Brasschaat 24 augustus 1992

OPLEIDING

2004 - 2005

Latijn (ASO) Sint-Lodewijkscollege Magdalenastraat 8000 Brugge

2005 - 2008

Moderne wetenschappen (ASO) Sint-Lodewijkscollege Magdalenastraat 8000 Brugge

2008 - nu

Informatica – Beheer (TSO) Sint-Jozefsinstituut Zilverstraat 26 8000 Brugge

Vaardigheden Sociaal ik ben monitor bij de CM van Brugge (Kazou). Flexibel Ik kan mij goed aanpassen aan nieuwe situaties. vb.: Nieuwe werkprogramma’s, …

GIP 2009 – 2010 191


Ordelijk Ik vind orde belangrijk om snel een overzicht van zaken te kunnen maken. KENNIS Softwarepakketten (excel, word, acces, powerpoint, DreamWeaver) Software-Ontwikkeling (Visual Basic) Talenkennis: Nederlands Moedertaal Schrijven Spreken Frans Matig niet goed Engels Goed goed

Ervaring 2 weken stage in het informaticabedrijf ECG – PC Blankenberge

GIP 2009 – 2010 192


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.