- Learn
- Guida Delphi
- I Reports
I Reports
- di Carlo Marona
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.

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.
Se vuoi aggiornamenti su I Reports inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Web design per smartphone: la viewport
In questo video è illustrato il concetto di viewport, ovvero di area rettangolare di visualizzazione di un sito internet su […]