Streaming RAFas stream to remote client
we are developing a remote client report viewer.
The plan is to send a report archive as a stream to the client from a
middle tier. The middle tier will produce the report using ppReport
component, then as a sream, transmit to the client.
The client will then load the stream into a ppArchiveReader component
and display the report. We do not want to go out to the disk as an
intermidiate step in this process on either end.
Q1. What function or procedure is avaliable to save the report as a
stream rather then going out to disk?
Q2. How do you get that stream into the ppArchiveReader once at the
remote client?
Any help would be greatly appreciated.
Thanks
J. Michael Eubanks
Ideal Software Systems
The plan is to send a report archive as a stream to the client from a
middle tier. The middle tier will produce the report using ppReport
component, then as a sream, transmit to the client.
The client will then load the stream into a ppArchiveReader component
and display the report. We do not want to go out to the disk as an
intermidiate step in this process on either end.
Q1. What function or procedure is avaliable to save the report as a
stream rather then going out to disk?
Q2. How do you get that stream into the ppArchiveReader once at the
remote client?
Any help would be greatly appreciated.
Thanks
J. Michael Eubanks
Ideal Software Systems
This discussion has been closed.
Comments
Download the trial for RB Server Edition. It contains all of this
functionality already.
RB Server App <----> ClientReport App
You build a server application by registering your existing reports with the
server. There is built-in support for hosting the application within the
context of a Windows Service. Build-in logging. Built-in caching and
compression. Built-in multi-threaded support. Built-in exception handling
and built-in restart if the server encounters a fatal exception.
The server can incrementally generate the report pages on demand rather than
the slower approach that you mention.
Both the server and client have built-in caching to maximize performance. In
the Client application you use the ClientReport component much as you would
a Report component. They have a common ancestor and thus share many of the
same properties and methods. You can call ClientReport.Print. You can
preview the report, print it, export it to file, etc.
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
You can also register archives with the server and it can incrmentally send
the pages to the ClientReport upon demand. So both live and archive reports
are supported.
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Thanks Nard for the suggestion but our project requres that the clinet
be a Win32 application. We were planing to use Asta components
communicate with the client.
Is there any way we can extract the finished report from the ppReport
component in the form of a stream and then show it in the
ppArchiveReader once the stream has been transmitted?
Thanks
J. Michael EUbanks
i'm doing exactly the same,
you only need Reportbuilder Pro
for this, if you want I can send
you a example.
greetings,
Rob
Sorry if I was not clear. The client application IS a Win32 application. The
ClientReport is a Delphi component just like the Report and ArchiveReader.
It uses the same previewer, etc. Both the server and client are standard
Win32 Delphi applications.
Win32 Server <----> Win32 ClientReport
Please download the trial version of RB Server Edition and spend some time
with the Developers Guide, Tutorials, and Demos. Then you will understand
what it does.
Any solution you build using ASTA is going to fall way short of what RB
Server Edition does and cost you much more in development man hours. Again,
if you download the trial version you will see this.
RB Server Edition is designed to support Windows clients and Web Browsers.
We have customers using both extensively.
RB Server Edition includes a WebTier component that can be used to build a
web application such as an ISAPI.dll. Then you can publish reports to web
browsers.
Win32 Server <----> ISAPI WebTier <----> Web Browsers
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Ok, I understand now, but unfortunatly we have already invested a good
bit of resources (and money) into an ASTA solution that we currently
use for other reasons. We would perfer, at this point, to use ASTA for
transmiting these reports. As time, and finances allow we may consider
expanding this project to make use of Report Builder Server Edition. Is
there anyway we can extract these finished reports into a stream?
Thanks,
J. Michael Eubanks
Ideal Sofware Systems, Inc.
Rob,
Any example you have of doing this would be greatly appreciated. You
can post it here or send it to: meubanks at idealss dot com (no spam)
Thanks,
J. Michael Eubanks
There is nothing mutually exclusive about using ASTA and RB Server Edition.
I recommend you evaluate and use the best tools for the job. Weighing the
cost of the tools versus the development cost and the quality of the
solution that they provide.
For example, you could write your own web server, but you might choose to
use IIS instead. You could write your own database server, but might choose
to use something like SQL Server. And you can write your own report server,
but might choose to use RB Server.
1. Print to stream
RB 9.01 introduces a new feature to enable streaming report output. Demo 109
in RBuilder\Demos\Reports\Demo.dpr shows an example.
2. Archive from stream
On the client side you can convert the stream to a file or you can descend
from ArchiveReader and add the streaming capability. See ppArchiv.pas and
ppDBArchiv.pas. The latter adds support for a blob stream.
--
Nard Moseley
Digital Metaphors Corporation
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com