Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Is it Possible?

edited March 2006 in General
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...

Comments

  • edited March 2006

    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
  • edited April 2006
    Nard Moseley (Digital Metaphors) wrote:
    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.
  • edited April 2006


    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
  • edited April 2006
    Nard Moseley (Digital Metaphors) wrote:
    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.
  • edited April 2006


    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
This discussion has been closed.