trichview.com

trichview.support




Re: All record in one RVPrint


Return to index


Author

Message

Sergey Tkachenko

Posted: 11/20/2002 12:36:17


This is may be a solution (may be with changing AddNL to

InsertRVFFromStream) - creating one large document from all database

records.

Not a very good solution, if the database if huge.

Otherwise, you need to print documents one by one.

There are several undocumented methods allowing to print documents in the

single printer job. It's even possible to start printing the next document

on the same page as previous document.

Example: printing two documents:


RVPrint.AssignSource(RichView1);

Printer.BeginDoc;

RVPrint.StartAt := 0;

RVPrint.TransparentBackground := True;

RVPrint.FormatPages(rvdoALL);

RVPrint.ContinuousPrint;

RVPrint.StartAt := RVPrint.EndAt+60; // 60 pixels spacing between documents

RVPrint.AssignSource(RichView2);

RVPrint.FormatPages(rvdoALL);

RVPrint.ContinuousPrint;

Printer.EndDoc;


I think it's not very difficult to modify this example for arbitrary number

of documents.

There are two problems:

- preview is not available in this mode, at least not with TRVPrintPreview;

- you need to check, if there is enough space to print at least one line of

the next document (probably, it will work correctly even in this case, but I

did not test)



>

> Something like this?

>

>   RichView1.Clear;

>   with Table1 do begin

>     First;

>     while not EOF do begin

>       RichView1.AddNL(FieldByName('Name').AsString, 0, 0);

>       Next;

>     end;

>   end;

>   RichView1.Format;

>   RVPrint1.AssignSource(RichView1);

>   RVPrint1.FormatPages(rvdoALL);

>   if RVPrint1.PagesCount>0 then begin

>     frmPreview.rvpp.RVPrint := RVPrint1;

>     frmPreview.ShowModal;

>   end;

>

>

> Hope it helps.

>

>

> "Laura" <[email protected]> wrote:

> >

> >I need to see all the records of my database in a single  (one)preview,

> as

> >I can make it in a quick way.





Powered by ABC Amber Outlook Express Converter