Visual Basic

Middelpolder Ziekenhuis

Twee ziekenhuizen in Amersfoort zijn gefuseerd en hebben een nieuwe Service Desk afdeling nodig. Omdat de helpdesksystemen van beide ziekenhuizen niet op elkaar afgestemd zijn, zijn jullie gevraagd een nieuw systeem te ontwikkelen.
Bovenstaande tekst is zeer kort de opdrachtomschrijving van het project Middelpolder Ziekenhuis. Naast een Service Desk applicatie moesten er ook enkele andere applicaties geïnstalleerd en geconfigureerd worden en moesten enkele documenten geschreven worden over bijvoorbeeld (draadloos) netwerk beveiliging, een onderzoek over netwerkbelasting van digitale röntgenfoto’s en moesten de processen van de Dienst ICT in kaart gebracht worden.
De ontwikkelde helpdeskapplicatie is zeer simpel in gebruik. Het bevat een viertal tabbladen waar de Service Desk medewerker stap voor stap doorheen kan bladeren. Het eerste tabblad is om in te loggen, daarna kan er een klant gekozen worden, de calls van de klant ingezien, gewijzigd en toegevoegd worden en met het laatste tabblad kunnen alle open calls weergegeven worden. De applicatie maakt gebruik van een Microsoft Access database dat op een gedeelde netwerkmap op een server staat. In dezelfde map is ook een submap waarin bijlagen automatisch worden geupload als de Service Desk medewerker deze via het programma toevoegt. De applicatie is gebaseerd op de ITIL principes voor Service Desks.

Virgo B.V.

Tijdens de laatste onderwijsperiode van schooljaar 2004/2005 moest er door projectgroepen een fictief bedrijf opgestart worden. Een belangrijk onderdeel van dit project was het maken van een informatiesysteem om de administratie van een winkel te beheren. In acht weken tijd hebben we met zes projectleden het bedrijf Virgo B.V. opgezet, een computerwinkel gezeteld in de Breestraat in Leiden. Virgo verkoopt zowel computers als computeronderdelen en verleent reparatiediensten.
Om het de medewerkers van Virgo zo makkelijk mogelijk te maken, is er een ingenieus systeem ontworpen waarbij alle mogelijke administratieve handelingen via één scherm te benaderen zijn, een zogenaamde Multi Document Interface. Door te kiezen voor het juiste menu item wordt het betreffende onderdeel gelijk opgestart. De winkel bevat meerdere kassa’s, kantoren en werkplaatsen, dus is er gekozen om een Microsoft SQL server op te zetten waar alle clients verbinding mee maken. Deze SQL server bevat onder andere de productenvoorraad, reparatiestatussen, facturen en offertes, klantgegevens en enkele administratieve zaken.
Naast de opdracht om een intern informatiesysteem te maken, hebben we ook nog een website ontwikkelt. Deze website maakt gebruik van dezelfde Microsoft SQL database als de interne applicatie waardoor bezoekers informatie kunnen zien over onze producten. Daarnaast kan men gelijk bestellingen plaatsen in de vorm van een offerte, zodat de klant met de uitgeprinte zelf samengestelde offerte en/of enkel het opgeschreven offertenummer in de winkel de offerte direct om kan zetten in een factuur en de gekochte producten meteen meenemen naar huis.

SPL

Sjoerd’s Programming Language, mijn eigen poging om een scripttaal te maken. Opzich werkte het heel goed, maar omdat er al zoveel programmeertalen zijn ben ik ermee gestopt. Het ontwikkelen en implementeren van alle functies en commando’s die ik erin wilde hebben zou namelijk zoveel tijd in beslag nemen en (voor mezelf) weinig voordeel opleveren boven programmeertalen als Visual Dialogscript en Visual Basic aangezien ik die allebei goed beheers.
SPL kende twee soorten instructies, functies en commando’s. Commando’s voeren iets uit en functies geven een waarde terug van bijvoorbeeld een berekening. Onderstaande commando’s en functies konden worden gebruikt met SPL:

Commando's

messagebox [tekst]
alert [tekst]
title [nieuwe titel]
if / else / end
while / wend
goto [naam label]
exit

Functies

#chr([nummer])
#asc([teken])
#add([nummer1],[nummer2],[nummer3],{enzovoorts})
#diff([nummer1],[nummer2],[nummer3],{enzovoorts})
#multiply([nummer1],[nummer2],[nummer3],{enzovoorts})
#division([nummer1],[nummer2],[nummer3],{enzovoorts})
#substring([tekst],[begin],[einde])
#input([tekst],[titel],[standaard waarde])
#title()
#time( h – m – s)
#equal([waarde1],[waarde2])
#unequal([waarde1],[waarde2])
#not([boolean waarde])
Om te springen tussen stukken programmeercode, heb ik zogenaamde labels gebruikt. Een label is te herkennen aan een tekst dat tussen < en > staat. Variabelen kunnen worden gebruikt door voor een woord een dollarteken $ te plaatsen.
De SPL interpreter is gemaakt in Visual Basic. De reden hiervoor is dat Visual Basic beschikking heeft over arrays die ik heb gebruikt om variabelen in op te slaan. Ook is het voor Visual Basic applicaties vaak niet nodig om extra bestanden mee te leveren aan de gebruiker, waardoor de gecompliceerde SPL scripts slechts 10 KB groot zijn.
Om het voor de gebruiker makkelijk te maken én houden, is er ook een kleine IDE ontwikkelt in Visual Dialogscript. Met deze IDE kunnen bestanden geopend, gecompileerd en uitgevoerd worden zonder dat hiervoor externe commando’s ingetypt hoeven te worden.