![]() |
fastReport und ShowReport
Hallo,
habe folgende Frage zu FastReport 3 Leider finde ich kein Code-Beispiel zum "Progressbar".
Delphi-Quellcode:
funktioniert ja. Allerdings will ich nicht die Seitenzahlen dargestellt haben, sonden eine Progressbar.
Showprogess := true;
OldStyleProgress := true; Wer hat ein passendendes Code-Schnippsel parat? Mit Google war ich erfolglos. Danke im vorraus. Gruß DevStar |
Re: fastReport und ShowReport
Ich habe nur FR4, aber in der Hilfe steht:
Zitat:
|
Re: fastReport und ShowReport
Ja, da gibt es einige Möglichkeiten. Das ist schon richtig.
Nur ist es nicht kommentiert und es gibt nirgends ein Beispiel. FR hat wohl einen eigenen Progress-Dialog (nicht der Oldstyle). Im Prinzip brauche ich ja nur die Seitenzahl im vorraus wissen und an die Progressbar übergeben. Der Report musss dann im Hintergrund erstellt werden. Leider weiss ich nicht wie ich anfangen soll. Hat jemand schon so etwas für FastReport erstellt? Ich habe einen Report, der seine Daten aus sieben SQL-Dateien holt und knapp 200 Seiten daraus erstellt. Das dauert natürlich, deshalb wäre die "richtige" Progressbar schon optimal. Gruß DevStar |
Re: fastReport und ShowReport
Keiner Ideen? :wall:
Gute Nacht :wink: |
Re: fastReport und ShowReport
Probiers doch einfach mal aus.
OnProgressStart: Erzeugt ein nichtmodales Fenster mit ProgressForm.Show, sowie der Initialisierung der Progressbar. OnProgress: Setzt den Balken der Progressbar (und ruft ggf. Application.Processmessages auf) OnProgressStop: Entfernt die ProgressForm. Ist doch ganz einfach. Wichtig ist nur, das beim ersten Durchlauf die Gesamtanzahl der Seiten noch nicht bekannt ist. Daher wirst Du wohl erst im zweiten Durchlauf (Engine.FinalPass = True) eine Progressbar anzeigen können. Wenn dein Report aber immer +/- 200 Seiten hat, dann setzt Du eben beim 1.Durchlauf ProgressBar.Max auf 200. |
Re: fastReport und ShowReport
Danke erstmal.
Die Befehle habe ich zwar gefunden, jedoch weiss ich nicht welche Parameter ich übergeben muss. Daran hakt es nämlich. Sender (TfrxReport) ProgressType (TfrxProgressType) Progress (Integer) Gebe ich bei Sender meinen Report an, so gibt es eine Access Violation :wall: Hat denn jemand ein Beispiel? :gruebel: Danke schon im vorraus. DevStar |
Re: fastReport und ShowReport
Der Sender sagt dir, welches Objekt die Nachricht geschickt hat.
Las Dir einfach mal Progress und ProgressType anzeigen. Verändern musst du da nichts. |
Re: fastReport und ShowReport
Ich gebs auf.... :wall:
Immer Access Violation... Zugriffsverletzung bei Adresse 00000000000 Ohne Codebeispiel komme ich nicht weiter. Mit der alten Progressbar (Oldstyle) klappt es ja wunderbar. |
Re: fastReport und ShowReport
Zeig mal deinen Code. AV at 00000000 bedeutet, das Du irgendein Objekt nicht instantiiert hast.
|
Re: fastReport und ShowReport
Delphi-Quellcode:
Musste eben alles abtippen, da der Delphi-PC nicht am Internet hängt.
try
Report.PepareReport; Report.Showprogress := true; Report.OnProgressStart (Report, ptRunning, iPages); finally Report.ShowPreparedReport; Report.OnProgressStopp (Report, ptRunning, iPages); end; Gruß DevStar |
Re: fastReport und ShowReport
Nee nee, da hast Du aber etwas missverstanden.
Die OnProgressXXXXX - Events des FastReport-Objektes sind Ereignisse, die vom FR-Objekt aufgerufen werden (wenn sie definiert sind). Klick mal auf die FR-Komponente und wechsle im Objektinspektor auf die Eregnis-Seite. Dann Doppelklick auf OnProgressStart und -wupps- bist Du im Begriff, ein benutzerdefniertes Ereignis zu schreiben. Geht eigentlich genauso, wie ein Ereignis für einen Button zu erzeugen. Das kannst Du doch, oder? |
Re: fastReport und ShowReport
Zitat:
Aber tut sich nur nix. Warum ist das so kompliziert?
Delphi-Quellcode:
procedure TForm1.frxReport1ProgressStart(Sender: TfrxReport;
ProgressType: TfrxProgressType; Progress: Integer); begin if ProgressType = ptRunning then frxReport1.FileName:='c:\grundschule.rtf'; end; |
Re: fastReport und ShowReport
Und das tuts auch nicht....
Delphi-Quellcode:
procedure TfrmReports.frxReport1Progress(Sender: TfrxReport;
ProgressType: TfrxProgressType; Progress: Integer); var Min, Max, i: Integer; begin with TfrxProgress do begin Min := 0; Max := 200; for i := Min to Max do Progress := i; end; end; |
Re: fastReport und ShowReport
Hat denn jemand noch nen Tipp?
Beim Export, zeigt er jetz zwar den Dialog an, aber vorher kommt trotzdem der alte OldStyleDialog. |
Re: fastReport und ShowReport
Kann niemand ein Beispiel posten?
|
Re: fastReport und ShowReport
Hallo alzaimar,
kannst Du mir nochmal helfen? |
Re: fastReport und ShowReport
Weiss sonst noch jemand was?
Arbeit überhaupt jemand mit FR oder ist der RB besser? |
Re: fastReport und ShowReport
:gruebel:
|
Re: fastReport und ShowReport
Wenn ShowProgress ein Event ist, dann vielleicht so...
Delphi-Quellcode:
Doch da tut sich auch nix. :wall:
procedure TfrmReports.frxReport1Progress(Sender: TfrxReport;
ProgressType: TfrxProgressType; Progress: Integer); var iMaxPages, i: integer; begin frxReport1.OldStyleProgress := false; frxReport1.ShowProgress := true; iMaxPages := frxReport1.PreviewOptions.PagesInCache; if ProgressType = ptRunning then frxReport1.SetProgressMessage('Please wait.'); for i := 0 to iMaxPages do Progress := i+1; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz