Is it Possible?
Is it possible to print a report to an RAF stream, and then print
multiple RAF streams as a single report (on the same page)?
I have a 3 Tier application that I am trying to incorporate
ReportBuilder into. This means I need to collect all the data a report
might use on the server side, and either generate the report there, and
send it to the Win32 client, or send the report template and all the
necessary data to the client and generate the report there.
The reports will be designed by the admin people, so I could use a
separate Designer with a direct connection to the database (no middle
tier to deal with). Could I then send a record ID from the client to a
Report Server and have the report server send the template with any data
necessary? The issue is that the target printer driver would not
necessarily be installed on the server, and each client could likely
want a different number of the individual reports put together on the
same page.
What is the best approach? I am not familiar enough with the RB Server,
and ReportBuilder...
multiple RAF streams as a single report (on the same page)?
I have a 3 Tier application that I am trying to incorporate
ReportBuilder into. This means I need to collect all the data a report
might use on the server side, and either generate the report there, and
send it to the Win32 client, or send the report template and all the
necessary data to the client and generate the report there.
The reports will be designed by the admin people, so I could use a
separate Designer with a direct connection to the database (no middle
tier to deal with). Could I then send a record ID from the client to a
Report Server and have the report server send the template with any data
necessary? The issue is that the target printer driver would not
necessarily be installed on the server, and each client could likely
want a different number of the individual reports put together on the
same page.
What is the best approach? I am not familiar enough with the RB Server,
and ReportBuilder...
This discussion has been closed.
Comments
I recommend downloading a trial version of ReportBuilder Server Edition.
With RB Server Edition you can quickly build a super professional,
multi-threaded, high performance, multi-tier reporting solution. You can
literally have your existing reports running on the server in one day.
With RB Server Edition the reports are generated by the server. Report
generation occurs incrementally - on demand, page by page. Page objects are
sent to the client. The server is multi-threaded and uses caching and
compression to optimized performance.
Sever app ---> Page objects ---> ClientReport ---> preview, print, pdf,
archive, etc...
On the client side you can use the ClientReport component to preview and
print. The ClientReport shares the same ancestory as the Report component -
you use them in the same manner - by calling the Print method, etc. The
ClientReport receives the Page objects from the server and then formats them
for the screen, printer, PDF, etc. The ClientReport performs local page
caching to optimize performance.
There is also a ClientReportExplorer which enables the client app to browse
which reports are available on the server.
You can setup a scenario where you store your reports in a common directory
directory structure or a database so that new reports are dynamically
discovered by the server and made available to the client app.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Thanks for the marketing spiel, but I have already bought RB Server 10.
Now I am trying to figure out what is possible with it, thus the
questions.
My report criteria dialogs are a little more complex than those in the
examples. I have to query the middle tier for database lookups, then
send the IDs and other parameters to the RB report server for
generation, then have the client print it. In some cases I want to
concatenate multiple reports onto a single page when the client prints it.
One of my dilemmas is that the End User Report Designer was to supposed
to enable the admin staff to design reports. Since ReportParameters
cannot be created in the designer, it seems rather useless to that end
at present. Unless, of course there is an example of how to hook in a
ParametersEditor into the designer.
Congrats and welcome to ReportBuilder Server! That was not clear by your
post. I hop that my overview of how the server generates Page objects that
are sent to the ClientReport which renders them directly to the printer was
helpful. That was my intent.
You can create custom autosearch panels. For an example, see
RBuilder\Demos\AutoSearch\Custom AutoSearch Dialog. An autosearch dialog is
comprised of a one or more autosearch panels. Each panel is responsible for
a single autosearch field. Therefore you can define specialized panel
classes that handle specific fields or field datatypes.
I recommend first investigating the custom autosearch dialog approach. Using
this approach, the parameter passing between the client and server will be
handled automatically. If you use the Query Designer to specify the
autosearch fields, then the SQL modification will be handled automatically
as well.
The Parameters Editor is not currently supported by the run-time designer.
However, we are researching what is required to adapt it to work at
run-time.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Thanks for the information. I will look at AutoSearch parameters in
more depth. I had assumed the panels were not replaceable. Are the web
counterparts also replaceable?
I must say, I like RB, always have. The documentation and tech support
are two of the primary reasons why I had the client purchase RB Server.
To be honest though, I think some of your documentation could be
improved around parameter handling and client/server/webtier
architecture. Without the source, there is no way to figure some things
out short of posting here and hoping to get enough information to pull
it all together.
The RBServer\Demos\WebTier\Custom Parameters demo includes an example of
using a custom autosearch dialog for the web tier. The panels are not
replaceable at this time. See the ReadMe.doc that is included with the
example. And check out the thre .hml forms installed as part of the example.
- When the WebModule receives a request, the ProcessDefaultRequest method is
called. Notice that method determines whether the an AutoSearch form needs
to be displayed.
- The GetAutoSearchParametersPage method is responsible for generating the
autosearch form
- When the custom autosearch form is submitted from the web browser, the
waSearchParamsAction method is invoked and this method calls the
ProcessAutoSearchRequest method.
- the ProcessAutoSearchRequest method takes the ContentParameters[] and
translates them into AutoSearcParameters[]. Then the report page can be
generated by calling WebTier.ProcessWebRequest.
The WebTier is middle tier that sits between the report server and web
browser. One thing to keep in mind is that WebRequest.ContentParameters
contains the parameters sent by the web browser's http get or post request.
The WebRequest.AutoSearchParameters are sent between the WebTier and the
report server.
report server <---> autosearch parameters <---> web tier <----> content
parameters <---> web browser
Thanks for the feedback. The custom parameters demos included with the RB
Server Edition were an attempt to provide an example of how to accomplish
this. Each example includes a ReadMe.doc and commented code. However, it
could definitely be improved. Review that example and let me know which
parts of it are the most vague.
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com