Rösta på artikeln
Förord
När en slutanvändare använder ditt program vill han eller hon oftast kunna skriva
ut innehållet. Delphi erbjuder en ytterst kraftfull rapportgenerator i vilken du visuellt
kan konstruera din rapport med avseende på placering, formatering, sidhuvud, sidfot,
detaljer och gruppering. I denna artikel kommer jag att beskriva grunderna för att
skapa en rapport utifrån en Accessdatabas.
Definiera datakällan till rapporten
För att kunna skapa en enkel applikation med en rapport måste vi som sagt var
ha en databas och precis som i ADO-artikeln använder jag i denna artikel databasfilen
Biblio.mdb som följer installationen av Microsoft Access. Infoga kontrollerna TADOQuery och TDatasource på
ditt formulär. Du hittar dessa komponenter på flikarna ADO respektive Data
Access.
Börja med att koppla datakällan i din Datasource genom att välja ADOQuery1 i
egenskapen Dataset i Objektinspektorn.
Markera ADOQuery1 och leta reda på databasfilen Biblio.mdb genom att köra guiden
som startar när du klickar på knappen med de tre punkterna i egenskapen Connectionstring i
Objektinspektorn. Välj därefter egenskapen SQL och skriv in följande SQL-sats
i fönstret som kommer upp:
SELECT * FROM Authors WHERE au_id < 51;
|
SQL-
SQLsatsen plockar ut alla poster från alla fält i tabellen Authors med ID-nummer
lägre än 51. Detta för att vi skall begränsa antalet poster i vår rapport till 50
stycken. Databasen Biblio.mdb innehåller som standard över 16 000 poster och det kan
ju vara lite slöseri att skriva ut alla dessa.
Infoga QuickReport-komponenterna
Du finner alla rapportkomponenter på fliken QReport. Välj komponenten TQuickRep som
du hittar längst till vänster i fliken och rita sedan ut den med lagom storlek på
formuläret. Koppla sedan QuickRep1 till komponenten ADOQuery1 genom
att välja denna i egenskapen Dataset.
Vi börjar sedan att bygga rapporten visuellt med hjälp av några av de övriga komponenterna
på samma flik. Det kan vara lämpligt att ha ett sidhuvud i rapporten. Vi fixar detta
genom att infoga ett sådant med komponenten TQRBand. Denna komponent har ett
antal valmöjligheter. I egenskapen BandType väljer vi rbPageHeader som
representerar sidhuvudet på rapporten. Infoga sedan en rubrik (en etikett) på detta
sidhuvud och döp den till Författare (förslagsvis). Detta gör du i egenskapen Caption i
Objektinspektorn.
Infoga därefter ytterligare en TQRBand i rapporten och definiera denna som rbDetail i
egenskapen BandType. När denna komponent är definierad som detalj läser rapporten
alla poster som är definierade i SQL-egenskapen för ADOQuery1 dvs. de 50 första
posterna. För att posterna överhuvudtaget skall visas i rapporten måste vi också bestämma
vilka fält som vi vill ha med i rapporten. För detta ändamål använder vi oss av komponenten TQRDBText.
Rita ut tre komponenter av typen TQRDBText på rapporten
och koppla sedan dessa till databasfilens tre fält (au_id, Author och Year_Born).
Detta utförs genom att välja dessa i egenskapen DataField. Glöm ej heller att
välja ADOQuery1 i egenskapen Dataset även för dessa kontroller.
Notera!
Jag har infogat ett understrykningsstreck mellan orden Year och Born i
fältnamnet Year Born. Detta för att jag upptäckte att mellanslaget ställde
till bekymmer när man skriver SQL-satser. Har du inte tillgång till Microsoft Access
så att du kan ändra detta på ett smidigt sätt kan du använda dig av klammerparenteser
i dina SQL-satser [Year Born]. Detta eliminerar också problemen med mellanslag i fältnamn.
När du infogat alla kontrollerna bör rapporten se ut så här:
Det är egentligen inte svårare än så här att skapa en enkel
rapport. Du ritar ut en rapport på formuläret och lägger sedan på de komponenter som
du önskar använda. Det finns en hel rad med olika komponenter på fliken QReport som
du säkert redan upptäckt. När du håller muspekaren över dessa uppenbarar sig en popuptext
med ett förklarande namn. Mer information om hur dessa används hittar du i Delphis
direkthjälp.
Testa rapporten
När vi nu kommit så här långt vill vi testa och kontrollera hur vår rapport kommer
att se ut. För att enklast göra detta ska vi titta på rapporten i förhandsgranskningsläge.
Vi infogar en vanlig kommandoknapp som vi hittar på fliken Standard. Dubbelklicka
på denna och skriv sedan in följande Pascalkod:
Denna kod öppnar ett förhandsgranskningsfönster och
här ser du hur rapporten kommer att se ut på papper. Du kan utifrån detta fönster
skriva ut rapporten. Vill du inte ha denna förhandsgranskningsfunktion kan du istället
skriva ut rapporten direkt från formuläret. Byt då bara ut metoden Preview mot Print.
Fler komponenter
Rapportgeneratorn i Delphi är bevisligen ytterst kraftfull och du kan skapa flera
funktioner utöver de som jag har demonstrerat i denna artikel. Du kan t ex gruppera
information genom att infoga komponenten TQRGroup och sedan infoga textrutor
i denna efter hur fälten skall grupperas. Du kan också skapa uttryck där du kan beräkna
önskade poster. För detta används komponenten TQRExpr. Mitt tips är att prova
sig fram genom att infoga komponenterna, koppla dessa mot andra komponenter och därefter
provköra. Man ser ganska snabbt hur de används och vad de utför.
Vid tangentbordet
/Staffan Berg
|