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

Trouble with pdContinuous

edited June 2015 in General
With the version of RB that introduced continuous page previews, I tried
to utilize it in updated reports. I always seemed to have lots of
problems getting things to work reliably, and would fall back to
'SinglePageOnly' which always worked perfectly. Now I have a
need/requirement to provide the whole RB previewing experience including
continuous page scrolling, thumbnails, etc. I just can't seem to get
things working. I've consulted the RB Wikis and the Dev Guide, but can't
find anything related.

In every case, if I set SinglePageOnly to false, set the other
appropriate properties, both previewing and printing will not work
correctly. The main problem seems to be that RB gets lost in the
dataset; even if there is only one record selected for printing, most of
the time, RB will wind up selecting a different data record 1, 2 or 3
records either before or after the correct one, totally randomly. If
multiple page are selected for printing (in a grid), there will always
be one or more incorrect records printed. With SinglePageOnly turned on,
everything works exactly as expected.

I'm using the latest builds of Delphi XE7, Advantage Database, RB
Enterprise, and InfoPower VCL XE7. I can't determine if the problem
originates in the DataPipeline controls, the report itself, or possibly
in the interactions of RB with InfoPower and/or ADS. (or (D)-All of the
above). Am I missing an obscure property setting somewhere?

Thanks for any advice.

Comments

  • edited June 2015
    Hi Howard,

    When using the multi-page view feature in ReportBuilder, multiple pages
    are generated in a background thread in order to make continuous viewing
    possible and to allow interaction with the report while the pages are
    generating. This means that all data for the report is being accessed
    from a background thread.

    Problems tend to arise when other controls outside ReportBuilder try to
    access the same datasets from the main thread that ReportBuilder is
    accessing from the background thread.

    One option to avoid these problems is to design your application so that
    the datasets ReportBuilder uses are independent from any other DB
    controls such as DBGrids.

    Another option is to try disabling all outside controls while
    ReportBuilder is printing. Something like the following:


    myDataSet.DisableControls;

    try
    myReport.Print;

    finally
    myDataSet.EnableControls;

    end;


    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.