Ciao,
> no, mi spiego meglio.
> Ho un clientdataset riempito con 10 record.
> Per ogni uno di quei record devo stampare 4 pagine diverse, cioè dei
> report diversi.
> Se uso qrcompositereport e aggiungo i 4 report, lui mi stampa la prima
> pagina del
> record 1, la prima del record 2 ecc e poi la seconda pagina del record 1,
> la seconda
> del record 2 e così via, e non è quello che serve a me.
Scusa, non ho capito quello che devi fare .....
Comunque provo a darti una soluzione su quello che hai scritto tu.
Con QR devi costruirti 4 report differenti, ognuno dei quali ha le
caratteristiche che hai bisogno.
Qiesti report li chiami, per esempio QR1, QR2, QR3, QR4 dove hai le
procedure
LanciaQR1, LanciaQR2, LanciaQR3, LaciaQR4.
Poi nel pulsantino della tua form, dove hai provveduto a mettere un bella
stampantina, lanci la tua procedura tipo
Procedure PrintAll;
begin
TuoDataSet.first
While Not TuoDataSet.Eof Do
Begin
// Qui scorri tutto il tuo data set dal primo all'ultimo record.
// Qui chiami il tuo primo report dove tratti i dati
LanciaQr1; // Report1 sul primo record del to dataset
LanciaQr2; // Report2 sul primo Record del tuo dataset;
LanciaQr3;
LanciaQr4;
TuoDataSet.Next // Passa al record successivo e ripeti le stampe
End;
end;
Nella procedura sopra descritta hai le 4 pagine (diverse) per ogni record,
ma poi le devi sistemare per ovvi motivi.
Spero possa esserti utile.
Ciao
Daniele
PS: Per completezza .... ecco un esempio ...
La Unit dove crei il report la chiami Form_Report1.
La form la chiami FQR1 e qu dentro metti il TQuickRep e tutti i suoi
componenti di stampa.
Hai la famosa LanciaQr1 che sara' piu' o meno cosi'
Procdure LanciaQr1;
Begin
FQR1:=TFQR1.Create(Nil);
try
FQR1.QuickRep1.Preview;
Finally
Freeandnil(FQR1)
End;
End;
Nell'evento OnCreate sistemi tutti i dati che hai nel record, attuale, del
tuo dataset.
Questo per 4 (sempre se e' quello che cercavi).
Esiste anche l'altro caso dove, per esempio, vuoi i 4 report separati.
In questo caso devi fare 4 cicli ovvero
TuoDataSet.first
While Not TuoDataSet.Eof Do
Begin
LanciaQr1; // Report1, tutto il dataset
TuoDataSet.Next // Passa al record successivo e ripeti le stampe
End;
TuoDataSet.first
While Not TuoDataSet.Eof Do
Begin
LanciaQr2; // Report2, tutto il dataset
TuoDataSet.Next // Passa al record successivo e ripeti le stampe
End;
TuoDataSet.first
While Not TuoDataSet.Eof Do
Begin
LanciaQr3; // Report3, tutto il dataset
TuoDataSet.Next // Passa al record successivo e ripeti le stampe
End;
TuoDataSet.first
While Not TuoDataSet.Eof Do
Begin
LanciaQr4; // Report4, tutto il dataset
TuoDataSet.Next // Passa al record successivo e ripeti le stampe
End;