Newsgroup: it.comp.lang.delphi
Titolo: Domanda su QReport

Salve a tutti,
 sto realizzando un programma che stampa bolle e fatture e decidendo di
usare QR sono incappato in un bel problema: se ho molte righe da mettere nel
documento devo creare più n pagine dello stesso documento (e fin quo niente
di strano) però ho la necessità di scrivere alcuni dati (data e ora
trasporto,totale fattura, ecc..) solo n-ima pagina e scrivere "SEGUE" da 1 a
n-1.
Ho provato a smanettare un pò ma non riesco a fare questa distinzione.
Ho usato 3 QRStringsBand per intestazione, corpo(con dei QRMemo per fare la
tabella dei prodotti) e piè pagina.
Credo che sia solo il problema di mettere una guista funzione a delle QRExpr
ma non so....
Grazie in anticipo per l'aiuto.

 ma non so....
Io ho fatto una cosa del genere:
1) ho usato una sola banda pie di pagina con campi solo di tipo label.
2) ho fatto 2 routine, 1 che pulisce tutti i campi del totale e mette sulla
label "totale documento" la scritta "continua", l'altra che mette sulle
label
i valori che devo esserci solo a fine pagina.
3) i salti pagina li gestisco io nel senso che conto le righe che ho
stampato
e se eccedo il limite che predefinisco faccio un Qreport.newpage e questo
perchè se lasci fare a QR il salto pagina non sai se sei alla fine oppure
no.
Se ad es. QR mi facesse il salto a 20 righe di dettaglio io imposto il mio
max
a 19, letta la 20' riga della stessa fattura, prima di stamparla (before
print del
dettaglio) eseguo la routine che mette "continua" sul piede, faccio un
newpage,
e scrivo il dettaglio.
Se leggo una riga che è la 1' della nuova fattura, sempre nel beforeprint
del
dettaglio lancio la seconda routine che mi mette tutto nei totali e faccio
un
new page.
Forse mi sono spiegato male ma ti assicuro funziona; non so te ma io
non lancio una stampa x ogni fattura, se devo stamparne 3 estraggo
i dati di tutte e 3 e con questa tecnica va benone.
Ciao
Mirko

> Forse mi sono spiegato male ma ti assicuro funziona;
Non ti preoccupare si capisce benissimo, però a questo punto mi è sorto un
altro problema: quando chiamo QuickRep1.NewPage mi da un errore tipo "....
Acces Violation........".
Il fatto è che i testi di Delphi che ho trattano in maniera troppo
superficiale la stampa!!
Cmq, prendiamo la stampa delle bolle.
All'evento OnClick di un pulsante di una form ho messo:
    Bolla:=TBolla.Create(Self); //Bolla è la form che contiene il report
    Bolla.QuickRep1.Preview; //voglio prima vedere cosa vado a stampare
poi nella unit di Bolla, nell'evento TBolla.FormCreate inizio a riempire il
report e metto:
  count:=0; //conta le righe immesse nella pagina
  for i:=1 to Form4.StringGrid1.RowCount-2 do //prendo i dati da questa
StringGrid
   begin
    QRMemo1.Lines.Append(' '+Form4.StringGrid1.Cells[0,i]);
    QRMemo2.Lines.Append(' '+Form4.StringGrid1.Cells[1,i]);
    QRMemo3.Lines.Append(Form4.StringGrid1.Cells[2,i]);
    QRMemo4.Lines.Append(Form4.StringGrid1.Cells[3,i]);
    QRMemo5.Lines.Append(' ');
    inc(count);
    if count=righe-1 then    //const righe=37
     begin
      QuickRep1.NewPage;
      count:=0;
     end;
   end;
end; //TBolla.FormCreate
Poi come hai detto tu nel BeforePrint gestisco il "piede" della pagina.
Scusa se rompo ma "sto report sa da fare"
Grazie, ciao

 Poi come hai detto tu nel BeforePrint gestisco il "piede" della pagina.
Adesso stò uscendo, stasera ti spiego come funziona
Ciao

 Ciao
Te ne sono molto grato! Ciao.