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

Re: AV after Update from 6.02 --> 6.03

edited December 2001 in General
I have deinstalled the ReportBuilder by exactly following the instructions
and installed RB again.

The problem persists.

The first time I call the TppReport.Print method the (DeviceType = dtScreen)
the PrintPreview is shown normal. After closing the PrintPreview and trying
to open it again the AV occurs.

Before calling the TppReprt.Print method we do the follwing:
Initializing
- creating a variable amount of TIBQuery and TppDBPipelines dynamically
- TppReport.Template.ResetDevices
- TppReport.Template.Reset
- TppReport.Template.LoadFromFile
- TppReport.Printer.Initialize

Opening Datasets
- Setting AutoCreateFields of all TppDBPipeLines to True
- Open all Querys with Unidirectional-prop set to True

... then we call Print (ModalPreview is set to True)

after closing the PrintPreview we do the following
- close all Querys
- set AutoCreateFields of all TppDBPipeLines to False
- Free all dynamically created components (TIBQuerys and TppDBPipeLines)
- TppReport.ResetDevices
- TppReport.Reset

Debugging the code I've found the following snippet. The AV occurs when
calling "lDataPipeline.CheckLinkedData", "lDataPipeline.IsLinked".

{ TppDataPipeline.CheckDetailData }

function TppDataPipeline.CheckDetailData: Boolean;
var
liIndex: Integer;
lDataPipeline: TppDataPipeline;
begin

if (FDetailPipelines = nil) or not(FDetailSkip) then
Result := True
else
begin
Result := False;

{check all details, to see if any have data}
liIndex := 0;

while not(Result) and (liIndex < FDetailPipelines.Count) do
begin
lDataPipeline := TppDataPipeline(FDetailPipelines[liIndex]);

// Here!

if (ppdaNoRecords in lDataPipeline.State) or
(lDataPipeline.IsLinked and (lDataPipeline.CheckLinkedData <>
0)) then
Inc(liIndex)
else
Result := True;

end;

end;

end; {function, CheckDetailData}

Thanks

===============================END of MESSAGE =======================

This discussion has been closed.