![]() |
FastReport, Band ohne Dataset und Header über mehrere Seiten
Hallo zusammen,
mein erster Report in FastReport ist aus QuickReport umgestellt. Einiges ist ungewohnt und einige Sachen sind mir noch nicht klar Punkt 1: Ich übergebe per
Delphi-Quellcode:
ein TChart and den Report und druck ihn aus. Aktuell habe ich dazu ein TCHild-Band an das Band davor gehängt.
lPictureView := TFrxPictureView(frpStandalone.FindObject('rpim03Chart'));
if (lPictureView <> nil) then lPictureView.Picture.Assign(FChart.TeeCreateMetafile(False, Rect(0, 0, Round(lPictureView.Width), Round(lPictureView.Height)))); Gibt es ein eigenständiges Band, das ich an beliebiger Stelle positionieren kann, denn eigentlich ist der Chart kein Child des vorherigen Bands. So ein Band würd auch hin und wieder für freie Zusatzinformationen benötigt. Z.b. Filtersettings bei gefiltersten Daten Punkt 2: Gibt es bei mehrseitigen Reports auch eine Möglichkeit das Header-Band auf jeder Seite genauso wie auf der ersten Seite zu drucken. Bei FooterBand gibt es das Setting
Delphi-Quellcode:
. Aktuell habe ich nur einseitigen Report und die Eigenschaft
PrintOnSinglePage
Delphi-Quellcode:
gesetzt
LargeDesignHeight
Punkt 3: QuickReport hat ja automatisch für jeden Report ein eigenes TForm benötigt. Diese Trennung der Report-Codes will ich beibehalten und habe bei den zwei Reports die ich bis jetzt habe, jedes TfrxReport in ein eigenes DataModul gelegt. Ist das eine geeignete Vorgehensweise oder gibt es bessere Lösungen. Punkt 4: Da der grundsätzliche Aufbau ähnlich, habe ich für den zweiten Report das erste Datamodul kopiert und entsprechend umbenannt. Danach war der TfrxReport aber immer noch mit den DataSets des ersten Report verbunden. Diese im "Select Report Datasets" entsprechend deaktiviert und die eigenen aktiviert. Neues Dataset auch im Master-/DetailBand ausgewählt Obwohl Felder gleich hießen musste ich sie auch in den TfrxMemoView-Felder neu auswählen. Warum werden die frxUserDataSets überhaupt angezeigt. Sie sind doch in einem eigenen nicht verknüpften DataModul Vielen Dank für hilfreiche Tips Gerd |
AW: FastReport, Band ohne Dataset und Header über mehrere Seiten
Guten Morgen,
zu 1: Die Bänder kannst Du nicht an "beliebiger Stelle" positionieren, das ist in FR nicht vorgesehen zu 2: z.B. Header, GroupHeader Eigenschaft "ReprintOnNewPage" = true zu 3: ich würde EIN Datenmodul erstellen mit dem frxReport drauf, dazu dann weitere benötigte Controls für die Reports (frxCheckbox, frxChart,...) und in den Preview-Eigenschaften des frxReports die Optionen einstellen, die für die Preview gelten soll, dann kannst du das DM in deiner ganzen Anwendung verweden und hast immer die selben Einstellungen. die frxDatasets dann neben die Query in den anderen Forms/Datamodulen zu 4: frx geht zu beginn einmal alle Units bzw. alle Forms durch die geladen wurden und schaut ob sich darauf frx(User)datasets befinden und baut sich da eine Liste auf. Daher hast Du beim Aufruf des Data-Dialogs alle im Projekt vorhandenen Datasets zur Auswahl |
AW: FastReport, Band ohne Dataset und Header über mehrere Seiten
Hallo Lemmy,
zunächst mal Danke für dein Feedback. Ganz geholfen ist mir leider noch nicht. zu 1: Was für ein Band würdest du denn empfehlen, wenn ich ein Chart per Picture.Assign darstellen will, die Daten selber aber nicht tabellarisch angezeigt werden? zu 2: ReprintOnNewPage habe ich schon aktiviert und funktioniert auch, wenn der Report sich über mehrere Seiten erstreckt. Funktioniert aber nicht, wenn ich das gleiche THeaderBand (z.B. mit Überschrift und Firmenlogo) auf einem mehrseitigen Report (Page1, Page2, ...) anzeigen will. Habe bei den Recherchen aber mehrere Posts gefunden, die das auch gesucht haben. Lösung war letztlich den XML-Part des Headers per Code zu programmieren. Scheint so in FR nicht vorgesehen zu sein. zu 3: Meinst du wirklich ein DM für alle frxReport? Ich meinte komplett unterschiedliche frxReport und da für jeden Report und die zugehörige Datenbehandlung ein DM zu 4: Das dachte ich mir Grüße Gerd |
AW: FastReport, Band ohne Dataset und Header über mehrere Seiten
Hi,
zu 1: das kommt drauf an, was sonst noch auf dem Report ist, das kannst Du ja erst mal selbst in jedes Band packen das Du da halt hast. und btw. per TfrxChartObject kannst Du auch direkt im Report Charts erstellen - je nachdem was Du sonst noch so treibst). zu 2: Spaltenüberschriften <> Seitenkopf mit Logo. Dafür nimmst Du Reporttitel (wenn es nur auf der ersten Seite sein soll) oder PageHeader. PageHeader kannst Du dann mit "PrintOnFirstPage" auch erst ab der 2. Seite einsetzen. Dann kannst Du im ReportTitel z.B: neben dem Logo auch ein Anschriftenfeld machen, im Pageheader ab der zweiten Seite dann nur noch das logo (als Beispiel). so jetzt nochmal gelesen: Mehrseitige Reports. Habe ich in letzter Zeit nicht mehr gebraucht, da bin ich aber immer recht schnell hergegangen und habe eine Hauptseite gemacht und an den dann weitere Seiten per Programmcode einfach angefügt: also einen frxReport mit der Hauptseite, einen weiteren frxReport2 mit einer zweiten Seite, diese preparen und dann zu dem anderen frxReport dazufügen. Dann die nächste Seite in frxReport2 laden, preparen.... Damit habe ich hundertseitige Berichte zusammengeklöppelt mit 20-30 verschiedenen Unterseiten-Templates. zu 3: ich meine ein Datamodul, dort ein frxReport drauf, dazu dann die frxXXXObject (tfrxRichObject, TfrxCheckboxObject) und die ExportObjekte die du brauchst. deine zig verschiedenen Reports lädst du dann per frxReport.LoadFromFile oder LoadFromStream dann in den Report ein, und kannst den dann per ShowReport oder PrintReport anzeigen oder direkt ausdrucken. Eine frxReport Komponente PRO REport macht imho keinen Sinn (so verstehe ich zumindest deine Aussage gerade). Oder durch was unterscheiden sich deine komplett unterschiedlichen frxReport KOmponenten voneinander? Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 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 by Thomas Breitkreuz