Newsgroup: it.comp.lang.delphi
Titolo: fuzzyreport: 3 pagine per ogni record - come fare?

Salve,
  ho da fare un report che si compone di 3 pagine per ogni record.
Riesco a realizzarlo *solo senza* l'uso di bande ma così riesco a 
stampare un record alla volta!
Io vorrei poter stampare l'intera tabella. Non riesco a capire se si può 
fare e come, quali bande utilizzare, come e *sopratutto* dove piazzarle? 
nel senso: su quale pagina piazzare e quale banda.
Se si può fare e qualcuno l'ha già fatto, mi spiega, gentilmente, come?
Grazie, ciao.

 Se si può fare e qualcuno l'ha già fatto, mi spiega, gentilmente, come?
Prima dicci che sistema stai usando e quale versione di delphi.
Ciao
-- 
Morde


Chiedo scusa per il ritardo ma sono rimasto senza adsl per due giorni:
Delphi = 5 Prof
FuzzyReport = 2.01
Firebird = 2.1.3
ZeosLib = 6.6.6
Il mio problema è che il report *deve* essere di *tre pagine*, devo 
stampare nel caso specifico il modello CUD 2010.
Se lo creo senza bande, riesco a stampare un solo record, *il record 
corrente*
Non riesco a capire come, eventualmente, utilizzare le bande per 
stampare l'intera tabella in un colpo solo.
Grazie, ciao.

Mi spiace ma non conosco rave report, con reportbuilder userei un solo 
datasource e le pagine si possono aggiungere a mano.. ad ogni modo 
prova lo stesso a definirti tre report, uno per pagina, e stamparli in 
sequenza assegnandogli lo stesso dataset..
ciao
-- 
Morde

 sequenza assegnandogli lo stesso dataset..
E' un'idea ma, non riuscirei a stampare in fronte/Retro.
Va be, per il momento stamperï¿œ un record alla volta, poi cercherï¿œ di 
risolvere.
Grazie, ciao.

 E' un'idea ma, non riuscirei a stampare in fronte/Retro.
Non so che dirti.. in reportbuilder ï¿œ il report stesso a memorizzare il 
tipo di stampa, non il motore, il che significa che tu lanci da codice 
il .print, e lui stamperï¿œ fronte/retro o solo fronte, orientamento 
pagina e inchiostro in base ai settaggi che gli passa l'rtm..
In teoria non dovresti occuparti tu di impostare da codice il tipo di 
stampa, ma il report stesso dovrebbe memorizzare queste informazioni.
-- 
Morde

 nel senso: su quale pagina piazzare e quale banda.
Potresti ciclare la tabella, per ogni record prepari un report di tre
pagine senza stamparlo, ora non ricordo il metodo esatto... un nome tipo
PrepareReport...
A fine ciclo chiami il metodo PrintPreparedReport di Fuzzy.
Vado a braccio, se ti servono informazioni piů precise mi documento meglio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 nel senso: su quale pagina piazzare e quale banda.
Potresti ciclare la tabella, per ogni record prepari un report di tre



Ciao per replicare le pagine senza rigenerarle avevo risolto in questo modo:
 
procedure TMainForm.frReportDrawObject(View: TfrView);
begin
    inherited;
    with frReport do
        if DocMode = dmPrinting then
            if frReport.EMFPages.Count > 0 then
                if frReport.EMFPages[frReport.EMFPages.Count - 1].PageCopies < 0 then
                    frReport.EMFPages[frReport.EMFPages.Count - 1].PageCopies := PagCount;
end;
 
aggiungevo un campo ai dati con un nome predefinito e poi da programma caricavo la variabile PagCount;
 
in modo analogo ma leggermente più complesso potevo gestire il numero di "copie" per record:
 
procedure TMainForm.DBDataSetNext(Sender: TObject);
begin
    inherited;
 
    if not frReport.IsSequenced then exit;
    DBDataSet.OnNext := nil;
    try
        if (RecCount > 1) then begin
            with DBDataSet.DataSet do begin
                if EOF then begin
                    //Prior;
                    DBDataSet.Prior;
                    if BOF then
                        First
                    else
                        //Next;
                        DBDataSet.Next;
                end else begin
                    DBDataSet.Prior;
                end;
            end;
            Dec(RecCount);
        end else
            SetRecCnt;
    finally
        DBDataSet.OnNext := DBDataSetNext;
    end;
end;
 
 
anche qui il tutto funzionava caricando direttamente dal record un campo con il numero di volte che volevo replicare il record col quale alimentavo la variabile RecCount
 
 
Spero di esserti stato utile
ciao
 
Matteo

 Spero di esserti stato utile
 
Con quasi 5 anni di ritardo :D

Il giorno giovedì 18 marzo 2010 19:36:13 UTC+1, Luigi Siciliano ha scritto:

Se Fuzzy ha i SubReport ( come in FastReport) potresti provare ad inserirli nelle pagine 2 e 3 collegati alla stessa fonte dati.

Il 12/02/2015 21.31, Marzio ha scritto:
 
Il 12/02/2015 15.55, 
mmun...@gmail.com
 ha scritto:
 
Grazie ad entrambi.
 
Si dovesse ripresentare l'esigenza prenderò spunto dai vostri consigli.
 
Grazie.