f.developer ha scritto:
sto utilizzando un TDictionary per salvare e stampare i dati all'interno di un quickreport
volevo sapere come posso farlo
QuickReport è un package di componenti abbastanza datato: sebbene sia stato ricompilato e reso disponibile anche per le versioni più recenti di Delphi, il mio suggerimento primario è quello di passare a un altro tool più evoluto e flessibile, tipo
FastReport.
Detto questo, QR rende abbastanza semplice realizzare stampe che si basano su
DataSet in generale (tabelle, query, ecc.), quindi il mio suggerimento è quello di
usare una tabella di appoggio in memoria in cui andare a copiare i dati dal dizionario prima di eseguire la stampa, strutturando questa tabella a dovere (quindi con i campi richiesti da visualizzare nel report) e inserendo i dati al suo interno prima della generazione del report.
Per creare una tabella in memoria si può usare il buon
TClientDataSet, oppure se si ha a disposizione
FireDAC il componente
TFDMemTable, che è ancora meglio.
Entrambi i componenti consentono di definire una struttura (ossia i campi) per la tabella in memoria.
Questa può essere impostata e associata al report in modo da poter collegare le etichette nella banda da replicare ai singoli campi.
A runtime sarà sufficiente andare a inserire i record nella tabella prima di generare il report, come predetto.
Ciao!