Database Rapporten

Van 'gegevens' naar 'informatie'


Databases bevatten gegevens : namen, datums, aantallen, adressen, ... Deze gegevens worden pas bruikbaar als informatie als ze op een gemakkelijke manier uit de database gehaald kunnen worden, en omgezet in adreslijsten, overzichten met kwartaalcijfers, adresetiketten, gepersonaliseerde standaardbrieven, analyses, enz.
De middelen die dit mogelijk maken heten 'reports' of rapporten.

Rapporten kunnen gecreeerd worden met 'report tools' zoals bijvoorbeeld Crystal reports, of in toepassingssoftware voorziene functionaliteit als Microsoft Excel's 'Externe Data ophalen' of Microsoft Word's 'Afdruk Samenvoegen' (mail merge).

Crystal reports heeft een paar hele sterke positieve punten : Het is een heel veelzijdige, krachtige report-ontwikkelomgeving.

screenshot crystal reports selection formula editor window

Voorbeelden van Formules

Definitie van @program

	
	if len({PARTBASIC.SELECTED_PROGRAM_CODE})=8 then 
		mid({PARTBASIC.SELECTED_PROGRAM_CODE},3,2) 
		else mid({PARTBASIC.SELECTED_PROGRAM_CODE},3,3)

	

	if {@program} = "evs" then 

	"Board and Lodging will be provided by the hosting organisation."

	else "The participant will be living with a host family. "

	

De volgende formule

	
		If Not IsNull ({PERSON.PREFERRED_EMAIL})Then
			"mailto:" & {PERSON.PREFERRED_EMAIL}

	

in combinatie met het instellen van de eigenschap 'hyperlink' voor het tekstvak waarin het resultaat getoond wordt zorgt ervoor dat de email-adressen in het rapport kunnen aangeklikt worden en een mail starten met het adres al ingevuld (zoals een mailto-link in een webpagina)

Crystal reports is een grafische omgeving, met drag en drop, wizzards ('Experts' heten die in Crystal), veel opmaak-mogelijkheden en een aantal toeters en bellen : de mogelijkheid grafieken op te nemen op basis van geselecteerde/berekende data in het rapport, pivot-tables, enz. Op hun website vind je vast nog meer spectaculaire dingen

negatieve punten

Hoewel gebruiksvriendelijk als ze eenmaal klaart zijn, is het creeren van de rapporten nogal omslachtig :

Ieder rapport is een .rpt bestand waarin alles moet opgenomen worden : tabellen kiezen, joins maken, selectie formuleren, + layout van de wijze waarop de data gepresenteerd zullen worden : vakken positioneren op een 'canvas', vgl met rapportering in Access, of met het ontwerpen van een form in Visual Basic. Redelijk tijdrovend. Er zijn wel wizzards die dat enigszins vereenvoudigen (zoals bij Access), maar het blijft toch dikwijls een prutswerk. Ik stel me voor dat ieder rapport tool daar last van heeft.

Je kan dit enigszins omzeilen

Je zou ook kunnen veronderstellen dat - als je business processen enigszins vastliggen - je de meeste rapporten maar 1x moet maken, en als je een verzameling rapporten hebt die aan alle situaties tegemoetkomt, moeten de gebruikers alleen nog op 'refresh' klikken en een parameter kiezen uit de dropdownlist. Dat kost wel eerst een serieuze inspanning om na te gaan welke rapporten je allemaal nodig hebt, en ze vervolgens te creŽren, en tenslotte, als het er echt heel veel zijn, daar een directory-structuur voor voorzien, en te onthouden in welk geval welk rapport gebruikt moet worden.

Een alternatief is (views voorzien om het moeilijke werk eens en voor altijd uit de weg te hebben en vervolgens) gebruikers trainen om zelf eenvoudige rapporten te maken, eventueel op basis van een aantal voorbeelden die gekopieerd en aangepast kunnen worden.

Data integreren in Office toepassingen

Een alternatieve oplossing is : gebruik je database om je data te beheren, en gebruik office toepassingen om de data in weer te geven. Dit heeft drie grote voordelen :

Via Microsoft Word Mail Merge (Afdruk Samenvoegen) Microsoft Excel 'Externe Data ophalen' kan je vrij gemakkelijk gegevens ophalen uit de database, en die weergeven in Word of Excel. Groot voordeel is dat de vormgeving van het rapport in Word of Excel kan gebeuren, dat daarvoor beter geschikt is. Excel bestanden geven dan kant-en-klare lijsten, en kunnen gebruikt worden als gegevensbron voor etiketten en gepersonaliseerde standaardbrieven. Je hoeft dus niet telkens weer je data te selecteren.

schema : gegevens uit een database weergeven in office toepassingen

Microsoft Wordt kan, via ODBC drivers, ook rechtstreeks data ophalen uit een database, maar biedt dan slechts beperkte selectiemogelijkheden, en geen joins. Word kan ook de data ophalen via MsQuery. De mogelijkheden zijn dan uitgebreider. Het handigst blijft meestal een Excel spreadsheet als gegevensbron voor Ms Word te gebruiken.

Excel kan via Microsoft Query (automatisch) data ophalen, maar is nogal zwak op het vlak van joins, vooral meervoudige outer joins. Dat kan je ook weer met views oplossen, en dan heb je een excel-bestand dat direct als lijst kan dienen, of via mail merge met Word gebruikt kan worden voor adresetiketten, standaardbrieven, of rapporten die een specifieke lay-out nodig hebben.

Excel biedt wat dat betreft vrij uitgebreide mogelijkheden die met wat creativiteit de meest gangbare rapporten kunnen opleveren.

Door bovenstaande functionaliteit intelligent en creatief aan te wenden kan je een met een beperkte collectie views, MsQuery bestanden en Excelbestanden, de gebruiker alle gegevens leveren die hij nodig heeft voor zijn overzichten, lijsten, gepersonaliseerde standaardbrieven, etiketten, enz.

Verder is Excel ook een zeer krachtig rekenblad, dus je kan onmiddellijk Excel's rekenkundige en analytische functies loslaten op cijfergegevens uit je database. Je kan dus in Excel een aantal analytische rapporten ontwerpen en die op verzoek uitvoeren op de data in je database.

Het werkt, maar het heeft zoiets van 'knutselwerk', het lijkt iets complexer dan de single-purpose reports van Crystal reports. Het vraagt ook iets meer beheer : meer losse bestanden (je moet een directory-structuur voorzien), en het systeem bestaat uit een aantal losse schakels, dus als er een probleem is moet je alle schakels in de rij doorlopen om te zien waar het probleem zit. Je moet, denk ik, ook een beetje oppassen als je bestanden verplaatst, het zou kunnen dat er dan ergens een verwijzing niet meer klopt.

In ruil krijg je wel een uiterst flexibel en gebruiksvriendelijk systeem, en je hoeft je als database administrator niet bezig te houden met typische 'user' dingen zoals het uitzicht van een rapport of de inhoud van een brief. Voor de gebruikers is het grote voordeel dat ze zelfstandig en in een vertrouwde omgeving (Ms Word, Excel) toch data uit een database kunnen benaderen en gebruiken.


Databases en database frontends (interactive SQL, report tools, ...)

OpenOffice as a front-end / report tool for databases (Oracle, MS SQL, MySQL, ...


Koen Noens
Juni 2003