Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 38 di 43
  • livello principiante
Indice lezioni

I Reports

Come utilizzare i componenti messici a disposizione da Delphi per creare dei reports, ovvero ogranizzare e stampare il contenuto dei dataset
Come utilizzare i componenti messici a disposizione da Delphi per creare dei reports, ovvero ogranizzare e stampare il contenuto dei dataset
Link copiato negli appunti

Nelle sue distribuzioni standard, Delphi fornisce dei componenti per creare,
organizzare e stampare i resoconti delle eleborazioni su database effettuate dalle nostre
applicazioni. Questo insieme di componenti costituiscono la suite QuickReport che permette
di creare visualmente lo schema da utilizzare per stampare i dati. Questa suite permette
di realizzare a design-time il report, di effettuarne l'anteprima sia in fase di design
che di run-time, effettuare calcoli l''interno del report stesso, inserire grafici
recuperare automaticamente i dati dai campi dei records, la realizzazione di report a più
livelli o collegati, effettuare un export del risultato dell'elaborazione in formato
testuale, CSV o HTML.

Su internet ed in particolare sui news group che trattano di Delphi molti non trovano
bene con questi componenti, che in effetti, almeno nelle versioni precedenti a quella
presente con Delphi 5, avevano qualche difetto. Esistono altre soluzioni per la creazione
di reports, sia commerciali che freeware, più o meno complesse e complete. Una delle
suite che ritengo meriti di essere mensionata è FuzzyReport (precedentemente Fastreport)
creata da Fabio Dell'Aria che mette a disposizione un editor di reports a run-time
permettedo quindi all'utente finale di personalizzare i reports dell'applicazione. Tutto
questo free, e anche con prestazioni migliori rispetto a quelle di QuickReport.
Comunque in questo corso tratteremo in maniera molto breve gli strumenti standard forniti
con Delphi.

CP_QR.jpg (7140 byte)

Il componente fondamentale di QuickReport è il componente QuickRep, il cuore del
sistema di generazione dei reports. Esso si presenta come un foglio bianco da posizionare
in una form nel quale andranno posizionati gli altri componenti di QuickReport che
andranno a definire l'aspetto grafico e funzionale del report stesso. QuickReport è uno
di quegli strumenti per la costruzione di reports definiti a "bande". Infatti
per definire la struttura del report si utilizzano delle bande, ogniuna con uno specifico
compito. Esistono bande titolo, intestazione, piè di pagina, header, dettaglio,
sottodettaglio e così via. All'interno di ciascuna banda andranno inseriti altri
componenti visuali, che serviranno a rappresentare i dati del report: possiamo avere delle
etichette sia statiche che collegate a campi di database, come il componente Label
standard, delle immagini, sia statiche che ricavate da campi blob di database, campi per
inserire formule, componenti per le forme, per grafici statistici o per ricavare
informazioni strettamente riguardanti il report come il numero di pagine totali o il
numero di pagina corrente, la data di stampa etc.

La costruzione di un report può avvenire in due modi, attraverso i wizards attraverso
il menu File->New oppure "a manina" partendo da una normalissima form. Per
prima cosa si posiziona un componente QuickRep nella form che assumerà l'aspetto di un
foglio bianco con una griglia quadrettata e l'indicazione dell'area stampabile nella
stampante predefinita.

A questo punto è già possibile definire alcune delle
caratteristiche del report; attraverso la proprietà Bands del componente QuickRep, è
possibile definire quali bande sono necessarie alla realizzazione del report: Title,
PageHeader, PageFooter, etc. La proprietà Dataset serve a legare il report ad un dataset
per il recupero dei dati.

La proprietà Description serve a definire una descrizione per
il report; questa proprietà potrebbe tornare utile quando si da la possibilità
all'utente di scegliere un report, poiché attraverso questa proprietà si può fornire
una descrizione del report.

Attraverso la proprietà Frame è possibile specificare se il
report verrà riquadrato segnando l'area stampabile dalla stampante. Accedendo alla
proprietà Page è possibile definire le proprietà della pagina di stampa, larghezza,
altezza, margini e se si vuole, la visualizzazione dei righelli che ovviamente saranno
visibili solamente in fase di disegno del report.

PrinterSettings permette di impostare le
opzioni per la stampante, il numero di copie, il binario della carta, etc.

PrinterIfEmpty
indica a QuickReport se stampare o no il report se il dataset a cui è collegato è vuoto.

ReportTitle serve ad impostare il titolo del report e può essere utilizzato nel report
stesso attraverso il componente QRSysData e la stessa proprietà viene utilizzata
nell'elenco dei job di stampa nel "Print Manager" di windows.

Vi sono ancora
altre proprietà interessanti in questo componente come ShowProgress che serve a
visualizzare o no l'avanzamento dello stato di costruzione del report, Unit che indica
l'unità utilizzata nella rappresentazione della griglia e dei righelli ed infine lo Zoom,
che permette di regolare la visualizzazione del report in fase di disegno.

Completata la
costruzione del report, per permetterne la visualizzazione è necessario eseguire
all'interno del codice del programma il metodo Preview del componente QuickRep, per
visualizzare l'anteprima del report, o il metodo Print per effettuarne la stampa.

QuickReport permette di personalizzare l'aspetto della form di anteprima, mettendo a
disposizione il componente QRPreview.

Per maggiori informazioni a riguardo consultare la
guida in linea. Un'altra possibilità messa a disposizione da QuickReport è quella di
esportare il risultato dell'eleborazione del report in formato testuale formattato o in
HTML attraverso i componenti QRTextFilter, QRCVSFilter, QRHTMLFilter.

L'esportazione è
molto semplice: basta collocare un componente di quelli precedentemente mensionati in una
form ed automaticamente, attraverso l'opzione salva nella finestra di anteprima del
report, verrà visualizzata l'opzione di esportazione scelta. Si può efettuare la stessa
operazione da codice attraverso il metodo ExportToFilter del componente QuickRep.

Ti consigliamo anche