De basis van FastReporst
Door Anthony Arend van der Vlugt
In de bijlage dit bestand in *.pdf formaat, waar ook plaatjes in staan.
Link naar pdf-bestand
Bij het werken met databases komt natuurlijk al het een en ander om de hoek kijken. We moeten de werking weten van een DataSet, DataSource, Table enz. Persoonlijk adviseer ik de beginnende Delphi programmeur te kijken naar bijvoorbeeld het componentenpakket van ZEOS. Datacomponenten die gemakkelijk zijn om mee te werken en waar met verschillende protocollen kan worden gewerkt, zoals: MySQL, SQL, SQLite3, Acces enz.
Voor het gemak nemen we een testproject, en vullen die met de volgende componenten:
- DBNavigator
- DBGrid
- Button
- ZTable
- ZConnection
- DataSource
De Connection database is de database die je aangemaakt hebt met bijvoorbeeld SQLiteAdministrator. In de Database-property zet je het path van je db3-bestand. Als Protocol kies je sqlite-3. Je kan hierna de property connected op True, zetten.
Daarna gaan we naar de Table. In property connection geef je de waarde ZConnection weer. In de property TableName geef je de tabel aan, bijvoorbeeld Adressen. Dan kan de property Active op True gezet worden.
Dan volgt de Datasource. Het enige wat je behoeft te doen is de property DataSet de Table in te vullen, in dit geval: ZTable.
Hierna is het niet moeilijk meer om de Data-aware componenten zoals je DBGrid en DBNavigator werkzaam te krijgen. Dit doe je door de property DataSource op Datasource te zetten. (De DataSource waar je mee werkt).
Je ziet nu je DBGrid gevuld met de inhoud van je tabel Adressen.
We gaan er nog wat componenten op zetten. Hiervoor moet je FastReport 4 hebben geinstalleerd, of de Demo-version. Aan het eind van dit artikel een paar linkjes die daar naar verwijzen.
- frxDBDataSet
- frxReport
frxDBDataSet is een component die communiceert met je database, Daarvoor moet je de property DataSet een verwijzing geven naar je Table. In dit geval ZTable.
Met het component frxReport, hoef je niets te doen. In ieder geval geen instellingen in je property[/i]s. We zijn nu aangekomen op het punt om een Report te maken. Er is daarvoor weinig of geen code nodig, bijna alles is instellen en proberen.
Dubbelklik op het frxReport component, De compiler opent nu een programma, we noemen dit de Designer.
Als het goed is ziet je nu een lege pagina, dit is in principe je report. Je kan dit testen door op de preview-button te klikken (Ctrl+P). Je ziet nu een report zonder inhoud. We gaan nu de instellingen zo zetten dat je je data uit je tabel in het testproject ziet in je report. Page1 is de naam van je pagina(report) Daar doen we geen instellingen in de property[/i]s. Ook de DataSet vullen we NIET!
Aan de linkerzijde van het programma zie je een rijtje componenten klik op het componentje met de Bands . Kies hier voor ReportTitle. Op deze ReportTitle kan je tekst zetten die 1 keer als kop op je report getoond wordt. We gaan dit testen. Klik daarvoor op het component frxMemoView . Dit component plaats je op Band ReportTitle. Je ziet hier gelijk een MemoEditor openen, waar je tekst in kan zetten. En ook de grootte van de tekst. We kiezen voor een tekstgrootte van 18 punten en zetten de style op Bold. Bijvoorlbeeld: Adressenlijstje. De uitlijning laat ik over aan de creativiteit van je zelf. Als je nu voor preview kiest, zie je een report met de tekst 'Adressenlijstje'.
We gaan nu proberen data weer te geven op je report. Dat doen we als volgt: Klik daarvoor weer op het componentje Bands . Kies daar voor een MasterData band. De property DataSet stel je in op frxDBDataSet. Sleep daarna één of meerdere MemoView[/i]s in de MasterDataBand, zoals hieronder te zien is. Deze MemoView[/i]s moeten ten eerste gekoppeld worden aan de frxDBDataSet. Dat doe je door deze in te voeren bij de property[/i]s van MemoView DataSet. Je kiest daar voor frxDBDataSet. Als je op de MemoView klikt of selecteerd kan je rechts van de MemoView op een soort dropdown boxje klikken, je kan zo makkelijk kiezen welk Field je wilt laten tonen. Zet alle MemoView[/i]s netjes naast elkaar. Allemaal moeten ze gekoppeld worden aan de frxDBDataSet, en ze moeten allemaal de Field laten zien die jij wilt laten tonen.
Vervolgens plaatsen we er nog een PageFooter onder, om bijvoorbeeld het pagina nr. te laten tonen. Klik hiervoor opnieuw op het component Bands en kies hier voor PageFooter. Deze plaats je onder je MasterData-Band (kan trouwens niet anders).
Rechts in je Designer zie je deze DataTree, je klikt hier op Var (Variabelen), hier kan je kiezen voor Page#. Klik er op en sleep deze naar je PageFooter. Je kan hem rechts zetten, of links, maar ook in het midden. Dit is een leuk component want deze houd bij hoeveel pagina[/i]s je hebt, en zet onderaan de pagina het pagina-nr.
Er staan nog wat variabelen bij, bijvoorbeeld: Date (Laat de datum zien), Time (Laat de tijd zien), enz.
Als je nu op Preview klikt, zie je je report, zoals die moet zijn. Dit report zit eigenlijk onder je component frxReport op je TestProject. Je hoeft het report in je designer in principe niet op te slaan. Je kan de designer nu sluiten en weer terug gaan naar je project. Nu wil je je report laten zien als je op de button klikt.
Je had al een Button op je Form gezet, deze geef je de caption View. Dubbelklik op de button View en daar gaan we een regeldje code onder zetten, niet erg ingewikkeld, maar het moet om je report te laten zien. Dit is de code:
Delphi Code:
procedure TFRTest.ViewBtnClick(Sender: TObject); begin if frxReport1.PrepareReport then try frxReport1.ShowPreparedReport; finally end;
Dat is alles! Sla je project nu op en compileer je project. Je kan nu je tabel wijzigen en weet ik wat er in voeren. Zodra je op View klikt, zal je report getoond worden, met de data uit je tabel.
Een volgend artikel zal gaan over het maken van variabelen in je report, en het opslaan en openen van bestaande reports (fp3-bestanden) en wat meer over het design van je report. Hier volgen wat handige links naar de site van FastReport 4.
Succes!
http://www.fast-report.com/nl/ Homepage FastReport 4
http://www.fast-report.com/nl/download/ Aanschaffen FastReport 4
http://www.fast-report.com/en/forum/ Forum voor FastReport 4
http://www.fast-report.com/en/documentation/ Documentatie FastReport 4
Bookmarks