Creating a batch of reports with Report Server
Hello
This is following on from a post I made in the general group about creating
multiple reports in a single PDF file
The example provided was too simple for my situation. How would I create a
batch of reports in a single pdf file or print run using the report server?
I am wondering if I should use an archive volume or something like that?
Does anyone have any examples? I would have expected this to be a common
requirement?
Cheers
Paul
This is following on from a post I made in the general group about creating
multiple reports in a single PDF file
The example provided was too simple for my situation. How would I create a
batch of reports in a single pdf file or print run using the report server?
I am wondering if I should use an archive volume or something like that?
Does anyone have any examples? I would have expected this to be a common
requirement?
Cheers
Paul
This discussion has been closed.
Comments
In a server environment, the report server is generating Page objects,
sending them to the client (ClientReport/WebTier). In the case of a PDF, the
client uses a PDFDevice to convert the Page objects to a PDF file.
I do not understand the context of the question. I do not understand what
the requirement is?
- RB Server enables reports to be previewed and printed by remote clients.
There is no concept of a 'batch run'.
- The Archive Volume enable archive files to be previewd/printed by remote
clients. You could certainly create a specialized application that generates
batched report output to .raf files that are stored to a folder that the
ArchiveVolume can 'see'. Then the server could publish the archives to
remote clients.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Here is more information.
We have the following hierarchy
Location Groups
Locations
Meters
For example
Location Group 1
Location 1
Meter 1
Meter 2
Location Group 2
Location 2
Meter 3
The user wants to be able to run a report for all of the meters and be able
to go through the reports using next and previous buttons. So in the
example below the batch of reports would be made up of a report for meter 1
followed by a report for meter 2 then finally meter 3
All of the reports are generated using our report server. Adding the next
and previous buttons should be easy I would expect that we can just use the
custom preview code to add 2 new buttons.
However, the more complicated one is to create a single pdf file containing
the reports above, that is what I need to be able to do, but your example
code only covers this from a client point of view, not the server
Is this any clearer now?
Cheers
Paul
One solution is to design a single report that can generate the required
document. (This is in contrast to the other approach, which is to call
report.Print multiple times and then try to combing the output after it has
been generated.)
Perhaps a design like this...
- create a main report
- remove the header/footer, so that there is only a detail band
- add a subreport to the detailband and set PrintBehavior to pbSection
- connect the main report to a datapipeline containing a master list of
meters
- connect the subreport to a datapipeline containing the meter detail
The idea is that the main report is a 'driver' that iterates over a master
list and generates a report for each meter.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
will not be as simple as just having a pipeline containing the master list
of meters, there is a lot of other information required
This information is currently provided by the client on a meter by meter
basis
The other thing I am considering is sending the entire batch information to
the server and building up the report dynamically but I think this could be
quite complicated to do
Long term we may want to do something like create a pdf file that contains
Report 1 for meter 1 followed by Report 2 for meter 1, etc. Each report
will have different parameters
Any ideas?
There is an important concept you are missing - no output files are
generated by the server. I tried to explain this before. As shown in the
diagram below, the report server generates Page objects that are received by
the client. The client can create output devices to format the page objects
to Screen, Printer, XHTML, PDF, etc.
report server --> Page objects --> ClientReport/WebTier --> Device (XHTML,
PDF, etc)
The client can ask the server about what parameters are required to run a
report. The client can send parameter values to the server. The client can
reques that the server generate a page or range of pages.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
But in order for the server to generate 1 set of page objects for all of my
reports which the client can then combine into a single file wont I need to
send all the information in 1 go? This is what I am trying to avoid
For example, User wants to have a PDF file that contains the following
reports
Report 1 - Needs location name, start date, end date (1 page)
Report 2 - Needs units (2 pages)
So do I have to send information about both reports to the server in a
single call for the server to return me back 3 page objects or is there a
way I can do a call to the server for report 1 then another for report 2,
then be able to combine the information
I think it has something to do with StartPrintJob and EndPrintjob, but the
bit that confuses me is that each report request is dealt with in its own
thread so how do I add Report 2's page objects to the page objects for
Report 1?
How would you implement this in a non-server environment?
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
They will set up a batch of reports.
For example, they will want to run Report 1 for all locations followed by
Report 2 for all locations
They specify the report options then our program will create a batch where
each report has a set of parameters which will be provided to the report
server
So if the database has 2 locations the Batch would be made up of,
Report 1 Location 1 Meter 1
Report 1 Location 1 Meter 2
Report 2 Location 1 Meter 1
Report 2 Location 1 Meter 2
Each of these reports will be distinguished by the different parameters
The user then needs to see a pdf file containing all of these reports
Paul
Use the DBDemos data to design a representative sample and then create a
standard Delphi project (i.e. no server) that implements a representative
solution. Zip it up and email to support@digital-metaphors.com. We can check
it out here and try to determine whether we can design a server based
example that does the same thing.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com