Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   [Rave] Seiten Entfernen dann Hinzufugen in einem Report. (https://www.delphipraxis.net/100547-%5Brave%5D-seiten-entfernen-dann-hinzufugen-einem-report.html)

maxichou2002 30. Sep 2007 07:55


[Rave] Seiten Entfernen dann Hinzufugen in einem Report.
 
Hallo liebe Leute,

Seit Tagen zerbreche ich mir den Kopf mit diesem Problem.
Arbeite mit Delphi 2007 win32 und rave 7.5.1 Borland Edition

Ein einfacher Code um alle seiten vom Report zu entfernen und neue Seiten hinzufûgen.
Das Problem tritt allerdings nur auf wen ich mehr Seiten Entferne als Hinzugefûgt werden und es tritt immer am ende des Codes auf wenn es zum close ankommt. Der Save wird nog gut durchgefürft.

Als beispiel:
Der erste durchgang, also nach einer neu angelegtem rave report im Rave Designer, frage ich 5 Seiten hinzu zu fügen => alles ok, es klappt wunderbar, im Report sind die 5 Seiten da.
Der zweite durchgang würde die hier unten angegebe Message erzeugen, wenn ich nur noch 4 Seiten wünschen würde; es gäbe aber allerdings kein Problem wenn ich 6 Seiten gewünscht hätte. ==> Kopfzerbreschen !!!

Ich bekomme immer diese Fehlermeldung:

Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004B4EF6 in module Project1.exe'. Read of address 525409D8

Hier der Code:
Delphi-Quellcode:

RvProject1.open;

ReportFACTURE := RvProject1.ProjMan.FindReport('Report1',true);

// Alle Seiten entfernen
for i := ReportFACTURE.ComponentCount - 1 downto 0 do begin
  ReportFACTURE.Components[i].free;
end;

// Neue Seiten hinzufügen (Simple Eingabe durch eine Form in einer edit1.Text)
With RvProject1.ProjMan do begin
  for i := 1 to StrToInt(edit1.Text) do begin
    ReportFACTURE.NewPage;
  end;
end;

RvProject1.Execute;
RvProject1.Save;
RvProject1.Close;
Ich bin fast am verzweifeln, was mache ich falsch ?
Vielen Dank für Eure Unterstützung.
Max

TBx 30. Sep 2007 08:59

Re: [Rave] Seiten Entfernen dann Hinzufugen in einem Report.
 
Erst mal Herzlich willkommen in der DP!

Stellt ReportFACTURE (TRvReport?) keine eigene Methode zum löschen einer Seite bereit?
Du killst dem ReportFACTURE ja ganz dreist die Components unterm A... weck. ReportFACTUREon daher werden dann wohl noch Referenzen drin bleiben, die ins Nirgendwo führen, wenn Du weniger Seiten hinzufügst, als Du rauskillst.

Gruß

onlinekater

maxichou2002 30. Sep 2007 10:25

Re: [Rave] Seiten Entfernen dann Hinzufugen in einem Report.
 
Vielen Dank onlinekater,
bin sehr froh dass mir jemand antwortet.

ReportFACTURE is wie Du richtig vermutest ein TRaveReport.

Hier die Declaration:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var MyPage1: TRavePage;
    ReportFACTURE : TRaveReport;
    i : integer;
begin
...
end.
Der Code ist hier in vereinfacht geschrieben um das Problem schneller zu erkennen und bekämfen.
In den so generierten Seiten ist nichts drin, keine Componenten. Also lehre Seiten.
Und doch gib es diese Probleme.

Ich habe die eigene methode fur den TRaveReport auch probiert (hoffe doch das es die ist):

Delphi-Quellcode:
if ReportFACTURE <> nil then
   ReportFACTURE.free;
Aber das hilft leider auch nichts; Problem immer noch vorhanden.

Danke nochmal onlinekater für die Aufmerksamkeit.
Max

maxichou2002 2. Okt 2007 10:18

Re: [Rave] Seiten Entfernen dann Hinzufugen in einem Report.
 
Niemand eine Idee ? :coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz