Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fast Reports: "alte" Reports aus frxReport-Objekt löschen (https://www.delphipraxis.net/134300-fast-reports-alte-reports-aus-frxreport-objekt-loeschen.html)

fragile 19. Mai 2009 14:35


Fast Reports: "alte" Reports aus frxReport-Objekt
 
Hallo :),

ich stehe vor einem kleinen Problem:
User wünscht sich, z.b. mehrere Datensätze auswählen zu können und die dann alle in einem Report als Pages zu haben , damit diese in einem PDF abgespeichert werden können.

Ich habe das über entsprechende Shortcuts (einen für Datensatz in Report speichern, einen für "Report abschliessen und Preview anzeigen") gelöst.
Funktioniert auch alles wunderbar, die verschiedenen Pages werden generiert und das Preview-Window erscheint bei Benutzung des 2. Shortcuts.

Aber: Bei einer 2. Benutzung der Report-Sammelfunktion mittels des 1. Shortcuts sind im Report-Objekt weiterhin die alten, bereits exportierten Seiten enthalten.
Wie erhalte ich pro Aufruf der "Sammelfunktion" ein "leeres" Reportobjekt ?
Folgende Lösungswege habe ich probiert :

- Im Event OnClosePreview des Reportobjekts die "Clear"-Methode der frxReport-Komponente aufgerufen -> keine Änderung des Verhaltens
- angedacht : Erzeugung einer "leeren Reportseite" beim Schließen des Fensters mit ClearLastReports = true

Hat jemand weitere Ideen ? Ich möchte eigentlich nicht erst eine Select-Abfrage auf Datenbank-ebene mit gepufferten DB-Nummern zusammenschustern und daraus einen Report generieren...

Thx 4 help in advance !
FraGiLe

fragile 20. Mai 2009 06:58

Re: Fast Reports: "alte" Reports aus frxReport-Obj
 
Hat niemand bisher mit mehrseitigen Reports gearbeitet ;) ?

sega84 20. Mai 2009 07:05

Re: Fast Reports: "alte" Reports aus frxReport-Obj
 
Wenn ich dich richtig verstanden haben möchtest du für jeden Datensatz aus einem DataSet/Query eine neue Seite haben...
Dann baue ein GroupBand ein und gib ihr die Eigenschaft "Neue Seite" oder so ähnlich. Habe leider kein Fast-Report gerade hier zur Hand.

Lemmy 20. Mai 2009 07:22

Re: Fast Reports: "alte" Reports aus frxReport-Obj
 
Hi,

ich verstehe auch nach mehrmaligem durchlesen nicht was Du genau abbilden willst. Wenn Du eine Seite pro DS brauchst, dann mach das so wie sega84 geschrieben, oder zieh das Band (MasterData) so groß wie die Seite, dann bekommst Du ja automatisch für jeden DS eine neue Seite.

Wenn es "nur" um die Selektion geht, ist ja eigentlich kein typisches Report-Problem, sondern meiner Meinung ein vorgelagertes Problem der Anwendung. Wenn Du allerdings während der Preview Daten selektieren willst, dann schau dir die Demos zu FR an, da ist wenn ich mich recht erinnere was dabei.

Grüße
Lemmy

fragile 20. Mai 2009 07:31

Re: Fast Reports: "alte" Reports aus frxReport-Obj
 
Hallo,

folgender Userwunsch: Ich blättere durch die Datensätze und "markiere" die zu reportenden DS mittels eines Shortcuts.
Wenn ich alle DS, die ich z.b. als PDF exportieren will, ausgewählt habe, benutze ich den Shortcut "Report abschliessen/erzeugen" und es
öffnet sich die Preview von fR mit allen selektierten Datensätzen auf jeweils einer Seite, so daß ich z.b. mehrseitige PDFs erzeugen kann.

Wie bilde ich dieses Verhalten mittels der Fast Report-Komponenten ab ?

In der FR-Hilfe ist eben die Methode PrepareReport (Batch Report Printing :) ) beschrieben, mit der ich mehrere Reports in einer Preview quasi als Seiten zusammenfassen kann. Der "Report abschliessen" Shortcut führt eine "ShowReport"-Methode des frxReport-Objekts aus...

Kann es sein, daß ich da mit "Reports" und selektierten DS innerhalb eines Reports durcheinander komme ?

PS: Im FR-Forum werden verschiedene Vorgehensweisen unter den Stichworten "BatchReporting" und "CompositeReport/SubReport" erklärt.
Allerdings besteht mein Problem weiter - der User soll mehrmals "Sammelreports" mit unterschiedlich ausgewählten DS erstellen können.
Dazu muss ich die bisher in der frxReport-Komponente gespeicherten Reports löschen können. Habe es mit frxReport.Clear probiert - das ändert leider nichts....

fragile 20. Mai 2009 09:25

Re: Fast Reports: "alte" Reports aus frxReport-Obj
 
Ok,
hab jetzt einen Workaround implementiert: Ich frage eine Variable ab, (combinedReport) und führe bei deren Wert "true" die PreparedReport-Methode mit dem Parameter "true" (ClearPreviousReports) aus...

Schien mir die eleganteste Llösung zu sein, da sich entweder nur eine einzelne Page oder der komplette Report aus der Komponente löschen lassen, Reinitialisieren eines in der Komponente gespeicherten ReportDesigns hab ich nicht gefunden.-...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 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