ich denke das es nicht das problem der identifizierung (id) ist,
da ja beim beenden des formulars von wo aus der report gestartet wurde die connection wohl nicht geschlossen wird.
auch nicht beim beenden der software.
der prozess läuft dann mit 100 % cpu last im hintergrund weiter.
die vorgehensweise von Keldorn habe ich angewandt und komme zum selben ergebnis:
Delphi-Quellcode:
procedure TMyForm.RvCustomConnection1Open(Connection: TRvCustomConnection);
begin
RvCustomConnection1.DataRows := aMyObject.aMyList.Count;
RvCustomConnection1.dataindex := 0;
end;
procedure TMyForm.RvCustomConnection1GetCols(Connection: TRvCustomConnection);
begin
With RvCustomConnection1 do
begin
WriteField('lfdNr',dtString,8,'','');
WriteField('Name',dtString,50,'','');
WriteField('Kosten',dtString,20,'','');
end;
end;
procedure TMyForm.RvCustomConnection1GetRow(Connection: TRvCustomConnection);
var
sName,
sKosten: String;
begin
aPerson := PPerson(aMyObject.aMyList[RvCustomConnection1.dataindex]);
sName := aPerson.name;
sKosten := aPerson.kosten;
with RvCustomConnection1 do
begin
WriteStrData('', IntToStr(RvCustomConnection1.dataindex+1));
WriteStrData('', sName);
WriteStrData('', Format('%8.2f', [fKosten]));
end;
end;
procedure TMyForm.RvCustomConnection1Restore(
Connection: TRvCustomConnection);
begin
Application.ProcessMessages;
end;
mit oder ohne procedure "RvCustomConnection1Restore" --> bringt beides nix