Preview multiple reports as one
Hi,
Does anyone know how to preview multiple reports as only if it was only one
?
I can do something like that if I send the report to printer, creating a
TppPrinterDevice as follows:
ppPrinterDev := TppPrinterDevice.Create(Self);
ppPrinterDev.Stackable := True;
In the first report :
ppPrinterDev.StartPrintJob := True
ppPrinterDev.EndPrintJob := False
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
In the middle ones:
ppPrinterDev.StartPrintJob := False
ppPrinterDev.EndPrintJob := False
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
and in the last one :
ppPrinterDev.StartPrintJob := False
ppPrinterDev.EndPrintJob := True
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
This works fine if the DeviceType is set to Printer, but I cannot make a
preview of it (DeviceType set to Screen)
Any tips ?
Thanks,
Nuno Fonseca
Filosoft-Software, Lda
Does anyone know how to preview multiple reports as only if it was only one
?
I can do something like that if I send the report to printer, creating a
TppPrinterDevice as follows:
ppPrinterDev := TppPrinterDevice.Create(Self);
ppPrinterDev.Stackable := True;
In the first report :
ppPrinterDev.StartPrintJob := True
ppPrinterDev.EndPrintJob := False
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
In the middle ones:
ppPrinterDev.StartPrintJob := False
ppPrinterDev.EndPrintJob := False
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
and in the last one :
ppPrinterDev.StartPrintJob := False
ppPrinterDev.EndPrintJob := True
ppPrinterDev.Publisher := ppReport.Publisher;
ppReport.PrintToDevices;
This works fine if the DeviceType is set to Printer, but I cannot make a
preview of it (DeviceType set to Screen)
Any tips ?
Thanks,
Nuno Fonseca
Filosoft-Software, Lda
This discussion has been closed.
Comments
style subreports in an empty main report and then load the three reports
into the subreports. Then print the main report.
Here is an example of creating a subreport in code:
http://www.digital-metaphors.com/tips/DynamicSubreportCreation.zip
The main report demos #51 and 52 show how to use section style subreports in
a main report.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
The situation is as follows:
The application supports batch report printing. The report is always the
same, but the DBFile from where the report gets the data is different every
time the report is printed during the batch. Imagine a file that has a
different name every day. The user may select the start/end day, so we never
know how many subreports we will need, unless we create an empty report with
as many dinamically created subreports as needed, in wich case we can get
more than 100 subreports. Currently we are opening the first file, printing
the report, closing the file, opening the next one, printing the report ...
until the last one (using the stackable TppPrinterDevice) and we get only
one print job. Our customers are asking us for preview of the batch
reporting.
I took a look at the example you suggested, and have a question:
When the first subreport ends, will the next one start in a new page, or
will it start right were the first one ended ? We want to preview them as
one, but not mixed in the same page.
If we could use the TppScreenDevice as we do with the TppPrinterDevice it
would be much easier for us, since we could keep the code we have in almost
all our reports. Any chances we can get this done with the TppScreenDevice ?
Thanks,
Nuno Fonseca
property of the subreports to pbFixed and the subreports will print on a new
page everytime. See the help on this property.
The screen device is meant to preview a single report. You can't replace the
screen device, because the TppViewer creates a TppScreenDevice internally
and not from a factory. The only way the screen device could work that way
is if you controlled the page navigation yourself and made the page requests
in your own code. You'll have to print the reports silently to a TppDevice
and cache the pages, as they request pages from different reports. Then you
would have to connect the ScreenDevice' Publisher property to the
Report.Publisher that you want to use for this range of pages. I don't know
if it would work because the page object's absolute page numbers and
absolute page count will be off overall.
Problably the best thing to do is create subreports dynamically in code to
an empty report and preview that single report to the screen before printing
it.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com