Trouble with pdContinuous
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.
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.
This discussion has been closed.
Comments
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;
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com